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

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-08-14
required

API version header.

Available options:
2026-08-14
Example:

"2026-08-14"

Body

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

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

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

"sonic-3.6"

transcript
string
default:Hi there, it's awesome to meet you.
required
voice
required

The ID of the voice.

Example:

"db6b0ed5-d5d3-463d-ae85-518a07d3c2b4"

output_format
SSEOutputFormat · object
required
language
string | null

The transcript's language or locale (for example en or en-GB). language and locale accept the same values. Set one or the other, never both; setting both returns a 400 error. See supported codes.

locale
string | null

The transcript's language or locale (for example en or en-GB). locale and language accept the same values. Set one or the other, never both; setting both returns a 400 error. See supported codes.

accent
string | null

Usually unnecessary: Cartesia picks the closest accent the voice supports for the requested language or locale. Set it only to make a multilingual voice sound accented (e.g. speak English with a French accent). Must come from the voice's Get Voice accents field. Learn more here.

normalization
string | null
default:auto

Text normalization. auto (default) runs the locale-aware normalizer, off skips it, or pass a language or locale code (for example en or en-IN) to pin the normalizer independently of the generation language. See Text Normalization.

add_timestamps
boolean | null
default:false

Whether to return word-level timestamps. If false (default), no word timestamps will be produced at all. If true, the server will return timestamp events containing word-level timing information.

add_phoneme_timestamps
boolean | null
default:false

Whether to return phoneme-level timestamps. If false (default), no phoneme timestamps will be produced. If true, the server will return timestamp events containing phoneme-level timing information.

use_normalized_timestamps
boolean | null

Whether to use normalized timestamps (True) or original timestamps (False).

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 newer models; not available on earlier models.

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

context_id
string | null

This can be any string value you find useful. The server will echo back the same context_id in events that it sends.

Contexts on the TTS (WebSocket) endpoint are used for continuations. > The TTS (SSE) endpoint does not support continuations, so most users just ignore this property.

Response

200 - text/event-stream

Server-sent events stream. Each frame is data: <json>\n\n where the JSON payload matches TTSSSEEvent.

Audio data chunk.

type
enum<string>
required

Event type identifier.

Available options:
chunk
done
enum<boolean>
required

Whether this is the final event for the request. Always false for chunk events.

Available options:
false
data
string
required

Base64-encoded audio data.

step_time
number
required

Server-side processing time for this chunk in milliseconds.

status_code
integer
required

HTTP-style status code.

context_id
string | null

The context ID echoed back from the request, if one was provided.