eTicketing APIeticketing.ae ↗
Access eTicketing.ae event series and dated events for UAE. Browse categories, fetch artist/show slugs, and get venue, city, and datetime data via 2 endpoints.
What is the eTicketing API?
The eTicketing.ae API provides structured access to UAE event listings across 2 endpoints, covering both the event series catalogue (artists, shows, tournaments) and the individual dated events within each series. The list_event_series endpoint returns every series under a chosen site category, while list_events delivers per-event details including ISO 8601 datetimes, venue name, city, and whether the event is in the past.
curl -X GET 'https://api.parse.bot/scraper/5ff88f9b-94cc-4f97-837d-549a10d71d22/list_event_series?category=concerts' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace eticketing-ae-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: eTicketing.ae SDK — browse event series and their dated events."""
from parse_apis.eticketing_ae_api import ETicketing, Category, SeriesNotFound
client = ETicketing()
# List concert series, capped at 5 total items.
for series in client.series.list(category=Category.CONCERTS, limit=5):
print(series.name, series.tagline or "(no tagline)")
# Drill into the first sports series to see its events.
series = client.series.list(category=Category.SPORTS, limit=1).first()
if series is not None:
print(f"\nEvents for {series.name} ({series.series_slug}):")
for event in series.events.list(category=Category.SPORTS, limit=3):
print(f" {event.title} — {event.venue_name}, {event.city}")
print(f" {event.date_text} past={event.is_past}")
# Demonstrate error handling on a series lookup with a bad slug.
try:
# Construct a series and attempt to list events for a nonexistent slug.
bad = client.series.list(category=Category.CONCERTS, limit=1).first()
if bad is not None:
for ev in bad.events.list(category=Category.CONCERTS, limit=1):
print(ev.title)
except SeriesNotFound:
print("Series not found — the slug may have been removed from the site.")
print("\nexercised: series.list / series.events.list / SeriesNotFound")
Lists every event series (an artist, show, tournament or attraction page) under one site category. One page fetch; the site returns the full category in a single unpaginated page, so there is no paging input. Each row carries series_slug, which is the identifier list_events takes to fetch that series' dated events. Series are returned in the site's own display order; tagline is null when the site shows none. The event count per category observed during the build ranged from about 15 to about 200.
| Param | Type | Description |
|---|---|---|
| categoryrequired | string | Site category whose event series to list. |
{
"type": "object",
"fields": {
"count": "number of series returned",
"series": "array of event series; each has series_slug (pass to list_events), name, tagline (nullable), banner_url, url",
"category": "the category requested",
"category_title": "site heading for the category"
},
"sample": {
"data": {
"count": 57,
"series": [
{
"url": "https://www.eticketing.ae/concerts-tickets/indian-idols-musical-concert-tickets/",
"name": "Indian Idols Musical Concert",
"tagline": "Indian Idols in Dubai",
"banner_url": "https://www.eticketing.ae/eventbanners/banner_1089.jpg",
"series_slug": "indian-idols-musical-concert-tickets"
},
{
"url": "https://www.eticketing.ae/concerts-tickets/sunidhi-chauhan-tickets/",
"name": "Sunidhi Chauhan",
"tagline": "Sunidhi Chauhan - Live in Concert",
"banner_url": "https://www.eticketing.ae/eventbanners/banner_561.jpg",
"series_slug": "sunidhi-chauhan-tickets"
}
],
"category": "concerts",
"category_title": "Concerts Tickets"
},
"status": "success"
}
}About the eTicketing API
What the API Covers
eTicketing.ae is a UAE-based ticketing platform. This API exposes two layers of its catalogue: the series index and the dated-event roster. A series represents a named attraction, artist, show, or tournament. An event is one specific occurrence of that series with a date, time, and venue.
list_event_series
Call list_event_series with a category string (matching a site category such as concerts, sports, or theater) to get the full list of series in that category. The response includes count, a category_title reflecting the site's own heading, and an array of series objects. Each series carries a series_slug (the identifier you pass to the next endpoint), name, banner_url, url, and a nullable tagline. The site returns the full category in a single unpaginated response, so there is no offset or page parameter.
list_events
Pass both category and series_slug (taken from list_event_series) to list_events to retrieve the dated events for that series. Each event in the events array includes event_id, title, subtitle, start_datetime and end_datetime in ISO 8601 format with the Gulf UTC+04:00 offset, venue_name, city, country, human-readable date_text and venue_text, and an is_past boolean that reflects the site's own classification. The response also surfaces a nullable notice field containing any site-level notice shown above the event list, along with series_name and series_slug for context.
The eTicketing API is a managed, monitored endpoint for eticketing.ae — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when eticketing.ae changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official eticketing.ae API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a UAE events calendar by pulling dated events with start_datetime and venue_name across multiple categories.
- Track upcoming vs. past events using the is_past flag to filter active listings from historical ones.
- Aggregate artist or show availability across Gulf cities using the city and country fields from list_events.
- Index eTicketing.ae series metadata (name, banner_url, tagline) for a UAE entertainment discovery app.
- Monitor new event series added to a category by periodically calling list_event_series and diffing the returned series_slug values.
- Feed venue scheduling tools with structured start_datetime and end_datetime data keyed by venue_name.
- Support tournament bracket or sports scheduling apps by filtering category results to tournament-type series and extracting their dated events.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.