Skip to main content
POST
Create speech

Authorizations

Authorization
string
header
required

API key as bearer token in Authorization header

Body

application/json

Text-to-speech request input

input
required

Text to synthesize, or a list of turns for multi-speaker input. Each turn has its own text, voice, and instructions. Multi-speaker input is supported by Gemini TTS models and by Fish Audio models other than S1.

Example:

"Hello world"

model
string
required

TTS model identifier

Example:

"mistralai/voxtral-mini-tts-2603"

input_references
object[]

Reference content for stateless voice cloning or voice design. Audio mode: one to three input_audio parts, each optionally paired with a text part carrying its transcript (a single clip accepts its transcript before or after it; with multiple clips each transcript immediately follows its clip), plus at most one image_url part as a scene image on providers that condition the cloned voice on its setting; only routed to endpoints that support voice cloning (and multiple references or image references when those parts are sent). Image mode: exactly one image_url part; only routed to endpoints that support image references. An empty array is treated as no reference.

Reference content part for stateless voice cloning or voice design

Example:
Example:
instructions
string

Delivery instructions for the whole request, such as tone, pacing, or emotion. Supported by OpenAI gpt-4o-mini-tts, Gemini TTS, and Fish Audio models. Ignored by other providers.

Example:

"Speak in a warm and friendly tone."

provider
object

Provider configuration: data policy routing preferences (zdr, data_collection) and provider-specific passthrough options

response_format
enum<string>
default:pcm

Audio output format

Available options:
mp3,
pcm
Example:

"pcm"

session_id
string

A unique identifier for grouping related requests (e.g., a conversation or agent workflow). Used for observability grouping in Broadcast and private logging; never sent to the provider. If provided in both the request body and the x-session-id header, the body value takes precedence. Maximum of 256 characters.

Maximum string length: 256
Example:

"session-1234"

speed
number<double>

Playback speed multiplier. Honored by models that support it (e.g. OpenAI TTS). Other providers either ignore it or return a 400 for a non-default value when the model has no speed control.

Example:

1

trace
object

Metadata for observability and tracing. Known keys (trace_id, trace_name, span_name, generation_name, parent_span_id) have special handling. Additional keys are passed through as custom metadata to configured broadcast destinations.

Example:
user
string

A unique identifier representing your end-user. Forwarded to Broadcast and private logging as the end-user id; never sent to the provider.

Maximum string length: 256
Example:

"user-1234"

voice
string

Voice identifier (provider-specific).

Minimum string length: 1
Example:

"en_paul_neutral"

Response

Audio bytes stream

Raw audio bytestream. Content-Type varies by requested format (audio/mpeg for mp3, audio/pcm for pcm — 16-bit little-endian).