The render job and the collapsed lifecycle status, without the rest of the video. This is the cheap endpoint to poll while a render runs.
Authorization
bearerAuth An API key created under Settings > API & Webhooks. Keys start with sf_live_.
In: header
Path Parameters
Response Body
application/json
application/json
application/json
curl -X GET "https://example.com/videos/string/render"{ "data": { "videoId": "7bQxL2mF9dR4tK1sv", "status": "rendering", "render": { "status": "STARTED", "progress": 62, "queuedAt": "2026-08-06T09:18:02.000Z", "startedAt": "2026-08-06T09:18:05.000Z", "error": null }, "renderUrl": null }}Get a download URL GET
A URL for the finished mp4 that is known to resolve. This is not a plain read: an AI video is stitched from its per-scene clips on demand, and a stored URL that no longer resolves is rebuilt rather than handed back dead, so the call can take a few seconds. A video with no render yet is refused with `warning-source-not-ready`.
Queue the generation pipeline POST
Requeues generation for an existing video: script, voiceover, transcript and visuals. Asynchronous, and it charges credits and counts against the monthly generation limit exactly like creation does. The body carries the per-run job flags only. Omitted flags keep whatever the video already has. A video whose generation is already `QUEUED` or `STARTED` is refused with `warning-already-processing`.