Skip to main content

Voices

GET /v1/voices

Every voice you can pass as voiceId to Generate Voiceover.

Your workspace's own cloned voices come first, marked custom: true, followed by the stock library. Only clones that finished training are listed - one still processing can't speak yet.

Example

curl https://api.vidocu.ai/v1/voices \
-H "Authorization: Bearer vdo_live_your_key_here"

Response 200 OK

{
"voices": [
{ "voiceId": "aX2n...", "name": "Dana (cloned)", "custom": true },
{
"voiceId": "21m00Tcm4TlvDq8ikWAM",
"name": "Rachel",
"description": "Calm and articulate",
"accent": "american",
"gender": "female",
"age": "young",
"useCase": "narration",
"previewUrl": "https://storage.googleapis.com/...",
"custom": false
}
],
"total": 42,
"customCount": 1
}

Response fields

FieldTypeDescription
voices[].voiceIdstringPass this as voiceId
voices[].namestringDisplay name
voices[].custombooleantrue for voices cloned by your workspace
voices[].previewUrlstringShort audio sample, stock voices only
customCountnumberHow many of the results are your own clones
info

Cloning a voice is done in the Vidocu app - it requires recorded consent to the voice provider's terms, which isn't something an API call can capture. Once a clone is ready it appears here and works like any other voice.

Delete a cloned voice

DELETE /v1/voices/:id

curl -X DELETE https://api.vidocu.ai/v1/voices/aX2n... \
-H "Authorization: Bearer vdo_live_your_key_here"

Only voices your workspace cloned can be deleted - the stock library is shared. The clone is removed at the voice provider as well, so this can't be undone.

Requires the voices:write scope.

Errors

StatusCodeCause
401authentication_errorInvalid or missing API key
403insufficient_scopeToken lacks voices:read (or voices:write to delete)
404not_foundNo such cloned voice in this workspace