Skip to content
Get your keyGet a key

Reference · Audio

POST/voiceovers

Read a script, or a dialogue between voices

Read words aloud: one voice reading a script (text), or a dialogue — several voices, one line each, in order (lines) — as the Voice page makes them. Priced by the characters read. Voices come from GET /api/v1/voices, models and formats from GET /api/v1/models (studio "voice"). The take comes back at once: a link (good for about 7 days) and its id, which can be the voice of a talking avatar or a story.

Key needs
create · Make things and spend credits
Answers
What it made, at once
Request
curl -X POST https://vessero.com/api/v1/voiceovers \
  -H "Authorization: Bearer $VESSERO_API_KEY" \
  -H "Idempotency-Key: 47f8f6f5-ea00-4fb1-925f-76aac956a0ec" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "Fresh linen, made to last.",
    "voiceId": "hpp4J3VqNfWAUOO0d1Us",
    "confirmCredits": 1
  }'
Response200 OK
{
  "status": "done",
  "take": {
    "id": "b1c2d3e4-f5a6-4b7c-8d9e-0f1a2b3c4d5e",
    "url": "https://vessero.com/f/Vt7Kq2Lm9Pa4Rx1N",
    "durationSec": 2.4,
    "voiceId": "hpp4J3VqNfWAUOO0d1Us",
    "voiceName": "Bella"
  },
  "credits": 1
}
POST/voiceovers/quoteFree

The same body without confirmCredits. It answers the price and your balance, and runs nothing.

Header

  • Idempotency-KeystringYour id for this request: 8–64 letters, digits, - or _. A repeat within 10 minutes gets the first answer back and never runs twice. Use the same one for the quote and the run.
  • Preferstringwait=N (up to 60): hold the answer up to N seconds while the job is made, within 80 seconds for the whole call.

Body

  • textstringOne voice reading this script, e.g. "Meet the shirt that keeps you cool all summer." Up to the model’s maxCharacters (10,000 at most). Give text or lines, not both.
  • voiceIdstringFor text: a voice id from GET /api/v1/voices. Default: the Voice page’s own voice.
  • linesobject[] · up to 100A dialogue, read as one take: up to 100 lines and 10 voices, 10,000 characters in all. Give text or lines, not both.
    • voiceIdstringrequiredThe voice reading this line, from GET /api/v1/voices.
    • textstringrequiredWhat it says.
  • modelIdstringA voice model id from GET /api/v1/models (studio "voice"). Default: the recommended one.
  • stabilitynumber0–1: lower is more expressive, higher more even.
  • similarityBoostnumber0–1: how closely it keeps to the voice.
  • stylenumberOne voice only, 0–1: how much of the voice’s own style is exaggerated.
  • useSpeakerBoostbooleanOne voice only: lift the likeness to the voice.
  • outputFormatstringA format id from GET /api/v1/models (studio "voice"), e.g. "mp3_44100_128".
  • languageCodestringThe language it is read in, e.g. "en", where the model reads it. Default: worked out from the words.
  • confirmCreditsintegerrequiredThe price you agree to, in credits: the credits its quote gave. It runs at that price, or at a lower one when that figure was quoted for this Idempotency-Key; above the price now, nothing runs (409 price_changed). Left out, nothing runs and the error carries the quote.
  • webhookUrlstring · httpsAn https address to POST the job to once it is done or has failed, signed (see Webhooks).

Answers

  • 200madeMade: the take, its link (good for about 7 days) and its id.
  • 400confirm_credits_requiredA run that spends needs confirmCredits: the quote is in details.
  • 402insufficient_creditsThe account has too few credits for this.
  • 409price_changedThe price is above the confirmCredits sent: nothing ran; the new quote is in details.
  • 422content_refusedThe content check refused it.
  • 429daily_cap_reachedThe key’s daily credit cap would be passed: see Retry-After.
Next in AudioPOST/voiceovers/quote