Skip to Content
APIVoices

Voices API

List the voices your API key can synthesize with. The result is exactly the set of voice_id values POST /v1/tts accepts for your key: the public premade catalog plus your organization’s own voice clones.

GET https://api.revolab.ai/v1/voices

No request parameters. Authenticate with your API key as a Bearer token.

Request examples

curl https://api.revolab.ai/v1/voices \ -H "Authorization: Bearer $REVOLAB_API_KEY"

Response (200 OK)

{ "voices": [ { "voice_id": "aisyah", "display_name": "Aisyah", "language": "Malay", "gender_style": "Female", "type": "premade", "capabilities": { "speed": true, "pitch": true, "emotion": false, "inline_emotion_tags": false } }, { "voice_id": "my-clone-3374b001", "display_name": "My Clone", "language": "English", "gender_style": "Unknown", "type": "cloned", "capabilities": { "speed": true, "pitch": true, "emotion": false, "inline_emotion_tags": false } } ] }
FieldTypeDescription
voice_idstringThe identifier to pass as voice_id to POST /v1/tts.
display_namestringHuman-readable voice name, as shown in the dashboard.
languagestringPrimary language of the voice.
gender_stylestringVoice gender/style descriptor.
typestring"premade" (public catalog) or "cloned" (your organization’s clone).
capabilitiesobjectPer-voice tuning flags: speed, pitch, emotion, inline_emotion_tags.

Only voices your key can actually use are returned — another organization’s clones never appear, and disabled voices are filtered out.

Status codes

401 Unauthorized — Missing, invalid, or revoked API key

{ "error": { "code": "unauthorized", "message": "Invalid API key format. Keys must start with 'rvl_live_'.", "request_id": "req_01HXYZ..." } }

ElevenLabs shape

The same path doubles as the ElevenLabs-compatible voice list: authenticate with the xi-api-key header instead of Authorization: Bearer and the response uses the ElevenLabs voice-list schema (name, category, labels, preview_url), with category reflecting premade vs cloned. See ElevenLabs compatibility.