Skip to main content
POST
Text-to-Speech (Bytes)

Authorizations

Authorization
string
header
default:$CARTESIA_API_KEY
required

Cartesia API key (sk_car_...). Get one at play.cartesia.ai/keys.

Headers

Cartesia-Version
enum<string>
default:2026-03-01
required

API version header.

Available options:
2026-03-01
Example:

"2026-03-01"

Body

application/json
model_id
enum<string>
default:sonic-3.5
required

The ID of the model to use for the generation. See Models all options.

Available options:
sonic-3.5,
sonic-3,
sonic-preview,
sonic-latest
Example:

"sonic-3.5"

transcript
string
default:Hi there, it's awesome to meet you.
required
voice
TTSRequestVoiceSpecifier · object
required
output_format
WAVOutputFormat · object
required
language
string | null

Deprecated — use locale instead on Sonic 3.6 and later. The language the voice speaks the transcript in, as a code from the languages the model supports (en, hi). Supported languages are model-specific. See the language support section for the model you are calling — Sonic 3.6 or Sonic 3.5. Requesting a language a model does not support returns a 400 error; Odia (or), for example, is available on Sonic 3.6 but not on Sonic 3.5. Interchangeable with locale — set one or the other, never both. Setting both returns a 400 error, even if the values match. Existing integrations using language continue to work unchanged, including on Sonic 3.5 and earlier.

Example:

"en"

locale
string | null

The locale or language the voice speaks the transcript in, as a code from the supported locales or the languages the model supports (en-GB, hi-IN, en, hi). Accepts exactly the same values as language; set one or the other, never both. Setting both returns a 400 error, even if the values match. Locale codes such as en-GB require Sonic 3.6 or later; passing one to an earlier model returns a 400 error. Bare language codes such as en are accepted by every model that supports the field, in either locale or language. Supported languages and locales are model-specific. See the language support section for the model you are calling — Sonic 3.6 or Sonic 3.5. Locale codes are case-sensitive. Values not on the supported list return a 400 error — arbitrary BCP-47 codes are rejected, not ignored. See Text Normalization.

Example:

"en-GB"

normalization
string | null
default:auto

Controls how written forms (dates, times, numbers) are converted to spoken forms, independently of the voice's accent. One of auto (default), off, or a locale code from the supported locales (e.g. en-IN). Values not on the list return a 400 error. off disables only the automatic normalizer; SSML tags, generation controls, and pronunciation dictionaries still apply, and blocked characters still return a 400 error with their positions. Locale codes require Sonic 3.6 or later. See Text Normalization.

Example:

"auto"

pronunciation_dict_id
string | null

The ID of a pronunciation dictionary to use for the generation. Pronunciation dictionaries are supported by sonic-3 models and newer.

generation_config
GenerationConfig · object

Configure the various attributes of the generated speech. Available on sonic-3 and sonic-3.5; not available on earlier models.

See Volume, Speed, and Emotion for a guide on this option.

speed
enum<string>
default:normal
deprecated

This property is deprecated and may not work for all voices. Use generation_config.speed instead. Influences the speed of the generated speech.

Available options:
slow,
normal,
fast

Response

200 - audio/*

Audio bytes

The response is of type file.