Riferimento API
URL di base https://api.vocallab.ai. Ogni richiesta richiede Authorization: Bearer vl_live_... (vedi Chiavi API).
GET /api/v1/ping
Test di connessione + autenticazione. Restituisce il saldo dei tuoi punti.
{ "ok": true, "points": 12345, "unit": "points (1 pt ≈ 1 second of audio)" }
GET /api/v1/voices
Le voci che puoi usare — il catalogo pubblico più le tue voci clonate e progettate. Usa un id restituito come voice per la generazione. Le voci del catalogo accettano anche il loro slug.
{ "voices": [
{ "id": "Ashley", "slug": "warm-natural-female-explainer-voice-for-youtube-podcasts",
"name": "Warm Natural Female Explainer Voice for YouTube & Podcasts",
"type": "preset", "languages": ["en"], "category": "Narration" },
{ "id": "default-abc123__my-voice", "name": "My Narrator", "type": "clone", "languages": ["en"] }
] }
GET /api/v1/models
I modelli vocali selezionabili. Passa una key come model in POST /api/v1/tts (predefinito v-pro). Le chiavi API possono usare tutti e tre. Vedi Modelli vocali per le differenze.
{ "default": "v-pro", "models": [
{ "key": "v-studio", "label": "VocalLab Studio", "steerable": true, "costMultiplier": 1 },
{ "key": "v-pro", "label": "VocalLab Pro", "steerable": false, "costMultiplier": 1 },
{ "key": "v-lite", "label": "VocalLab Lite", "steerable": false, "costMultiplier": 0.5 }
] }
POST /api/v1/tts
Genera audio vocale.
| Campo | Obbligatorio | Note |
|---|---|---|
text | sì | Fino a 2.000 caratteri. Ogni chiamata viene sintetizzata come una singola richiesta — per testi più lunghi, suddividi il testo in più chiamate |
voice | sì | Un id di voce da /api/v1/voices |
model | no | v-studio (il più recente, orientabile, oltre 200 lingue), v-pro (predefinito — massima fedeltà, 15 lingue) o v-lite (veloce, ½ punti). Vedi GET /api/v1/models |
speed | no | Numero 0.5–1.5 (passo 0.05). Predefinito: valore della voce |
temperature | no | Numero 0.7–1.5 (passo 0.05). Più alto = più espressivo e variabile. Predefinito: valore della voce |
format | no | Uno tra MP3 (predefinito), WAV, FLAC, OGG_OPUS, LINEAR16, PCM, ALAW, MULAW |
bit_rate | no | Intero 32000–320000. Solo MP3 e OGG_OPUS; ignorato per altri formati |
sample_rate | no | Uno tra 8000, 16000, 22050, 24000, 32000, 44100, 48000 (Hz) |
curl -X POST https://api.vocallab.ai/api/v1/tts \
-H "Authorization: Bearer vl_live_..." \
-H "Content-Type: application/json" \
-d '{"text":"Hello from VocalLab","voice":"Ashley"}'
Restituisce l'audio inline (base64) più un id. L'URL ospitato compare una volta completato il caricamento — interrogalo con GET /api/v1/tts/:id.
{ "id": "...", "status": "pending", "audio_base64": "data:audio/mp3;base64,...",
"audio_url": null, "format": "MP3", "model": "v-pro", "points_used": 12 }
Modello e costo.
v-liteviene fatturato a metà dei punti div-pro/v-studio(points = ⌈ caratteri ÷ 30 ⌉invece di÷ 15).v-studioè l'unico modello che segue le istruzioni di espressione/orientamento — vedi Modelli vocali e Orientamento vocale.
Pause
Inserisci un silenzio di durata esatta con un tag <break /> auto-chiudente direttamente in text:
{ "text": "Fammi pensare <break time=\"1.5s\" /> Sì, ci ho pensato.", "voice": "Ashley" }
- Secondi o millisecondi —
1.5s=1500ms. - Fino a 20 tag break per richiesta, in tutte le lingue supportate.
- I tag break contano nel limite di 2.000 caratteri e vengono rimossi da sottotitoli/SRT.
GET /api/v1/tts/:id
Stato della generazione e URL dell'audio ospitato una volta pronto.
{ "id": "...", "status": "ready", "audio_url": "https://...", "format": "MP3" }
GET /api/v1/me
Il saldo dei tuoi punti e il tuo piano.
Errori
| Stato | Significato |
|---|---|
401 | Chiave API mancante o non valida |
402 | Punti insufficienti |
403 | Il piano non include l'accesso all'API (richiede Pro o superiore) |
413 | Testo troppo lungo |
429 | Limite di frequenza raggiunto (60 / minuto per chiave) |
Gli errori hanno la forma { "error": { "code": "...", "message": "..." } }.


