curl --request POST \
--url https://api.nineninesix.ai/tts/bytes \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model_id": "gepard-1.0",
"transcript": "Today is a wonderful day to build something people love!",
"voice": {
"mode": "id",
"id": "a0e99841-438c-4a64-b679-ae501e7d6091"
},
"output_format": {
"container": "wav",
"encoding": "pcm_s16le",
"sample_rate": 22050
}
}
'"<string>"Text-to-Speech (Bytes)
Generate audio from text and return the complete audio file in a single response — the body is the raw audio in the requested format. Use this when you want the whole clip at once; for incremental low-latency playback use /tts/sse or the WebSocket endpoint instead. The wav container is available on this endpoint only.
curl --request POST \
--url https://api.nineninesix.ai/tts/bytes \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model_id": "gepard-1.0",
"transcript": "Today is a wonderful day to build something people love!",
"voice": {
"mode": "id",
"id": "a0e99841-438c-4a64-b679-ae501e7d6091"
},
"output_format": {
"container": "wav",
"encoding": "pcm_s16le",
"sample_rate": 22050
}
}
'"<string>"Authorizations
Pass your API key as a Bearer token: Authorization: Bearer sk_996_....
Body
The TTS model. Currently gepard-1.0.
gepard-1.0 The text to synthesize. Billed at 1 credit per character. A single request must stay under the generator's ~46.5s audio ceiling — roughly ~900 characters of en-US prose, but far fewer for number-heavy text (~130 digits), since digits are spoken as whole words. Over the limit → input_too_long (400); split longer content across requests.
Selects the voice to synthesize. Required — there is no default voice; a request that doesn't resolve to a voice returns an error (it is no longer silently substituted). The only accepted form is the nested object { "mode": "id", "id": "<voice-uuid>" }; a top-level voice_id is not supported.
Show child attributes
Show child attributes
Output audio format. Each field is validated against a fixed set; anything outside these values returns 400 with no silent fallback.
Show child attributes
Show child attributes
Optional BCP-47 language tag (full dialect, e.g. en-US).
"en-US"
Response
The audio file in the requested format. A wav container is returned as Content-Type: audio/wav (the playground renders an audio player); a raw container is returned as application/octet-stream (raw PCM has no header and won't play in a browser).
The response is of type file.