TicketsData
API Documentation
Fetch live ticket inventory across 10 major marketplaces with a single API call. Built for brokers, dashboards, monitoring pipelines, and data teams.
curl -G "https://ticketsdata.com/fetch" \
--data-urlencode "username=YOU" \
--data-urlencode "password=PASS" \
--data-urlencode "platform=ticketmaster" \
--data-urlencode "event_url=https://..."
→ 200 OK {status, body, response_s}Introduction
What TicketsData is and what you can do with it
TicketsData provides real-time, normalized ticket inventory from 10 major marketplaces through a single unified API. Nine are included on Starter; AXS is included on Pro and above. You pass a platform name and event URL — we return clean JSON with section, row, quantity, price, and fees. No browser automation, no parsing HTML, no marketplace-specific logic on your end.
- Live inventory + pricing
- Normalized JSON output
- Per-section fee breakdowns
- Sub-second to ~3s response times
- Broker dashboards & tools
- Price tracking & alerts
- Event monitoring pipelines
- Arbitrage analytics
- Separate per-marketplace logic
- Browser automation
- Rate limit management
- Proxy management
Authentication
How to authenticate API requests
Authentication uses your TicketsData account credentials passed as query parameters. The same email and password you use to log into the dashboard.
GET https://ticketsdata.com/fetch?username=YOUR_EMAIL&password=YOUR_PASSWORD&platform=…&event_url=…
Quickstart
Make your first API call in under a minute
curl -G "https://ticketsdata.com/fetch" \ --data-urlencode "username=YOUR_EMAIL" \ --data-urlencode "password=YOUR_PASSWORD" \ --data-urlencode "platform=ticketmaster" \ --data-urlencode "event_url=https://www.ticketmaster.com/event/160062583FD9756B"
YOUR_EMAIL and YOUR_PASSWORD with your TicketsData credentials. The response is JSON with a status, body,response_s, and quota_remaining.Supported Platforms
All marketplaces available via the /fetch and /events endpoints
ticketmasterstubhubseatgeekvividseatsgametimetickpickviagogodiceeventbriteaxsPro+Endpoints
All available API endpoints
https://ticketsdata.com/fetchReturns full real-time ticket inventory for a single event URL. This is the primary endpoint — pass a platform and event URL, receive all available listings with section, row, quantity, and pricing.
usernamerequired | string | Your TicketsData account email |
passwordrequired | string | Your TicketsData account password |
platformrequired | string | One of: ticketmaster, stubhub, seatgeek, vividseats, gametime, tickpick, viagogo, dice, eventbrite, axs |
event_urlrequired | string | Full event URL from the marketplace, or event ID for platforms that support it (Gametime, Dice.fm) |
mode | string | Platform-specific mode parameter. See the mode matrix below. |
gametimeallReturns listings for quantities 1, 2, 3 … up to 10 — expands per-quantity pricing. Without this, only the default quantity is returned.gametimeqty=NReturns listings for a specific quantity only (e.g. qty=2). Can be combined with other filters.ticketmaster(omit)Default view — returns all available offers with standard inventory.ticketmasteravailabilityReturns offers filtered to in-stock items only, sorted by quantity available.ticketmasterpricingReturns offers sorted by total all-in price ascending.ticketmasterquickpicksReturns the platform's curated quick-pick recommendations — typically best-value seats per section.All responses follow the same envelope. The body structure varies by platform but always contains ticket listings. Check status for success/failure.
{
"status": 200,
"platform": "ticketmaster",
"body": {
"_embedded": {
"offer": [
{
"offerId": "GN6DCMJVGU4DOOBYGAZHYMJXMY3TOZLFMI4TK",
"section": "605",
"row": "-",
"listPrice": "380.00",
"totalPrice": 459.80,
"inventoryType": "resale",
"sellableQuantities": [1, 2, 3, 4]
}
]
}
},
"response_s": 2.14,
"quota_remaining": 117382
}curl -G "https://ticketsdata.com/fetch" \ --data-urlencode "username=YOUR_EMAIL" \ --data-urlencode "password=YOUR_PASSWORD" \ --data-urlencode "platform=ticketmaster" \ --data-urlencode "event_url=https://www.ticketmaster.com/event/160062583FD9756B"
https://ticketsdata.com/eventsReturns all upcoming events for a given performer, artist, venue, promoter, or organizer page URL. Use this to discover event IDs and URLs before fetching full inventory with /fetch.
usernamerequired | string | Your TicketsData account email |
passwordrequired | string | Your TicketsData account password |
platformrequired | string | Platform to search — see table below for per-platform support |
performer_url | string | Artist/performer/organizer page URL. Required for most platforms. For Dice.fm venue and promoter pages use venue_url instead |
venue_url | string | Dice.fm only — for dice.fm/venue/… and dice.fm/promoters/… URLs |
stubhubperformer_urlArtist/performer page URLseatgeekperformer_urlArtist/performer page URLtickpickperformer_urlArtist/performer page URLticketmasterperformer_urlArtist/performer page URLgametimeperformer_urlPerformer page URLvividseatsperformer_urlPerformer page URLdiceperformer_urldice.fm/artist/… URLdicevenue_urldice.fm/venue/… or /promoters/… URLeventbriteperformer_urleventbrite.com/o/{organizer_id} URLcurl -G "https://ticketsdata.com/events" \ --data-urlencode "username=YOUR_EMAIL" \ --data-urlencode "password=YOUR_PASSWORD" \ --data-urlencode "platform=dice" \ --data-urlencode "performer_url=https://dice.fm/artist/las-petunias-v8krl"
https://ticketsdata.com/match/match endpoint is available on Pro plans and above. Each call consumes 12 API credits (one report sweep) and counts against your monthly Market Intelligence report quota. Contact support to upgrade.The match endpoint is TicketsData's flagship intelligence feature. Pass a single event URL from any supported marketplace — the engine identifies the same event across all other platforms, fetches live inventory from each simultaneously, normalizes the data into a unified schema, and returns a full cross-market intelligence report including per-section arbitrage spreads, fee burdens, cheapest entry points, and recommendations.
usernamerequired | string | Your TicketsData account email |
passwordrequired | string | Your TicketsData account password |
event_urlrequired | string | Full event URL from any supported marketplace (SeatGeek, StubHub, VividSeats, Gametime, TickPick, Ticketmaster, Viagogo). The engine auto-detects the source platform and finds matching URLs on all others. |
statusstringsuccess or errormatch_typestringprobable or exact — confidence of cross-platform matchmatch_confidencenumber0–100 confidence score for the cross-platform matchmatch_reasonarrayList of signals used to confirm the match (same date, venue key, entity ID, etc.)event_detailsobjectResolved event: date, venue name, candidate IDmatchesobjectMap of platform → matched event URL for each marketplacefetch_results.normalizedobjectUnified listing schema per platform: section_norm, zone, price_prefee, price_total, fees_total, fee_ratio, deal_score, flagsfetch_results.intelligence.market_summariesobjectPer-platform: listing count, cheapest entry (pre-fee and total), price stats (min/median/max), fee stats, zone distribution, top sectionsfetch_results.intelligence.cross_market_snapshotobjectBest entry price and deepest market across all platforms simultaneouslyfetch_results.intelligence.section_arbitragearrayPer section: best vs worst marketplace, spread in $ and %, zone tagfetch_results.intelligence.recommendationsobjectCheapest entry marketplaces, highest fee burden, deepest markets, primary vs resale splitresponse_snumberTotal elapsed seconds for all parallel fetchesreports_remainingnumberRemaining Market Intelligence reports this billing cycleGET https://ticketsdata.com/match?username=YOUR_EMAIL&password=YOUR_PASSWORD&event_url=https://seatgeek.com/cardi-b-tickets/atlanta-georgia-state-farm-arena-1-2026-04-18-7-30-pm/concert/17762666
{
"status": "success",
"match_type": "probable",
"match_confidence": 100.0,
"match_reason": ["same date", "source marketplace event id matched", "exact venue key", "multi-market coverage"],
"event_details": {
"date": "2026-04-18",
"venue": "State Farm Arena"
},
"matches": {
"seatgeek": "https://seatgeek.com/cardi-b-tickets/.../concert/17762666",
"stubhub": "https://www.stubhub.com/cardi-b-atlanta-tickets-4-18-2026/event/159490794/",
"vividseats": "https://www.vividseats.com/.../production/6083142",
"gametime": "https://gametime.co/...",
"tickpick": "https://www.tickpick.com/...",
"ticketmaster_us":"https://www.ticketmaster.com/event/...",
"ticketmaster_ca":"https://www.ticketmaster.ca/event/..."
},
"fetch_results": {
"normalized": {
"seatgeek": {
"status": "success",
"offers": [
{
"marketplace": "seatgeek",
"listing_id": "V4KU0ZJObO3",
"section": "223",
"section_norm": "223",
"zone": "other",
"row": "W",
"quantity": 2,
"price_prefee": 350.0,
"price_total": 401.0,
"fees_total": 51.0,
"fee_ratio": 0.1457,
"deal_score": 84.81,
"flags": { "obstructed": false, "floor": false, "vip": false }
}
]
}
},
"intelligence": {
"market_summaries": {
"seatgeek": {
"listing_count": 409,
"cheapest_prefee": { "price": 350.0, "section": "223", "row": "W" },
"cheapest_total": { "price": 401.0, "section": "223", "row": "W" },
"price_stats": { "min_prefee": 350.0, "median_prefee": 919.0, "max_prefee": 6063.0 },
"fee_stats": { "median_fee_ratio": 0.14 },
"zone_distribution":{ "other": 336, "floor": 73 }
},
"tickpick": {
"listing_count": 293,
"cheapest_total": { "price": 77.0, "section": "SAPPHIRE DECK", "row": "P1" }
}
},
"cross_market_snapshot": {
"marketplaces_compared": 7,
"best_entry_total": { "marketplace": "tickpick", "price": 77.0, "section": "SAPPHIRE DECK" },
"deepest_market": { "marketplace": "stubhub", "listing_count": 484 }
},
"section_arbitrage": [
{
"section": "114",
"zone": "other",
"best_market": "ticketmaster_ca",
"best_total_price": 1011.50,
"worst_market": "stubhub",
"worst_total_price": 3975.57,
"spread": 2964.07,
"spread_pct_vs_best": 293.04
}
],
"recommendations": {
"cheapest_entry_marketplaces": [
{ "marketplace": "tickpick", "lowest_total": 77.0, "section": "SAPPHIRE DECK" },
{ "marketplace": "vividseats", "lowest_total": 388.86, "section": "Section 223" },
{ "marketplace": "seatgeek", "lowest_total": 401.0, "section": "223" }
],
"highest_fee_burden_markets": [
{ "marketplace": "tickpick", "median_fee_ratio": 0.77 },
{ "marketplace": "vividseats", "median_fee_ratio": 0.35 }
],
"deepest_markets": [
{ "marketplace": "stubhub", "listing_count": 484 },
{ "marketplace": "seatgeek", "listing_count": 409 }
],
"ticketmaster_primary_vs_resale": { "primary": 4, "resale": 216 }
}
}
},
"response_s": 11.424,
"quota_remaining": 833289,
"reports_remaining":782,
"reports_total": 1000,
"minimum_required_quota_for_match": 12
}Errors & Status Codes
How to handle API errors and retries
—invalid_urlperformer_not_found—quota_exceededevent_not_found—config_errorservice_unavailabletimeoutservice_unavailable and timeout errors up to 2 times with increasing delays (1.5s, 3s). All other errors are deterministic — retrying won't help.Limits & Concurrency
How quota and concurrency work across plans
Each API call consumes one credit from your plan quota. Quota resets monthly on your billing cycle date. Concurrency limits vary by plan — shared plans apply fair-use controls while dedicated plans run on isolated infrastructure with no shared throttling.
Response Examples
Real response structures from each platform type
status, body,response_s, quota_remaining) is always consistent.{
"status": 200,
"platform": "ticketmaster",
"body": {
"_embedded": {
"offer": [
{
"offerId": "GN6DCMJVGU4DOOBYGAZHYMJXMY3TOZLFMI4TK",
"section": "605",
"row": "-",
"listPrice": "380.00",
"totalPrice": 459.80,
"inventoryType": "resale",
"sellableQuantities": [1, 2, 3, 4]
}
]
}
},
"response_s": 2.14,
"quota_remaining": 117382
}Python SDK
High-throughput batching with automatic concurrency and retries
The official Python SDK simplifies authentication, concurrent batching, retries, and result handling. Use it when you need to fetch dozens or hundreds of events simultaneously.
pip install ticketsdata-client
from ticketsdata_client import TicketsDataClient
import asyncio
async def main():
client = TicketsDataClient(
username="YOUR_EMAIL",
password="YOUR_PASSWORD",
concurrency=10,
timeout=30,
)
jobs = [
{"platform": "ticketmaster", "event_url": "https://www.ticketmaster.com/event/160062583FD9756B"},
{"platform": "stubhub", "event_url": "https://www.stubhub.com/event/157413810/"},
{"platform": "seatgeek", "event_url": "https://seatgeek.com/concert/17735171"},
{"platform": "vividseats", "event_url": "https://www.vividseats.com/production/5599667"},
{"platform": "tickpick", "event_url": "https://www.tickpick.com/buy-7364698/"},
{"platform": "gametime", "event_url": "6908d769dfe85fe8ad73cd62", "mode": "all"},
{"platform": "viagogo", "event_url": "https://www.viagogo.com/event/E-159359741"},
{"platform": "dice", "event_url": "https://dice.fm/event/eoe37y-tide-lines-14th-apr"},
{"platform": "eventbrite", "event_url": "https://www.eventbrite.com/e/cardi-b-tickets-1986188272590"},
]
results = await client.fetch_many(jobs)
for r in results:
print(r["platform"], r.get("status"))
await client.close()
asyncio.run(main())MCP Server
Use TicketsData from Claude, Cursor, VS Code and other AI assistants
The TicketsData MCP server gives AI assistants direct access to the API through the Model Context Protocol. Connect it once with your MCP API key, then ask in plain language: the assistant calls TicketsData in real time and answers with live listings, prices and fees. No code required. It uses your existing account, plan and credits.
https://mcp.ticketsdata.com/mcpOpen Dashboard → Settings → MCP Access and copy your key. It starts with tdmcp_. Every account has one, and you can regenerate it there at any time. The key is for MCP connections only: the REST API keeps using your email and password.
Run this once in a terminal.
claude mcp add --transport http ticketsdata https://mcp.ticketsdata.com/mcp \ --header "Authorization: Bearer YOUR_MCP_API_KEY"
Replace YOUR_MCP_API_KEY with your key. Any MCP client that can send an Authorization: Bearer header to a remote server works the same way. Nothing to install.
Bearer tdmcp_..., not the key alone. Where a client asks you to type the value yourself, for example in the custom connector settings on claude.ai, enter Bearer, then one space, then your key. Without it the server answers "Invalid MCP API key".list_marketplacesFreeSupported marketplaces, the URL or ID format each one expects, and valid mode values.get_event_listings1 creditLive listings for one event on one marketplace: section, row, quantity, price and fees. Same data as /fetch.find_events1 creditUpcoming events for a performer, team, organizer or venue page. Same data as /events.compare_marketplaces1 report + up to 12 creditsOne event matched and priced across every marketplace, with per-section spreads. Same data as /match. Pro plan and above.analyze_listingsFreeFilters, sorts and summarises ALL listings of a result the assistant already fetched: cheapest per section, how many pairs under a price, medians, counts per section or marketplace. No new fetch, no credits.Paste one into your assistant and replace the URL. Event and performer URLs are the normal marketplace page links.
"Get live listings for <event URL> and show me the 5 cheapest options for 2 tickets together, all fees included."
"For <event URL>, give me the cheapest listing in every section and how many tickets each section has left."
"How many listings for <event URL> have at least 4 seats together under $250 per ticket all-in? What is the median all-in price for the whole event?"
"For <event URL>, only sections 101 to 120 with 2 or more seats together, sorted by all-in price. Include row and fees."
"Compare <event URL> across every marketplace. Which marketplace is cheapest for 2 tickets, and in which sections is the price gap widest?"
"List upcoming events for <performer page URL>, then check listings for the next 3 shows and rank them by cheapest all-in price for 2 tickets."
"For <event URL>, how many tickets are still available at face value versus resale, and what is the cheapest of each?"
"For <event URL>, show listings with the marketplace's highest deal scores and explain how their prices compare with the median for the same section."
analyze_listings and list_marketplaces are free and do not count toward the daily cap. Use the REST API or the Python SDK for bulk and scheduled work./fetch, /events and /match, plus a download link to it as a JSON file (valid for 15 minutes). Nothing is filtered, reordered or summarized, so the assistant works from exactly the data your own code would see.analyze_listings to answer questions about all of them on the server: cheapest per section, how many pairs under a price, medians and counts. It uses the same field names on every marketplace (section, row, quantity, price before fees, fees, price_total all-in), so the same question works everywhere. It is free and only reads results fetched with your own key.FAQ
10 platforms: ticketmaster, stubhub, seatgeek, vividseats, gametime, tickpick, viagogo, dice, eventbrite, and axs. Nine are included on Starter; AXS is included on Pro and above.
Yes — use the /events endpoint with performer_url. Supported on stubhub, seatgeek, tickpick, ticketmaster, gametime, vividseats, dice (artist, venue, promoter), and eventbrite (organizer).
Dice.fm and Eventbrite are primary ticketing platforms — they sell tickets face-value directly from organizers. Response structure includes ticket tiers, event metadata, refund policies, and lineup data rather than individual resale listings.
Use the /events endpoint with venue_url instead of performer_url. Pass the dice.fm/venue/… or dice.fm/promoters/… URL as the venue_url parameter. Artist pages use performer_url.
The number of API credits remaining in your current billing cycle. Each /fetch and /events call consumes one credit. Quota resets on your billing cycle date each month.
Retry service_unavailable and timeout errors up to 2 times with increasing delays (1.5s, then 3s). Don't retry 401, 402, 404, or 400 errors — these are deterministic and won't resolve with retries.
Yes. Copy your MCP API key from Dashboard → Settings and connect the TicketsData MCP server at https://mcp.ticketsdata.com/mcp with the header Authorization: Bearer YOUR_MCP_API_KEY. The assistant can then fetch live listings, find events, compare marketplaces and analyze every listing on request. It works on every plan and uses your normal credits. AXS data needs a Pro plan or above, as with the REST API.
In Dashboard → Settings → MCP Access. Every account has one. Click Regenerate to replace it at any time: the old key stops working within a minute. The key only works for MCP connections. The REST API keeps using your email and password.
No. Tool calls spend the same credits as the REST API: 1 credit for listings or event discovery, and 1 report plus up to 12 credits for a cross-market comparison (Pro plans and above). Analyzing a result already fetched is free. MCP access is capped at 30 calls per minute and 1,000 calls per 24 hours to protect your credits from runaway agent loops.
Yes. Large results show the first part of the listings with the exact total, and the assistant uses the free analyze_listings tool to filter, sort and summarise all of them on the server, for example the cheapest listing per section or how many pairs are under a price. It works on every marketplace with the same field names and spends no credits.
Yes. Dedicated plans run on isolated infrastructure with higher concurrency limits, no shared throttling, and horizontal scaling for high-volume workloads. Contact support to discuss dedicated capacity.
