At a glance
| Base URL | https://api.vocallab.ai/api/v1 |
|---|---|
| Auth | Authorization: Bearer vl_live_… (create a key on the API keys page) |
| Plans with API access | All of them, Free included (60 free points to start); AppSumo lifetime licences from Tier 3 |
| Price | 1 point per 15 characters; 1 point ≈ 1 second of audio; about $0.12 per minute |
| Languages | 200+ (v-studio, v-flash) |
| Voices | 260+ ready-made, plus your clones and designed voices |
| Output | MP3 on every plan; WAV, OGG Opus and FLAC on Pro and Max. SRT captions by phrase or by word |
| Limits | 2,000 characters per request; 60 requests/min per key (120 on Max) |
| MCP server | https://mcp.vocallab.ai/mcp (setup) |
Quick start
- Sign up free and create an API key on the API keys page. No card needed.
- Pick a voice:
GET /voicesreturns the catalog and your own clones, each with anid. - Send the text to
POST /tts.
curl -X POST https://api.vocallab.ai/api/v1/tts \
-H "Authorization: Bearer vl_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"text": "Hello from VocalLab.",
"voice": "VOICE_ID_FROM_GET_VOICES",
"model": "v-studio",
"format": "MP3"
}'The response carries the audio inline as audio_base64, plus a stream_url you can play straight away and a captions_url for SRT subtitles:
{
"id": "6720c1…",
"status": "pending",
"audio_base64": "SUQzBAAAAA…",
"audio_url": null,
"stream_url": "https://api.vocallab.ai/api/v1/tts/6720c1…/audio",
"captions_url": "https://api.vocallab.ai/api/v1/tts/6720c1…/captions",
"format": "MP3",
"model": "v-studio",
"points_used": 2
}Endpoints
| Method and path | What it does |
|---|---|
POST /tts | Text to speech. Body: text, voice, optional model, format, speed, delivery_mode (v-studio), enhance_generation, captions ("phrase" or "word"). |
GET /tts/:id | Status and download links for a generation. |
GET /tts/:id/audio | The audio bytes, with Range support for seeking. |
GET /tts/:id/captions | SRT captions for the clip. |
DELETE /tts/:id | Delete a generation and its audio file. |
GET /voices | Voices you can use: the public catalog and your own. |
GET /voices/languages | Languages and sample rules for cloning. |
POST /voices/clones | Clone a voice from a 15–30 second sample (30 seconds recommended). |
POST /voices/designs/previews, POST /voices/designs | Design a voice from a text description, then save the preview you like. |
GET /models | The speech models and their capabilities. |
GET /ping, GET /me | Check the key and read your points balance. |
Models
| Model | Languages | Points | Notes |
|---|---|---|---|
v-studio | 200+ | 1× | The flagship. Follows expression directions such as [whispering]; delivery_mode STABLE, BALANCED or CREATIVE. |
v-flash | 200+ | 0.75× | About 5× faster than v-studio, without steering. |
v-pro | Major languages | 1× | The API default, so existing integrations keep their sound. |
v-lite | Major languages | 0.5× | Fastest and cheapest. |
Errors
Errors come back as { "error": { "code": "…", "message": "…" } }. The common ones: 401 missing_api_key, 403 not_entitled (the key belongs to an account that can't use the API), 402 (not enough points), 413 text_too_long, 404 voice_not_found and 429 rate_limited.