vividseats.com APIvividseats.com ↗
Access Vivid Seats ticket listings, event search, venue data, and historical sales via 5 API endpoints. Filter by performer, venue, date, and category.
curl -X GET 'https://api.parse.bot/scraper/7a7ecd59-dec5-4d1e-b1eb-67f168459e15/search_suggestions?query=NBA' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for performers, venues, or productions (events) by name. Returns matching results that can be used to find IDs for filtering in other endpoints.
| Param | Type | Description |
|---|---|---|
| queryrequired | string | Search term (e.g., performer name, venue name, event name) |
{
"type": "object",
"fields": {
"venues": "array of venue objects with id, name, city, state",
"performers": "array of performer objects with id, name, category, webPath, productionCount",
"productions": "array of production/event objects with id, name, localDate, venue, performers"
},
"sample": {
"data": {
"venues": [],
"performers": [
{
"id": 2724,
"name": "NBA Finals",
"webPath": "/nba-finals-tickets--sports-nba-basketball/performer/2724",
"category": {
"id": 3,
"name": "Sports"
},
"productionCount": 24
}
],
"productions": [
{
"id": 6653288,
"name": "NBA Summer League - Day 1",
"venue": {
"id": 1698,
"city": "Las Vegas",
"name": "Thomas and Mack Center",
"state": "NV"
},
"minPrice": 53.9,
"localDate": "2026-07-09T23:59:00-07:00[America/Los_Angeles]",
"ticketCount": 115,
"listingCount": 15
}
]
},
"status": "success"
}
}About the vividseats.com API
The Vivid Seats API provides 5 endpoints for searching events, venues, and performers, retrieving live ticket listings with seat-level pricing, and pulling historical sold-listing data for price trend analysis. The get_listings endpoint returns per-ticket fields including section, row, quantity, base price, all-in price per ticket, and a deal score, while get_sold_listings exposes cursor-paginated sales history for a given production.
Search and Discovery
The search_suggestions endpoint accepts a free-text query and returns matched venues (with id, name, city, state), performers (with id, name, category, productionCount), and productions (with id, name, localDate, venue and performer references). The IDs returned here feed directly into the filtering parameters of list_events — venue_id, performer_id, and category_id — making it the natural starting point for any workflow.
Event Listings and Ticket Availability
list_events returns paginated upcoming productions sorted by rank. Each item exposes minPrice, avgPrice, listingCount, and ticketCount alongside event metadata. To drill into a specific event, pass its id as production_id to get_listings, which returns an event-level global summary (capacity, average all-in price, lowest all-in price) and a tickets array with per-listing fields: sectionName, row, quantity, price (base), allInPricePerTicket, dealScore, and badges. For full listing detail — including brokerId, deliveryOptions, seat numbers, and service charges — use get_listing_details with both the listing_id (from tickets[*].i) and the production_id.
Historical Sales Data
get_sold_listings returns recently completed sales for a production. Each record includes price, zone, row, and a text field describing the sale timestamp. The endpoint uses cursor-based pagination via meta.pagination.nextCursor and meta.pagination.hasMore, allowing iteration through full sales history for a given event.
Stale ID Handling
Production and listing IDs are time-sensitive. get_listings and get_listing_details document that stale IDs may return upstream 404 or 500 errors. Workflows should treat these as expected cases and refresh IDs via list_events or search_suggestions as needed.
- Track ticket price trends for a specific performer by polling
get_sold_listingsover time using cursor-based pagination. - Build a venue-specific event calendar by filtering
list_eventswith avenue_idfromsearch_suggestions. - Compare
minPricevsavgPriceacross events in a category to identify outlier pricing for a given weekend. - Alert users when
dealScoreon a specific section drops below a threshold usingget_listingspolling. - Aggregate
listingCountandticketCountfromlist_eventsto gauge event demand across a performer's tour. - Reconstruct all-in cost breakdowns (base price vs service charges) from
get_listing_detailsfor price transparency tools. - Filter events by
start_dateandcategory_idto surface upcoming concerts or sports events in a given period.
| 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 | 250 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 Vivid Seats have an official developer API?+
What does `get_listings` return beyond just price?+
get_listings returns a global object with event-level stats (listing count, ticket count, venue capacity, average all-in price, lowest all-in price) and a tickets array where each entry includes sectionName, row, quantity, base price, allInPricePerTicket, a dealScore, and badges. To get broker ID, delivery options, and seat numbers for a specific listing, call get_listing_details with the listing_id and production_id.How do stale production or listing IDs behave?+
get_listings and get_listing_details note that stale IDs can return upstream 404 or 500 errors. This happens when an event sells out, is cancelled, or listings expire. The recommended approach is to re-fetch current production_id values from list_events and refresh listing_id values from get_listings before calling detail endpoints.Does the API expose resale or checkout URLs for purchasing tickets?+
Can I retrieve events for a specific city or geographic region?+
venue_id (resolved via search_suggestions) or by category_id and performer_id, but there is no standalone city or radius parameter on list_events. You can fork this API on Parse and revise it to add geographic filtering if the source supports it.