Use with an AI assistant
These docs are built to be read by machines as well as people. Hand one URL to ChatGPT, Claude, Cursor, Copilot or anything else and it can write correct client code without you explaining the API.
The fastest way
Paste this into any chatbot:
Read https://latency.cam/llms-full.txt That is the full documentation for a voice AI API I am using. Then help me build a Hindi collections call agent.
llms-full.txt is the entire API — every endpoint, every model, every language, every caveat — as one plain-text file. It is generated from the same source of truth as the OpenAPI spec, so it cannot drift out of date.
If your tool cannot fetch URLs
Download it and paste the contents. It is deliberately plain text with no markup to trip anything up.
curl -s https://latency.cam/llms-full.txt | pbcopy
The four machine-readable endpoints
| URL | Format | Use it when |
|---|---|---|
| /llms-full.txt | text | You want an assistant to understand the whole API. Default choice. |
| /openapi.json | OpenAPI 3.1 | Generating a typed client, or your tool has native OpenAPI support (Cursor, Postman, custom GPTs). |
| /api/models | JSON | Asking "which model should I use for X". Filterable and always current. |
| /llms.txt | text | Short index. For crawlers, or when context is tight. |
Let the assistant pick the model
The catalog is filterable, so an assistant can answer model-selection questions by querying rather than guessing:
# which streaming TTS models can speak Telugu? curl "https://latency.cam/api/models?task=tts&language=te&streaming=true" # what can transcribe Odia? curl "https://latency.cam/api/models?task=stt&language=or"
Every entry carries the three fields that actually decide the answer:
streaming—falsemeans it cannot be used in a live call, however good it soundslicenseRisk—clear,cautionorblockercaveats— the things you would otherwise find out the hard way
Why we include the bad news
measured means we ran it on the live GPU and logged it. published means the model authors claim it and we have not reproduced it. estimated means it is our arithmetic.The models that are actually deployed are all marked measured now, including error rates on real human speech rather than synthetic audio. So when a developer asks their chatbot "how accurate is this on Telugu over a phone line", the honest answer is available: word error rate 0.312, character error rate 0.155. Models we did not deploy keep their published or estimated labels, so an assistant will not present an author's claim as our benchmark.
The same applies to licences. Two genuinely good models — indic-mio and indicf5 — have no stated licence, and are marked blocker. An assistant reading these docs will tell you not to ship them, which is correct.
Prompts that work well
"Using latency.cam, write a complete Python client for /ws/stream that handles barge-in correctly — including dropping buffered audio for an abandoned turn." "Using latency.cam, write a Python function that takes an 8kHz mulaw audio buffer, detects whether it's Tamil or Telugu, transcribes it, and returns the text. Handle the case where the GPU is off." "Which speech-to-text model should I use for a live Hindi call, and which one for transcribing yesterday's recordings? Give me the measured error rates for both." "Write the configure frame for /ws/stream for a Telugu collections agent that doesn't stop talking when the caller says 'haan'." "My caller speaks Odia. Can I reply in Odia? If not, what's the workaround?"
The last one is a good test of whether an assistant has actually read the docs. The correct answer is no — Odia can be transcribed and translated but has no voice — and the workaround is to translate into a language that does.
One thing to tell your assistant
Assistants trained before these models existed will confidently recommend the wrong thing — typically IndicF5, which sounds excellent but cannot stream and has no licence. If you see that, point it at /api/models and ask it to check streaming and licenseRisk before recommending.