Design a voice
Designs a voice from a description and speaks a sample. Returns a job whose result is an AudioResult. Save the voice with POST /v1/voices/design/{id}/save within 24 hours.
bearerAuthorizationBearer <API key>An API key from Settings, starting vcp_live_.
Idempotency-Key?stringOptional. Up to 255 characters, scoped to your account and kept for 90 days. Sending the same key with the same body again returns the original job. The same key with a different body is rejected with 409.
length <= 255application/json- body
description*stringWhat the voice sounds like.
1 <= lengthtext?stringWhat the sample says.
model?stringA model id from GET /v1/models.
language?stringA language from the model, such as English.
Accepted. Returns the job.
application/json- response
id*stringJob id.
type*JobType"speech""voice_design""voice_clone""voice_change""transcription""dub""avatar_video""cut"status*JobStatus"queued""running""succeeded""failed""cancelled"progress*|From 0 to 1 while an avatar video renders, a dub runs or a video is cut, otherwise null.
0 <= value <= 1result*||||||The result of a succeeded job, or null. Speech, voice designs and the voice changer give AudioResult, kept for 24 hours after the job finishes, then this is null. Transcriptions give TranscriptionResult. Voice clones give VoiceCloneResult. Avatar videos give AvatarVideoResult, dubs give DubResult and cuts give CutResult, all kept for 24 hours after the job was created.
error*|Why the job failed, or null.
tokens_charged*|Tokens billed, or null until billing has run.
0 <= valueresource_id*|The voice id for voice clones, the project id for dubs and cuts, and the video id for avatar videos.
created_at*stringWhen the job was created.
date-timefinished_at*|When the job finished, or null while it runs.
date-timecurl -X POST 'https://api.vcp.name/v1/voices/design' \ -H 'Content-Type: application/json' \ -d '{ "description": "A calm, low narrator voice.", "text": "Welcome back to the show."}'{ "id": "04bd0571-e2c8-4d5b-a3cc-e56f85773abf", "type": "voice_design", "status": "queued", "progress": null, "result": null, "error": null, "tokens_charged": null, "resource_id": null, "created_at": "2026-10-30T00:10:42Z", "finished_at": null}