Skip to main content
Give your coding agent this:
The same API described here, written for a model to read: endpoint, auth, every voice and language, streaming format, error codes and working samples, with no prose it has to guess around.

Why a separate file

These pages are paginated, styled and cross-linked — good for a person, noise for a model that wants the whole contract at once. llm.txt is one flat file with no navigation to follow and nothing to infer.

What agents get wrong

Worth pasting alongside it — these are the mistakes we see most:

Writing PCM to .wav

The response has no file header. Renaming the file does not add one.

Skipping v2: true

Required on the first WebSocket frame, and start goes before you read metadata.

A new connection per request

Costs ~300 ms in handshake every time. Reuse it.

Lower-casing the voice

ananya is not Ananya. Voice names are case-sensitive.