List providers and their models
Alpha
GET
https://api.voxrouter.ai/v1/providersReturn the catalog of routable providers with the models each exposes. The catalog is near-static (published alongside the router code) and safe to cache on the client for hours. For live health (per-provider availability, circuit-breaker state, missing-key flags), call `GET /v1/status` instead — that endpoint is specifically sized and shaped for polling. Pricing is tracked in the source-of-truth catalog at `voxrouter/providers/` but is not returned on this endpoint yet. The response schema is additive; a `pricing` field will appear once commercial pricing is finalized.
bash
curl https://api.voxrouter.ai/v1/providers \
-H "Authorization: Bearer $VOXROUTER_API_KEY"Headers
AuthorizationstringRequiredBearer token. Send as
Authorization: Bearer pk_....Response
Provider catalog.
json
{
"providers": [
{
"id": "elevenlabs",
"name": "string",
"website": "string",
"models": [
{
"id": "eleven_turbo_v2_5",
"name": "string",
"response_formats": [
"mp3"
]
}
],
"capabilities": {
"supportedFormats": [
"mp3",
"pcm"
],
"unwiredCapabilities": [
"voice_cloning",
"websocket_streaming"
],
"quirks": [
"string"
],
"lastSmokeTest": "string"
}
}
]
}providersobject[]RequiredErrors
Non-2xx responses return a JSON body with a machine-readable error code and an optional details string.
| Status | Meaning |
|---|---|
| 401 | Missing or invalid API key. |
| 429 | Per-key rate limit or per-key concurrency limit exceeded. The `code` field on the body distinguishes the two (`rate_limit_exceeded` vs `concurrency_limit_exceeded`). `Retry-After` is seconds-from-now: a hard value until the rate-limit window resets, or a soft `1` hint for concurrency (slots free on request completion). |
| 500 | Unexpected server error. |