aiGeneration

Media · Generate · List available TTS voices

List voices available to the current workspace, filtered by language.

language_code is the ONLY required parameter — use an exact BCP-47 locale (en-US, en-GB, fr-FR, hi-IN, ja-JP). Combine with is_premium=true for a short, high-quality shortlist.

The optional filters (gender, provider, engine, is_premium, language_name, search) all default to an empty string "", which means "no filter — return everything". Leave them at "" unless the user explicitly asked to filter. Do NOT substitute 0/false for "no filter": 0 is a REAL value (gender 0 = Male, provider 0 = Google, engine 0 = Neural), so sending it silently narrows the list. The empty-string default is the ONLY correct "unset" value.

Response:

  • voices[]: id (uuid), voice_name, language_code, avatar, voice_sample, gender (0=Male, 1=Female, 3=Neutral), is_premium, description, supports_instructions (bool — true if the voice honors the instructions style/pace hint on generateAudio). Use id as voice_id in generateAudio. To re-resolve a single known voice_id (e.g. from a saved preference) without re-listing, use getVoice.
  • languages[]: distinct {language_code, language_name} pairs.

To resolve a known voice_name (e.g. from an avatar roster) to its id, pass voice_name + language_code — that pair is unique, and the id differs per locale, so the name must be re-resolved whenever the language changes. Always check the entry you use actually has that voice_name rather than trusting voices[0] — see the voice_name parameter.

get/api/v1/voices

Request

  • Base URL
    https://api.simplified.com
  • Auth
    API key in header Authorization

Query parameters

language_codestring required

BCP-47 locale, exact match (e.g. en-US, fr-FR). Always required — narrows the list significantly.

language_namestring

Display name, exact match (e.g. English (US)). Use when you only have the display name.

voice_namestring

Exact voice name, case-sensitive (e.g. Leda, Puck). NOT unique on its own — a Chirp name exists once per locale (Leda x 53), and each locale has its own distinct id. Always pair with language_code to land a single voice. Use when you hold a name from a curated roster and need its id for generateAudio. ALWAYS confirm the returned entry's voice_name equals the name you asked for before using its id: deployments that predate this filter ignore the parameter and return the whole locale, so trusting voices[0] blindly can hand you a different voice — and a wrong-gender one.

searchstring

Substring match across language_code and language_name only — it does NOT search voice names. search=Orus returns nothing; to find a voice by name use the voice_name parameter. Use this for genuinely vague locale requests ("any English voice" → search=en).

boolean
OR
''

Filter to premium (true) or standard (false) voices. Leave as the default empty string "" to return BOTH tiers. Only set true/false when the user explicitly asks for premium or standard.

'0' | '2' | '3' | '4' | '5' | '6'
OR
''

Filter by TTS provider: 0=Google, 2=ElevenLabs, 3=OpenAI, 4=Microsoft, 5=Google Chirp 3 HD, 6=Gemini Flash TTS. Leave as the default empty string "" to include ALL providers. 0 is a real value (Google), NOT 'any' — only send an integer when the user explicitly names a provider.

'0' | '1' | '3'
OR
''

Filter by voice gender: 0=Male, 1=Female, 3=Neutral. Leave as the default empty string "" to return ALL genders. 0 is a real value (Male), NOT 'any' — only send an integer when the user explicitly asks for a gender.

'0' | '1'
OR
''

Filter by synthesis engine: 0=Neural (higher quality), 1=Standard. Leave as the default empty string "" to return ALL engines. 0 is a real value (Neural), NOT 'any' — only send an integer when the user explicitly asks to restrict by engine.

Response

Voices and distinct languages available to the workspace

unknown required

Changes

No recorded changes to this operation across all 1 revision of this API.