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

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:
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. 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.