Errors return a JSON object with a stableDocumentation Index
Fetch the complete documentation index at: https://docs.voiceos.com/llms.txt
Use this file to discover all available pages before exploring further.
code and a human-readable message.
Error codes
| HTTP status | Code | Cause | Fix |
|---|---|---|---|
400 | invalid_request | Invalid messages, languages, or dictionary. | Check JSON encoding and field types. |
400 | missing_file | No file part in the multipart request. | Include file=@audio.mp3. |
400 | too_many_files | More than one file part was uploaded. | Send one audio file per request. |
400 | unsupported_audio_type | File extension or MIME type is unsupported. | Use wav, webm, mp3, m4a, or ogg. |
400 | unsupported_response_format | Response format is not json. | Set response_format=json or omit it. |
415 | unsupported_media_type | Request is not multipart/form-data. | Use multipart form upload. |
502 | transcription_failed | ASR or LLM provider failed. | Retry or inspect provider logs. |
Debugging checklist
- Confirm the API is reachable at
https://beta.api.voiceos.com. - Confirm the request is
multipart/form-data. - If sending
messages, confirm it is a JSON string (not a nested form object). - Confirm
languagesis"auto", one code, or a JSON array. - Confirm audio file type is supported.
- Inspect
textin successful responses and compare against the spoken input.

