language_code is a stable ISO 639-1-style code that identifies the language
used by a saved voice or a text-to-speech request. Store and send the code, not
a translated language name.
Supported language codes
The Voice contract accepts these 23 codes:
The OpenAPI schema exposes the same enum anywhere Voice Metadata accepts or
returns
language_code. To discover the current contract at runtime, call:
client.voices.metadata_options(). The TypeScript SDK
method is client.voices.metadataOptions(). CLI and agent workflows can use
breeze voice metadata-options --agent.
Voices and accents
A saved voice’slanguage_code describes the language of its reference or
preview audio. Use it when saving a preview, editing a saved voice, or filtering
GET /v1/voices.
accent depends on language_code. Read the allowed array from
accent_codes_by_language[language_code] in the Metadata options response.
English (en) and Chinese (zh) provide accent codes. Every other language
returns an empty array and requires accent to be null.
Changing a saved voice’s language automatically clears an existing accent that
is invalid for the new language when the edit omits accent. Sending an
explicitly incompatible language and accent returns VALIDATION_ERROR.
Text to speech
For synthesis,language_code selects pronunciation and language handling for
the request. The chosen model must also support that language. Use
GET /v1/models and inspect each model’s languages array before selecting a
model-language pair.
Omit language_code only when the endpoint documents a default or when the
saved voice language should be reused. Supplying it explicitly is preferable
for automated multilingual workflows.
