Skip to main content

Unified Event API Service - Aggregate events from Eventbrite, Meetup, Ticketmaster, and more

Project description

Event API Service

A unified Python API service that aggregates event data from multiple sources including Eventbrite, Meetup, Ticketmaster, AllEvents, SerpApi, and PredictHQ.

Features

  • 🎯 Multi-Source Aggregation: Fetch events from 6+ different providers
  • 🔐 Built-in Authentication: API Key-based authentication
  • Rate Limiting: Configurable request limits
  • 🌍 Geocoding Support: Automatic location resolution
  • 📦 Easy to Deploy: Simple Flask-based architecture
  • 🔧 Configurable: Environment-based configuration

Installation

pip install event_api_service

Quick Start

1. Set up environment variables

Create a .env file:

# API Keys for Event Providers (optional, configure as needed)
TICKETMASTER_KEY=your_ticketmaster_key
MEETUP_TOKEN=your_meetup_token
ALLEVENTS_KEY=your_allevents_key
SERPAPI_KEY=your_serpapi_key
PREDICTHQ_TOKEN=your_predicthq_token

# API Key for this service
API_KEY=your_secret_api_key

2. Run the server

from dotenv import load_dotenv
from event_api import create_app

load_dotenv()
app = create_app()

if __name__ == '__main__':
    app.run(debug=True, port=5000)

3. Make requests

curl -H "x-api-key: your_secret_api_key" \
  "http://localhost:5000/api/v1/events?location=New York&category=music"

API Documentation

Authentication

All endpoints require an API Key in the request header:

x-api-key: your_secret_api_key

Endpoints

GET /api/v1/events

Fetch events by location and category.

Parameters:

  • location (string, required): City name (e.g., "New York", "London")
  • category (string, required): Event category (e.g., "music", "tech", "sports")

Response:

{
  "status": "success",
  "count": 15,
  "data": [
    {
      "id": "evt-123",
      "title": "Tech Conference 2025",
      "description": "Annual technology conference...",
      "start_time": "2025-12-01T09:00:00",
      "url": "https://example.com/event/123",
      "location": "Convention Center",
      "source": "eventbrite"
    }
  ]
}

Supported Event Sources

Provider Configuration Required Notes
Eventbrite No Free, supports major US cities
Ticketmaster TICKETMASTER_KEY Music, sports, arts events
Meetup MEETUP_TOKEN Community events
AllEvents ALLEVENTS_KEY Global event aggregator
SerpApi SERPAPI_KEY Google Events search
PredictHQ PREDICTHQ_TOKEN Professional event data

Rate Limits

  • 10 requests per minute
  • 50 requests per hour
  • 200 requests per day

Python Client Example

import requests

class EventAPIClient:
    def __init__(self, api_key, base_url="http://localhost:5000/api/v1"):
        self.api_key = api_key
        self.base_url = base_url
    
    def get_events(self, location, category):
        headers = {"x-api-key": self.api_key}
        params = {"location": location, "category": category}
        
        response = requests.get(
            f"{self.base_url}/events",
            headers=headers,
            params=params
        )
        return response.json()

# Usage
client = EventAPIClient(api_key="your_secret_api_key")
events = client.get_events("San Francisco", "tech")
print(f"Found {events['count']} events")

Documentation

For complete API documentation, see API_DOCUMENTATION.md

License

MIT License

Support

For issues and questions, please open an issue on GitHub.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

event_api_service-0.1.0.tar.gz (12.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

event_api_service-0.1.0-py3-none-any.whl (10.9 kB view details)

Uploaded Python 3

File details

Details for the file event_api_service-0.1.0.tar.gz.

File metadata

  • Download URL: event_api_service-0.1.0.tar.gz
  • Upload date:
  • Size: 12.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.6

File hashes

Hashes for event_api_service-0.1.0.tar.gz
Algorithm Hash digest
SHA256 9b1bddb024638d620d7d90b3c5d23bc939f712900a186224c3a2ec43d97839c5
MD5 fbc0e1b1d5b50b91bad109da4086749a
BLAKE2b-256 0b241aeb1a7573ad2516f0708ff6ced8bd15b896d805555b108b83b3a76d3276

See more details on using hashes here.

File details

Details for the file event_api_service-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for event_api_service-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2ff8009d776dd239d7daf61df2f842d73fa859a88a0eefbd12a6c0cfa5ad81a4
MD5 0bf1bd5f8a174a159b116a15aed560ac
BLAKE2b-256 5ce3d39dfad71c57bac96c59a3d784ed905d44b237a146d8d28fe83828413c2b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page