The speech APIs are what you call in production. The platform app issues the API key and tracks what you spend; it is not something your integration calls.
Endpoints
| Method | Endpoint | Purpose |
|---|---|---|
POST |
stt.navana.ai/api/transcribe |
Transcribe an audio file in one request |
WSS |
stt.navana.ai |
Live transcription over WebSocket |
POST |
tts.navana.ai/tts/bytes |
Synthesize a block of text in one request |
WSS |
tts.navana.ai |
Live synthesis over WebSocket |
Conventions
Authentication. Speech-to-text takes an X-Api-Key header, including on
the WebSocket upgrade. Text-to-speech takes X-API-Key over HTTP and an
auth_token field in the opening frame over WebSocket. See
Authentication.
Correlation. You generate a transaction_id, which must be a valid UUID,
on every transcription request. Responses carry a call_id identifying the
transcription itself. Log both.
Audio. Transcription takes a file upload or raw PCM frames, and models are
trained at 8 kHz, the rate telephony delivers. Synthesis returns raw audio with
no container, in the encoding you name in output_format.
Errors. Failures come back with a meaningful HTTP status. On the
non-streaming endpoint the JSON body carries status: "error" along with
error and message. Full list in
Errors and debugging.
Versioning. Paths are unversioned. There is no Accept-Version header and
no /v1 prefix.
Reading this reference
Each endpoint page follows the same structure: signature, authentication, parameters, an example request in several languages, the response with every field explained, and the errors specific to that endpoint.
If you are making a first call, start with Quickstart instead. You do not need to read a full endpoint page to get a result.