Developers
Voxvencer API
Call our in-house language, speech-to-text and text-to-speech models from your own code with one API key.
Call our in-house language, speech-to-text and text-to-speech models from your own code. Every request is authenticated with your API key and counts toward your plan. Trial accounts share the same limits as the dashboard.
Authentication
Create a key in your dashboard, then send it on every request:
Authorization: Bearer vox_your_key
Keys are shown once. If you lose one, create a new key in the dashboard; the old key stops working immediately.
Language model
POST /api/llm.php with a JSON body. Send a single prompt, or a messages array for multi-turn chat. Roles are system, user and assistant.
curl https://voxvencer.com/api/llm.php \ -H "Authorization: Bearer vox_your_key" \ -H "Content-Type: application/json" \ -d '{"messages": [ {"role": "system", "content": "You are a receptionist for a dental clinic."}, {"role": "user", "content": "Can I book a cleaning on Friday?"} ]}'
{ "reply": "Of course! We have openings at 9:00 AM and 3:30 PM on Friday…", "remaining": 29 }
Speech to text
POST /api/stt.php as multipart/form-data with the recording in an audio field. Accepts wav, mp3, m4a, ogg and webm.
curl https://voxvencer.com/api/stt.php \ -H "Authorization: Bearer vox_your_key" \ -F "audio=@call.mp3"
{ "text": "Hi, I'm calling about my order from last week…", "remaining": 9 }
Text to speech
POST /api/tts.php with a JSON body containing text and an optional voice. The response is the audio file itself; the remaining trial count is in the X-Trial-Remaining header.
curl https://voxvencer.com/api/tts.php \ -H "Authorization: Bearer vox_your_key" \ -H "Content-Type: application/json" \ -d '{"text": "Thanks for calling. How can I help you today?"}' \ --output greeting.mp3
Trial limits
| Model | Requests | Size limit |
|---|---|---|
| Language model | 30 | 4,000 characters in, about 400 tokens out |
| Speech to text | 10 | 5 MB per file |
| Text to speech | 10 | 400 characters per request |
The trial lasts 3 days. Failed requests are not counted. For production volumes, contact sales.
Errors
Errors return JSON like {"error": "…"} with a message you can show to users.
| Status | Meaning |
|---|---|
| 400 | The request is missing a field or has an invalid value. |
| 401 | The API key is missing or invalid. |
| 402 | The trial has ended or this model's trial requests are used up. |
| 413 / 415 | The audio file is too large or isn't audio. |
| 502 / 503 | The model is temporarily unavailable. The request was not counted; retry shortly. |