Theme
Voices and TTS capabilities
Find voices and supported languages, models, and audio formats for TTS.
List voices
List voices available for a supported language.
Requires voices:read. language is optional; if supplied it must be a code returned by GET /v1/tts/languages.
Use /v1/voices as the canonical route. GET /v1/tts/voices is a compatibility alias with identical authentication, visibility, filters and pagination.
Example response:
json
{
"data": [
{
"id": "voice_01J9NEUTRAL0000000000000001",
"display_name": "Lison Neutral",
"description": "A clear, balanced voice for everyday narration.",
"language": "en",
"kind": "system",
"visibility": "public",
"short_description": "Tiniq · muvozanatli",
"orb_palette": "calm"
}
],
"request_id": "req_01J..."
}Use the returned opaque id as voice_id in TTS requests. Do not use a display name or an internal provider/model identifier.
The catalog is account-scoped. Unrestricted system voices are available to all authenticated accounts; restricted system voices appear only for allowed users. Private custom voices are returned only to their owner. Approved public custom voices may also appear, subject to language and availability rules. A voice ID does not bypass authorization for synthesis.
Own cloned voices include can_manage: true; system and foreign voices do not. This flag indicates ownership, not this key's write permission. Create a verified private clone or edit/delete your existing clone through Voice Cloning. Mutation requires voices:write.
List languages and model metadata
List supported languages and public TTS model metadata.
Requires tts:read. The response contains:
provider: public product name, currentlyLison-VoiceLab.sample_rate: current default output rate, currently24000.data: enabled language codes and names.models: public model cards and output formats.
The catalog shows VoiceLab Lison with the Studio Quality badge. Internal provider and model names are not exposed.
Example model output metadata:
json
{
"id": "lison",
"name": "VoiceLab Lison",
"badge": "Studio Quality",
"description": "Natural, expressive multilingual speech for voiceovers, audiobooks, narration, and content creation.",
"recommended": true,
"languages": ["en", "uz", "ru"],
"outputs": [
{
"format": "wav",
"label": "WAV 24 kHz (Lossless)",
"content_type": "audio/wav",
"sample_rate": 24000,
"streaming": false
}
]
}Use models[].id only as a display/catalog identifier. The TTS request does not currently accept a model field; VoiceLab selects the configured model.
Language selection in a client
- Call
/v1/tts/languageswith a key that hastts:read. - Render
data[].nameanddata[].native_name. - Store
data[].codewhen the user selects a language. - Call
/v1/voices?language={code}with a key that hasvoices:read. - Store
voices[].idand send it asvoice_idto/v1/tts.
Do not hardcode a list of languages or assume every voice supports every language. The catalog can change without changing the API version.
Current output limitations
REST TTS returns complete WAV audio: 24,000 Hz, mono, 16-bit PCM.
Offer other formats, bitrates or sample rates only when the catalog's outputs array lists them. Realtime TTS uses a separate raw PCM protocol.