Providers
How the catalog is organised and versioned.
extractr groups endpoints by provider — the source the data comes from. DICE, Resident Advisor, Ticketmaster, TCGPlayer and Instagram are live today; the catalog grows without breaking existing integrations.
Route grammar
Every data endpoint follows the same pattern:
https://api.extractr.dev/{provider}/{endpoint}For example /dice/get_event, /ra/event_listings, /ticketmaster/search_events. Endpoint slugs are verbs or nouns scoped to their provider — the full, current list is always in the API reference sidebar and the catalog endpoint below.
The catalog endpoint
GET /catalog is public (no key, no credits) and returns every provider and endpoint with its live credit price:
curl https://api.extractr.dev/catalog{
"providers": [
{
"id": "dice",
"name": "DICE",
"category": "music",
"description": "…",
"endpoints": [
{
"name": "get_event",
"method": "GET",
"path": "/dice/get_event",
"description": "…",
"credits": 2
}
]
}
],
"totalEndpoints": 28
}Use it to discover endpoints programmatically, or to display live pricing in your own tooling — it's generated from the same manifests that drive billing, so it can't drift.
Versioning philosophy
There is no global API version. Endpoints are versioned individually:
- Additive changes ship in place. New optional response fields or new optional parameters can appear on an existing endpoint at any time. Write tolerant parsers.
- Breaking changes ship as a new endpoint. If a response shape must change incompatibly, we publish a new slug (e.g.
get_track_v2) and keep the old one running. - Deprecations are announced. Deprecated endpoints are flagged in the catalog and OpenAPI spec well before removal, with a migration note in the docs.
This keeps integrations stable per endpoint: the contract you built against does not change under you.
Requesting a provider
Missing a source you need? The catalog is designed to grow — tell us which source to add next at [email protected].