Render video
Videos created without render finish as editable projects. This endpoint exports one to mp4 later, with the same format and frame rate choices as the Download popup in the editor.
/v1/videos/:id/renderRender a video
idrequiredformatstandardframeRate30webhookUrlcurl -X POST "https://api.vsub.io/v1/videos/9f0c1d5e-3a1b-4c2f-9d7e-8b1a2c3d4e5f/render" \
-H "Authorization: Bearer vp_a1b2c3d4e5f60718293a4b5c6d7e8f90a1b2c3d4e5f60718293a4b5c6d7e8f90" \
-H "Content-Type: application/json" \
-d '{
"format": "standard",
"frameRate": 30
}'{
"id": "9f0c1d5e-3a1b-4c2f-9d7e-8b1a2c3d4e5f",
"status": "rendering",
"step": "completed",
"render": true,
"createdAt": "2026-08-05T09:20:11.000Z",
"editorUrl": "https://vsub.io/workspace/editor/9f0c1d5e-3a1b-4c2f-9d7e-8b1a2c3d4e5f"
}Poll Video status for the videoUrl, or let your webhook tell you. A video created with a webhookUrl is notified again when the render finishes, even if it was already notified when generation completed. Passing webhookUrl here gives a video created without one a callback, and replaces the stored url for later renders.
When you can render
Only a video that finished generating can be rendered. Calling this while the video is still processing or already rendering returns 400, so wait for a terminal status first. Rendering an already rendered video is allowed and replaces the mp4 with a new one, which is how you switch a finished video to 60fps or to green screen.
