Getting Started with the SeatData API
Step-by-step guide to setting up and using the SeatData API
Follow these instructions to begin using the SeatData API.
Step 1: Create an Account
If you don't already have a SeatData account, create one at: https://seatdata.io/register/
Existing Users
If you already have a SeatData account (Basic, Pro, etc.), you can add API access to your existing account—no need to create a new one.
Step 2: Subscribe to API Access
- Log into your SeatData account
- Navigate to the Pricing page
- Choose an API subscription tier or pay-as-you-go and complete checkout
API access is available two ways: monthly subscription tiers that include a set request allowance (requests beyond the allowance bill at your tier's overage rate), or pay-as-you-go with no subscription, billed per request from a prepaid credit balance. Current rates are listed on the Pricing page.
Step 3: Generate Your API Key
- After subscribing, open the API Keys page from the sidebar
- Click "Generate API Key"
- Copy your API key immediately—for security, it will only be shown once
Important
Store your API key securely. If you lose it, you'll need to regenerate a new one (which invalidates the old key).
Step 4: Using the API
Authentication
All API requests must be authenticated. Send your API key as a bearer token (preferred):
Authorization: Bearer <your-64-character-key>The legacy api-key header is also accepted on any endpoint:
api-key: <your-64-character-key>API Documentation
Full API documentation is available in the API Reference. If you already call the v0.3 sales endpoints, see Migrating Sales Data to v1.
Example Request (Python SDK)
This example uses our official Python SDK:
pip install seatdata-sdkfrom seatdata import SeatDataClient
client = SeatDataClient(api_key="your_64_char_api_key")
# Verify auth, and see your plans and rate limits
account = client.get_account()
print(account["plans"])
# Search events
events = client.search_events(
venue_name="Madison Square Garden",
venue_city="New York",
)
# One page of sales for an event
page = client.get_event_sales(event_id=12345, limit=50)
for row in page["data"]:
print(row["source"], row["price"], row["quantity"])
# Or walk every page. first_page holds the metadata the server sends once.
iterator = client.iter_event_sales(event_id=12345, source="all")
rows = list(iterator)
print(len(rows), "rows of", iterator.first_page["total_count"])An async client (AsyncSeatDataClient) and the v0.x methods are documented in the
SDK README.
Example Request (Python)
Calling the API directly, without the SDK:
import requests
response = requests.get(
"https://seatdata.io/api/v1/events/12345/sales",
params={"limit": 200},
headers={"Authorization": "Bearer YOUR_API_KEY"},
)
response.raise_for_status()
page = response.json()
for sale in page["data"]:
print(sale)This returns one page
GET /v1/events/{event_id}/sales is cursor paginated, so the request above returns at most
limit rows. When next_cursor is not null, keep calling with starting_after=<next_cursor>
until it is, or you will silently miss rows. The API Reference has a
worked paging example in five languages.
Pricing
The API is billed per request, either against your subscription tier's monthly allowance or against your pay-as-you-go credit balance. Current rates for every tier and pay-as-you-go are listed on the Pricing page.
Most endpoints are free. Of those that consume pulls, several charge only when they return something new, and paging through a result set is always free. The API Reference lists which endpoints charge and under exactly what conditions, endpoint by endpoint.
Batch Sales Data Requests
To fetch sales data for multiple events in one call, use POST /v1/events/sales/batch instead of calling the sales data endpoint once per event. The v0.3 equivalent, POST /v0.3/salesdata/batch, remains fully supported.
- Accepts up to 100 events per request.
- Send a JSON body with
event_ids(SeatData Event IDs),event_ids_sh(Marketplace Event IDs), or both. EachGET /v1/events/searchresult carries both:event_id, andsh_event_id(nullwhen SeatData has not matched the event on that marketplace). - The response's
resultsobject is keyed by whichever identifier you sent for each event. A top-leveleventsobject, keyed the same way, gives each served event'sseatdata_event_id,sh_event_id, andvs_event_id. - Billing is identical to the single sales data endpoint: one pull per event that returns sales data. Events with no sales are free.
- The v0.3 endpoint gzips every response; v1 does not force gzip.
See the API Reference for the full request and response schema.
Data Freshness for Requested Events
Requesting an event through the sales or listings endpoints prioritizes it for re-scanning — prioritized events are scanned at least every 30 minutes.
Daily Event CSV Download
If you subscribe to the Daily Event CSV add-on, the nightly file can also be retrieved through the API with GET /v0.5/daily-csv/download. The endpoint returns the CSV once it has been generated — even if the email delivery failed — making it a reliable alternative to inbox delivery for scheduled pipelines. See the API Reference for details.
Monitoring Usage
Usage is available through the API and in the dashboard.
Through the API. GET /v1/usage returns call counts for the current billing period with a
per-endpoint breakdown, plus the period start and end. GET /v1/account returns your active
subscriptions and the rate-limit catalog. Neither call is charged, so both are safe to poll from a
monitoring job. See the API Reference for the response schemas.
usage = requests.get(
"https://seatdata.io/api/v1/usage",
headers={"Authorization": "Bearer YOUR_API_KEY"},
).json()
print(usage["period_start"], "→", usage["period_end"])
print(usage["totals"])In the dashboard. The API Keys page shows total requests for the current billing period and a per-endpoint breakdown, updated every 15 minutes. Billing details are at Dashboard → API Billing.
Managing Your API Key
From the API Keys page, you can:
- Regenerate your key if compromised (immediately invalidates the old key)
- Revoke your key to disable API access
- Generate additional keys — multiple keys per account are supported for separate applications or environments
Need Help?
If you have any questions or run into issues, please contact us at support@seatdata.io.
API Documentation
Complete API documentation for SeatData's ticket market data platform. Access real-time and historical ticket pricing, sales analytics, and venue data through our RESTful API and Python SDK.
Migrating to v1
How to move from the v0.x sales and listings endpoints to their v1 equivalents