Provider slug
Every (provider, platform, type) combination has a unique slug of the form<provider>/<platform>/<type>[:<tag>] — for example apify/linkedin/profile.info, brightdata/instagram/post.likes, or apify/googlemaps/place.search:compass. You can find them on the providers page; each row has a copy button.
The slug fully and unambiguously identifies the routing target — provider, platform, type, and (optionally) actor variant — in a single field. The :tag suffix is optional and selects a specific actor/dataset variant when the provider exposes more than one for that (platform, type).
POST /v1/extract (URL-driven) and POST /v1/search (query-driven); the type segment determines which endpoint applies. Providers advertise their search coverage on GET /v1/providers via supported_search_types and search_pricing.
How routing works
When you send a request to/v1/extract or /v1/search, SocialRouter:
- Parses the
providerslug into its components - Looks up the matching service in the provider registry
- Builds the chain — the requested provider first, then every other active provider compatible with the same
(platform, type)sorted by per-record cost ascending - Calls the head of the chain, normalizes the response, and returns it
- If the call fails and
fallbackis not disabled, walks the chain until one succeeds
fallback: false.
Current providers
UseGET /v1/providers to see live status and pricing. The catalogue is derived from the provider registry — when a new provider is added, it appears automatically.
Provider availability and pricing can change. Always check the providers endpoint for current information.
Failover
If the primary provider returns an error, SocialRouter transparently retries with the next available provider. The response’sprovider field identifies the provider that fulfilled the request; when a fallback was used, fallback_from holds the originally-requested provider.
You are only charged for the provider that succeeds. See the failover guide for details and per-request opt-out via fallback: false.