Skip to main content
The speech endpoint is the voice from our agents, on its own. Send text, get a WAV back. It takes the same request shape as the OpenAI audio API, so any OpenAI SDK works by swapping base_url and the key. This is a separate key from your sk_live_ API key — ask us for one; it is not minted from the dashboard.

Quickstart

The response body is the audio: audio/wav, 48 kHz mono PCM16. On a 400-character input expect roughly 3 seconds end to end — the whole file is rendered before the first byte is sent, so this endpoint is built for generating clips, not for driving a live conversation. For interactive latency, use an agent and place a call.

Request

model is a stable public name, not the build number. It always points at the current production voice, which we upgrade underneath you — so a clip you generate today may sound better than one from last month without your code changing.

The rewrite pass

Raw text is rarely speech-ready. 97% should be read as “ninety-seven percent”, a product name should not be transliterated, and a bare URL should not be spelled out character by character. By default we run your text through a rewrite that fixes exactly that, preserving meaning, before it reaches the engine. Every response carries a header naming what happened: fallback is a degradation, never an error: you still get audio and still get a 200. If you are debugging pronunciation and the header says fallback, the rewrite is not what shaped that clip.
Skip the rewrite

Listing models

Errors

Errors use the same envelope as the rest of the API — see Errors.
404 Not Found

Using an OpenAI SDK

The shape matches, so point the client at us and keep your code:
lexicon, numbers, instructions and speech_ready are ours, not OpenAI’s. SDKs that validate their request body may reject them — send those with a plain HTTP client, or use extra_body where your SDK supports it.