Getting Started with Flux TTS Batch (REST)
The batch (REST) transport synthesizes a complete block of text and returns the full audio in one response. Use it to pre-generate fixed audio — IVR prompts, notifications, audiobook lines — where the whole text is known up front and you don’t need incremental playback or interruption. For live, interruptible conversations, use the real-time WebSocket instead (see Batch vs Streaming).
Batch is stateless request/response: simple retries, high fan-out, no connection lifecycle to manage. It serves the same Flux voices as the streaming transport.
Make a request
Section titled “Make a request”curl "https://api.deepgram.com/v2/speak?model=flux-haley-en" \
-H "Authorization: Token YOUR_DEEPGRAM_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "text": "Your appointment is confirmed for 3pm tomorrow." }' \
--output audio.mp3The response body is the synthesized audio in the requested encoding. Per-request telemetry is returned as response headers, mirroring Aura’s REST conventions — character counts and the generic dg-warnings header.
Query parameters
Section titled “Query parameters”| Parameter | Default | Description |
|---|---|---|
model |
— | Required. A flux-{voice}-{language} model (e.g. flux-haley-en). |
encoding |
mp3 |
mp3, opus, flac, aac (containerized/compressed), or raw linear16 / mulaw / alaw. |
bit_rate |
per-encoding default | Bit rate for compressed encodings. For mp3: 8000, 16000, 24000, 32000, 40000, 48000. |
container |
per-encoding default | Output container where applicable (e.g. wav for linear16, ogg for opus). |
sample_rate |
model native | Sample rate; supported values depend on encoding. linear16: 8000, 16000, 24000, 32000, 44100, 48000. mulaw / alaw: 8000, 16000. flac: 8000, 16000, 22050, 32000, 48000. Not applicable to mp3 or opus. |
speed |
1.0 |
Speech-rate multiplier — 0.5 to 1.5 in 0.05 increments. Not supported by every model or language; unsupported combinations return SPEED_NOT_SUPPORTED. |
expressivity |
0 |
Beta. Delivery register, -2 (calm) to 2 (animated). See Expressivity. |
callback |
— | URL to receive the result asynchronously, instead of on the response body. |
callback_method |
POST |
HTTP method for the callback request (POST or PUT). |
priority |
— | Prioritization for asynchronous (callback) requests. Only value: Low. |
tag |
— | Label requests for usage reporting. Repeatable. |
mip_opt_out |
false |
Opt out of the Model Improvement Program. |
When to use batch vs streaming
Section titled “When to use batch vs streaming”See Batch vs Streaming: Which Should I Use? for the decision guide.
Related resources
Section titled “Related resources”- Batch vs Streaming
- Real-Time / Conversational Getting Started
- Voices and Languages
- Media Output Settings