SeatGeek APIseatgeek.com ↗
Access SeatGeek event data: search events, get ticket price stats, browse performers and venues, and retrieve trending events via 8 structured endpoints.
What is the SeatGeek API?
The SeatGeek API exposes 8 endpoints covering event search, ticket pricing, performer lookup, venue schedules, and category taxonomies. The search_events endpoint returns event titles, UTC datetimes, venue details, performer arrays, and price statistics (lowest, highest, median, average) in a single paginated response. You can filter by keyword, taxonomy ID, or geographic coordinates to narrow results to a specific market or event type.
curl -X GET 'https://api.parse.bot/scraper/b1da66dd-8dbd-4b3e-b9da-bafebaa20ad3/search_events?lat=40.7509&lon=-73.9943&page=1&query=NBA&per_page=5&taxonomy_id=1000000' \ -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 seatgeek-com-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.
"""SeatGeek API — search events, drill into pricing, browse venues and performers."""
from parse_apis.SeatGeek_API import SeatGeek, EventNotFound
client = SeatGeek()
# Search events by keyword — limit caps total items fetched across pages.
for event in client.events.search(query="NBA", limit=3):
print(event.title, event.datetime_utc, event.venue.name)
# Trending events — top-ranked across all categories.
top = client.events.trending(limit=1).first()
if top:
# Drill into pricing for the top trending event.
summary = top.prices()
print(summary.title, summary.stats.lowest_price, summary.stats.highest_price)
# Venue events — construct a Venue by id and list its upcoming events.
for ev in client.venue(id=1587).events(limit=3):
print(ev.title, ev.stats.listing_count)
# Search performers by name.
performer = client.performers.search(query="Taylor Swift", limit=1).first()
if performer:
print(performer.name, performer.num_upcoming_events, performer.popularity)
# Typed error handling: attempt to fetch a non-existent event.
try:
client.events.get(event_id="999999999")
except EventNotFound as exc:
print(f"Event not found: {exc.event_id}")
print("exercised: events.search / events.trending / event.prices / venue.events / performers.search / events.get")
Search for events by keyword/name, returning event titles, dates, venues, categories, performers, and ticket price statistics. Supports filtering by taxonomy, location, and pagination.
| Param | Type | Description |
|---|---|---|
| lat | string | Latitude for location-based search |
| lon | string | Longitude for location-based search |
| page | integer | Page number for pagination |
| query | string | Search keyword or event name |
| per_page | integer | Results per page |
| taxonomy_id | string | Category/taxonomy ID to filter events by (e.g. '1000000' for Sports, '2000000' for Concerts) |
{
"type": "object",
"fields": {
"meta": "object with total count, page, per_page, and geolocation info",
"events": "array of event objects with id, title, datetime_utc, venue, performers, stats, taxonomies, and url"
},
"sample": {
"data": {
"meta": {
"page": 1,
"total": 34928,
"per_page": 5
},
"events": [
{
"id": 17678147,
"url": "https://seatgeek.com/belle-sebastian-tickets/san-francisco-california-the-masonic-san-francisco-2026-06-10-3-30-am/concert/17678147",
"type": "concert",
"score": 0.387,
"stats": {
"lowest_price": null,
"median_price": 0,
"average_price": null,
"highest_price": null,
"listing_count": 0,
"lowest_sg_base_price": null,
"visible_listing_count": null
},
"title": "Belle & Sebastian (2-Night Pass)",
"venue": {
"id": 340289,
"city": "San Francisco",
"name": "The Masonic San Francisco",
"slug": "the-masonic-san-francisco",
"score": 0.73,
"state": "CA",
"address": "1111 California St",
"country": "US",
"capacity": 0,
"postal_code": "94108"
},
"status": "normal",
"performers": [
{
"id": 5366,
"name": "Belle & Sebastian",
"slug": "belle-sebastian",
"type": "band",
"image": "https://seatgeekimages.com/performers-landscape/belle-sebastian-641b59/5366/54585/huge.jpg",
"score": 0.49,
"genres": [
{
"id": 458,
"name": "Indie",
"slug": "indie"
}
],
"popularity": 4397,
"has_upcoming_events": true,
"num_upcoming_events": 4
}
],
"popularity": 0.676,
"taxonomies": [
{
"id": 2000000,
"name": "concert",
"slug": "concerts",
"parent_id": null,
"seo_event_type": "concert"
}
],
"datetime_utc": "2026-06-10T10:30:00"
}
]
},
"status": "success"
}
}About the SeatGeek API
Event Search and Detail
The search_events endpoint accepts a query string, optional lat/lon coordinates, a taxonomy_id (e.g. 1000000 for Sports, 2000000 for Concerts), and pagination controls (page, per_page). Each returned event object includes id, title, datetime_utc, a venue object (name, city, state, coordinates), a performers array, a stats block with lowest_price, highest_price, median_price, and average_price, plus direct url. For a single event, get_event_detail takes an event_id and returns the same shape with full configuration and schedule status fields.
Pricing and Ticket Listings
get_event_ticket_prices_summary returns an isolated stats object for a given event_id, covering listing_count, average_price, lowest_price, highest_price, median_price, lowest_sg_base_price, and visible_listing_count — useful when you only need the pricing snapshot without pulling the full event record. For row-level granularity, get_event_ticket_listings returns an array of individual listings with section, row, seat, and price data alongside a num_listings count.
Performers, Venues, and Taxonomies
search_performers takes a required query and optional limit, returning performer objects with id, name, type, score, slug, genres, popularity, has_upcoming_events, and num_upcoming_events. Once you have a venue ID from any event object, get_venue_events lists all upcoming events at that venue with the same full event shape including stats. get_taxonomies requires no inputs and returns the full category tree — each taxonomy carries id, name, parent_id, slug, and a stats block with event_count and performer_count. get_trending_events supports optional lat/lon to surface location-aware trending content.
The SeatGeek API is a managed, monitored endpoint for seatgeek.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when seatgeek.com 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 seatgeek.com 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?+
- Track ticket price floors and ceilings across upcoming concerts using
stats.lowest_priceandstats.highest_pricefromsearch_events - Build a venue calendar by calling
get_venue_eventswith a venue ID to list all scheduled events at a specific arena or theater - Monitor performer popularity scores and upcoming event counts via
search_performersto identify rising or peaking acts - Filter local sports events by passing taxonomy_id
1000000alongside lat/lon coordinates insearch_events - Compare median ticket prices across multiple events using
get_event_ticket_prices_summarywithout fetching full event detail payloads - Populate a category navigation using the full taxonomy tree from
get_taxonomies, including parent/child relationships and per-category event counts - Surface location-relevant trending events by passing user coordinates to
get_trending_events
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does SeatGeek have an official developer API?+
What does `get_event_ticket_listings` return compared to `get_event_ticket_prices_summary`?+
get_event_ticket_listings returns an array of individual listings with per-seat data (section, row, seat, price) and a num_listings count. get_event_ticket_prices_summary returns only aggregate stats: lowest_price, highest_price, median_price, average_price, listing_count, lowest_sg_base_price, and visible_listing_count. Use the summary endpoint when you need price range context without iterating individual seats.Does the API expose historical pricing or sold-out event data?+
Can I filter `search_events` results to a specific city without knowing the exact coordinates?+
search_events endpoint filters by lat and lon string parameters for location-based search; there is no city-name filter parameter. You would need to resolve a city name to coordinates before passing them. The meta response object includes geolocation info from the query. Direct city-name filtering is not currently exposed as a parameter, but you can fork the API on Parse and revise it to add a geocoding step or a city-name input.How is `taxonomy_id` used in `search_events`, and where do valid IDs come from?+
taxonomy_id is an optional string filter on search_events that restricts results to a category — for example 1000000 for Sports or 2000000 for Concerts. The full list of valid IDs, names, slugs, and parent relationships comes from calling get_taxonomies, which requires no inputs and returns every category with its id field.