New: AI video tools. Cut, clip, caption and dub your videos. See all video tools →
Video renders

Render a Studio shot

POST
/v1/video-renders

Renders one Studio video shot. Upload every picture and sound the input names with POST /v1/uploads first, and map each name to its file_id in files. Returns a job whose result is a VideoRenderResult. The files are kept for 24 hours.

Authorization

bearer
headerAuthorizationBearer <API key>

An API key from Settings, starting vcp_live_.

Header Parameters

Idempotency-Key?string

Optional. 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.

Lengthlength <= 255

Request Body

application/json
  1. body
input*

A Studio video_render input. Every file it names must appear in files.

files*

Maps each file name the input uses to a file_id from POST /v1/uploads.

consent*boolean

Must be true. Confirms you have the right to use every face in the pictures.

Response Body

Accepted. Returns the job.

application/json
  1. response
id*string

Job id.

type*JobType
Value in"speech""voice_design""voice_clone""voice_change""transcription""dub""avatar_video""cut""lipsync""video_render"
status*JobStatus
Value in"queued""running""succeeded""failed""cancelled"
progress*|

From 0 to 1 while an avatar video renders, a dub or lip sync runs or a video is cut, otherwise null.

Range0 <= value <= 1
result*||||||||

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, lip syncs give LipsyncResult, cuts give CutResult and video renders give VideoRenderResult, 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.

Range0 <= value
resource_id*|

The voice id for voice clones, the project id for dubs, lip syncs and cuts, and the video id for avatar videos.

created_at*string

When the job was created.

Formatdate-time
finished_at*|

When the job finished, or null while it runs.

Formatdate-time
Example Request
curl -X POST 'https://api.vcp.name/v1/video-renders' \  -H 'Content-Type: application/json' \  -d '{  "input": {    "model_id": "ltx-2.5",    "seconds": 4  },  "files": {},  "consent": true}'
Example Response
{  "id": "04bd0571-e2c8-4d5b-a3cc-e56f85773abf",  "type": "video_render",  "status": "queued",  "progress": null,  "result": null,  "error": null,  "tokens_charged": null,  "resource_id": null,  "created_at": "2026-10-30T00:10:42Z",  "finished_at": null}