Providers
How the catalog is organised and versioned.
extractr groups endpoints by provider — the data source they scrape. Spotify, Facebook, Finance, Restaurants and Steam 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 /spotify/get_track, /finance/quote, /steam/player_count. 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": "spotify",
"name": "Spotify",
"category": "music",
"description": "…",
"endpoints": [
{
"name": "get_track",
"method": "GET",
"path": "/spotify/get_track",
"description": "…",
"credits": 2
}
]
}
],
"totalEndpoints": 20
}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 what to scrape next at [email protected].