Search docs

Find any page, endpoint, or guide.

List available voices

Alpha
GEThttps://api.voxrouter.ai/v1/voices

Return the voice catalog across every configured provider. Filter by `provider` (comma-separated), `language`, or `gender`. Voices are identified by a provider-local `id` plus the `provider` field — pass both to `/v1/audio/speech` as `model="{provider}/..."` and `voice=id`.

bash
curl https://api.voxrouter.ai/v1/voices \
  -H "Authorization: Bearer $VOXROUTER_API_KEY"

Headers

AuthorizationstringRequired
Bearer token. Send as Authorization: Bearer pk_....

Query parameters

providerstringOptional
Comma-separated provider filter (e.g. `elevenlabs,cartesia`).
languagestringOptional
ISO language prefix (case-insensitive, e.g. `en` or `en-US`).
genderstringOptional
Exact gender label (case-insensitive, e.g. `female`).

Response

Voice catalog.

json
{
  "voices": [
    {
      "id": "string",
      "provider": "elevenlabs",
      "name": "string",
      "language": "string",
      "labels": {},
      "model_compatibility": [
        "string"
      ]
    }
  ]
}
voicesobject[]Required

Errors

Non-2xx responses return a JSON body with a machine-readable error code and an optional details string.

StatusMeaning
400Request body failed validation or model string is malformed.
401Missing or invalid API key.
429Per-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).
500Unexpected server error.