xtrada.DATAOwner sign in

Event data. One API.

Events, observed pricing and calendars for your applications.

Base URLhttps://data.xtrada.dev/v1

Try the API

GET

One request, sent through the Xtrada documentation server.

SERVER-SIDE EXAMPLES
curl --request GET 'https://data.xtrada.dev/v1/events?limit=5' \
  --header 'Authorization: Bearer YOUR_SERVER_API_KEY' \
  --header 'Accept: application/json'

Response

No request sent

Enter your key and send a request. The real status, headers and JSON will appear here.

API endpoints

MethodEndpointPurpose
GET/v1/eventsSearch and browse events
GET/v1/events/{id}Event metadata and reported metrics
GET/v1/events/{id}/salesIndividual sales · unavailable
GET/v1/events/{id}/historyDetailed market history · unavailable
GET/v1/events/{id}/price-histogramSale price histogram · unavailable
GET/v1/events/{id}/mediaEvent images and static seatmaps
GET/v1/calendarEvent dates, on-sales and presales
GET/v1/market/hotReported hot events
GET/v1/market/moversReported market movers
GET/v1/usageYour client usage today
GET/v1/capabilitiesAvailable data capabilities
GET/v1/events/{id}/observationsStored event observations

Authentication

Use Authorization: Bearer with your private Xtrada key. Store it on your server; let your browser call your own backend. Keys have scopes and no expiry unless your owner sets one.

401 means an invalid, expired or disabled key. 403 means a scope or network restriction. Client permissions are checked before cached data is returned.

Limits & shared caching

Keys have a requests-per-minute limit, and all keys of a client share its aggregate allowance. New source collections have a separate client limit, normally ten per minute. A cache HIT does not spend that collection allowance.

Top and movers reuse the same market summary. Equivalent searches share a five-minute cache across clients and instances. Inspect X-Xtrada-Cache: HIT, MISS or STALE. A stored observation read uses ARCHIVE.

429 includes Retry-After. Do not poll the same data on every visitor request. 503 is an unavailable control, source or archive; do not cache it as a successful empty response.

Pagination

Use limit (1–100) and the opaque nextCursor. Reuse the original filters and limit. Live catalogue cursors become invalid when the catalogue changes. Observation cursors anchor the maximum stored version and expire after 24 hours.

Coverage & own history

Observations are captured from successful source collections and retain changed event metadata, reported metrics, prices, image/map links and calendar entries. Their capture time is not a transaction time.

Collection is demand-driven and partial. Individual sales, complete market history and interactive seat availability are not supplied. Detailed sales/history endpoints remain unavailable until verified data supports them.

Errors

The API returns JSON errors with a code, message and request ID. Website pages use a dedicated 404 screen for missing routes and a safe 500 fallback for unexpected failures.

StatusMeaningAction
400Invalid input or cursorCheck the endpoint parameters.
401Invalid or disabled keyCheck the key and optional expiry.
403Scope or network restrictionReview the policy with the owner.
404Resource not foundCheck the page or event ID.
429Rate limit exceededRespect Retry-After.
500Unexpected server failureRetry later; keep the request ID.
502API unreachable from the consoleCheck the backend connection.
503Data, source or access store unavailableDo not cache the failure as an empty success.

API reference

GET /v1/events

A nonempty q performs bounded discovery/search against configured sources on cache miss. Equivalent normalized queries share a five-minute cache across clients and instances; page size and cursor reuse the same source results. No source pagination crawl.

Scope: events:read

GET /v1/events/{id}

Event metadata and reported metrics

Scope: events:read

GET /v1/events/{id}/sales

Currently returns 503 DATA_UNAVAILABLE. The configured sources do not provide a verified detailed sales ledger or historical series.

Scope: sales:read

GET /v1/events/{id}/history

Currently returns 503 DATA_UNAVAILABLE. The configured sources do not provide a verified detailed sales ledger or historical series.

Scope: history:read

GET /v1/events/{id}/price-histogram

Currently returns 503 DATA_UNAVAILABLE. The configured sources do not provide a verified detailed sales ledger or historical series.

Scope: history:read

GET /v1/events/{id}/media

Images and static seatmap URLs from source metadata, refreshed with the live catalogue through a shared five-minute source cache. Supplier media is not rehosted. The Xtrada placeholder is served from the same API project.

Scope: events:read

GET /v1/calendar

Event dates, on-sales and presales

Scope: calendar:read

GET /v1/market/hot

Reported hot events

Scope: market:read

GET /v1/market/movers

Reported market movers

Scope: market:read

GET /v1/usage

Your client usage today

Scope: usage:read

GET /v1/capabilities

Available data capabilities

Scope: events:read

GET /health

Process liveness

GET /contract

OpenAPI contract

GET /v1/events/{id}/observations

Changed event metadata captured from successful shared source collections. Ordered by recorded ID descending, anchored to the first page; cursors expire after 24 hours. Does not reconstruct individual ticket sales or data before capture started.

Scope: history:read