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.
Authorization
bearerAuth An API key created under Settings > API & Webhooks. Keys start with sf_live_.
In: header
Path Parameters
Header Parameters
Unique key per action (a UUID works well). Reusing it replays the first response instead of running the action again, so a retry after a timeout can never generate, render, publish or charge twice.
length <= 255Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Per-run job flags. They live on the job, never on the brief. A faceless video builds its scenes from its captions, so creating one turns transcribe and addBRolls on unless you set them to false. A faceless video with no captions and transcribe off fails with warning-invalid-input, and one that ends with no scenes fails with no-scenes: neither renders blank.
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/videos/string/process" \ -H "Content-Type: application/json" \ -d '{ "transcribe": true, "addBRolls": true, "render": false }'{ "data": { "id": "string", "title": "string", "type": "faceless", "subType": "string", "isAutomation": true, "parentVideoId": "string", "isClip": true, "brief": { "prompt": "string", "text": "string", "scriptPrompt": "string", "description": "string", "descriptionPrompt": "string", "inputMode": "auto", "videoDuration": "subminute", "language": "string", "aspectRatio": "9:16", "imageStyle": "auto", "styleAuto": true, "connectedBRolls": true, "animateBRolls": true, "animationQuality": "normal", "bRollPace": "fast", "backgroundMusic": true, "bRollTransitions": true, "customStyleText": "string", "voiceId": "string", "voiceProvider": "openai", "showSubtitles": true, "presentationTone": null, "presentationAssets": [], "presenter": { "imageUrl": "http://example.com", "avatarId": "string", "name": "string", "placement": "first", "occurrences": 1 }, "targetDuration": 0, "characterImageUrl": "http://example.com", "characterDescription": "string" }, "mood": "energetic", "presentationMood": null, "durationSeconds": 0, "media": { "sourceUrl": "http://example.com", "audioUrl": "http://example.com", "captionsUrl": "http://example.com", "thumbnailUrl": "http://example.com", "renderUrl": "http://example.com", "bytes": 0 }, "process": { "status": "QUEUED", "progress": 0, "statusText": "string", "queuedAt": "2019-08-24T14:15:22Z", "startedAt": "2019-08-24T14:15:22Z", "error": { "code": "string", "message": "string", "blocked": true, "action": "upgrade", "reference": "string", "retryAt": "2019-08-24T14:15:22Z", "platform": "string" } }, "render": { "status": "QUEUED", "progress": 0, "queuedAt": "2019-08-24T14:15:22Z", "startedAt": "2019-08-24T14:15:22Z", "error": { "code": "string", "message": "string", "blocked": true, "action": "upgrade", "reference": "string", "retryAt": "2019-08-24T14:15:22Z", "platform": "string" } }, "publish": { "status": "SCHEDULED", "scheduledAt": "2019-08-24T14:15:22Z", "startedAt": "2019-08-24T14:15:22Z", "publishedAt": "2019-08-24T14:15:22Z", "failedAt": "2019-08-24T14:15:22Z", "platforms": [ "string" ], "missingPlatforms": [ "string" ], "unhealthyPlatforms": [ "string" ], "caption": "string", "error": { "code": "string", "message": "string", "blocked": true, "action": "upgrade", "reference": "string", "retryAt": "2019-08-24T14:15:22Z", "platform": "string" }, "stats": { "checkedAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z", "available": true, "totals": { "views": 0, "likes": 0, "comments": 0, "shares": 0 }, "platforms": [ { "views": 0, "likes": 0, "comments": 0, "shares": 0, "platform": "string", "status": "published", "url": "string", "error": "string" } ] } }, "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z", "config": { "captionsFontFamily": "string", "captionsFontWeight": "string", "captionsAnimation": "fadeInSlideUp", "captionsWordEffects": "", "captionsTextTransform": "none", "layoutMode": "wrap", "captionsPrimaryColor": "string", "captionsSecondaryColor": "string", "captionsAccentColor": "string", "captionsStrokeColor": "string", "captionsSecondaryStrokeColor": "string", "captionsAccentStrokeColor": "string", "captionsShadowColor": "string", "captionsFirstWordColor": "string", "captionsHighlightBackground": "string", "captionsFontSize": 20, "captionsVerticalPosition": 0, "captionsTextStroke": 0, "captionsActiveWordStroke": 0, "captionsLetterSpacing": -5 }, "captions": [ { "id": "string", "startMs": 0, "endMs": 0, "text": "string", "punctuated_word": "string", "confidence": 0 } ], "captionsPages": [ { "id": "string", "startMs": 0, "endMs": 0, "hidden": true, "emoji": {}, "audioEffect": {} } ], "bRolls": [ { "id": "string", "startMs": 0, "endMs": 0, "text": "string", "prompt": "string", "keywords": "string", "mediaType": "ai_image", "url": "http://example.com", "type": "string", "qualityUrls": {}, "posterUrl": "http://example.com", "sourceWidth": 0, "sourceHeight": 0, "stockQuery": "string", "credit": { "source": "string", "author": "string", "license": "string", "url": "http://example.com" }, "animation": "string", "transition": "string", "layout": "string", "scale": 0, "hidden": true, "audioEffect": {}, "presenter": { "imageUrl": "http://example.com", "avatarId": "string", "name": "string", "bytes": 0, "generatedAt": "2019-08-24T14:15:22Z" } } ], "presentationScenes": [], "scenes": [ { "imagePrompt": "string", "animationPrompt": "string", "narration": "string", "voiceDescription": "string", "duration": 3, "id": "string", "status": "string", "imageUrl": "http://example.com", "videoUrl": "http://example.com" } ] }}Render status GET
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.
Queue a render POST
Queues the render that turns the generated assets into an mp4. Asynchronous: it returns with `render.status: QUEUED` and clears any previous `renderUrl`. Rendering charges credits proportionally to the video's duration and counts against the monthly render limit, so it can be refused with `warning-no-credits`, `warning-plan-renders` or `warning-plan-render-time`.