Skip to main content
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

Breeze TTS 2 Multilingual (breeze-tts-2-multilingual) supports all 51 codes accepted by the Voice contract. Use this model ID for multilingual generation. The Developer API accepts breeze-tts-2-preview as a compatibility alias for breeze-tts-2-multilingual. This applies to synchronous, asynchronous, streaming, and realtime TTS, as well as voice previews. New generations use the formal model and its 51-language capabilities; history and usage identify it as breeze-tts-2-multilingual. Existing history keeps its original model ID. GET /v1/models lists the formal model only. The complete language set: The OpenAPI schema exposes the same enum anywhere Voice Metadata accepts or returns language_code. To retrieve the supported codes at runtime, call Metadata options:
The Python SDK method is 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’s language_code describes the language of its reference or preview audio. Its accent describes the accent of that audio. Use these fields when saving or editing Voice Metadata, or when filtering List voices. English (en) and Chinese (zh) support the accent codes below. Send the exact code in accent, paired with the matching language_code. The field is optional: Chinese voices with accent: null are treated as Mandarin, and English voices with accent: null are treated as American English for display and filtering. The API preserves the stored value in responses. All other languages require accent: null, with no inferred accent.

English accents (en)

Chinese accents (zh)

Use accent codes

To find Mandarin voices, use language_code=zh&accent_mode=unmarked. accent_mode=unmarked matches stored null values and cannot be combined with accent. Omitting both parameters returns every accent for the selected language. To find American English voices, use language_code=en&accent=american; this includes English voices with a null accent. For example, to find British English voices, pass language_code=en&accent=british to List voices:
For forms or automated validation, retrieve the same lists from Metadata options. accent_codes_by_language.en contains the English codes and accent_codes_by_language.zh contains the eight non-null Chinese codes; render Mandarin as a separate null choice. Other language keys contain empty arrays. 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

accent is Voice Metadata, not a text-to-speech request parameter. Choose a voice with the accent you want, then use its voice_id for synthesis. For synthesis, language_code selects pronunciation and language handling for the request. The chosen model must also support that language. Use List models and inspect each model’s languages[].language_id values before selecting a model-language pair. Write instructions in the same language as the script and language_code. Breeze sends them to the selected TTS model as authored; it does not translate instructions before synthesis. Omission follows the contract of the endpoint you call. HTTP and Realtime TTS do not inherit the reference voice’s language. See TTS language handling, Realtime sessions, and Voice Clone for their distinct language rules. For automated synthesis, choose an explicit language supported by the selected model when the target language is known.