audio/wav API — call it from any language. Each endpoint has its own page with request/response schemas and a Try it playground you can run right here in the docs (the catalog endpoints work without a key).
Base URL
Authentication
POST /v1/tts, POST /v1/tts/stream, and POST /v1/audio/speech require a bearer token:
GET catalog endpoints (/v1/models, /v1/voices, /health) are open — no key — so docs, playgrounds, and voice pickers render without one. Create keys in the console; see Authentication for handling them safely.
Conventions
- Audio out. Synthesis returns raw WAV —
audio/wav, 24 kHz, 16-bit PCM, mono. TheX-Tokay-Charsresponse header reports the billed character count. - JSON in. Send
Content-Type: application/json. - Streaming.
POST /v1/tts/streamreturnsapplication/octet-streamframed aswav-frames-v1: a 4-byte big-endian length, then that many bytes of one complete WAV, repeated. See the streaming guide. - OpenAI-compatible.
POST /v1/audio/speechaccepts OpenAI’s request shape — see OpenAI compatibility.
Endpoints
POST /v1/tts
Synthesize text → WAV.
POST /v1/tts/stream
Sentence-by-sentence streaming.
POST /v1/audio/speech
OpenAI-compatible alias.
GET /v1/voices
The voice catalog (open).
Errors
Errors come back as JSON with adetail string and the matching HTTP status:
See Errors & retries for the SDK’s error types and retry behavior.