Updates any of schedule, profileId, platforms, autoRefill and
status. Provide at least one.
schedule carries the whole timing block. A daily frequency
(daily, twice-daily, thrice-daily) needs exactly as many entries
in times as it has slots; a weekly frequency (weekly,
twice-weekly, thrice-weekly) needs the same count of day and time
pairs in schedule. Setting one clears the other.
Activating (status: active) is refused while anything is still
missing, with warning-publish-not-configured naming the blockers.
Authorization
bearerAuth An API key created under Settings > API & Webhooks. Keys start with sf_live_.
In: header
Path Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
The automation settings to change. Provide at least one.
Response Body
application/json
application/json
application/json
application/json
curl -X PATCH "https://example.com/automations/string" \ -H "Content-Type: application/json" \ -d '{ "schedule": { "frequency": "twice-daily", "timezone": "Europe/Paris", "times": [ { "time": "09:30", "mode": "fixed" }, { "time": "18:00", "mode": "random" } ] }, "profileId": "pR4kM8xT2vQ6nL9wz", "platforms": [ "tiktok", "youtube" ], "autoRefill": true, "status": "active" }'{ "data": { "id": "aQ8vN2mK5tR9wL3xc", "title": "One productivity tip for founders", "status": "active", "statusUpdatedAt": "2026-08-06T10:14:52.000Z", "schedule": { "frequency": "twice-daily", "timezone": "Europe/Paris", "times": [ { "time": "09:30", "mode": "fixed" }, { "time": "18:00", "mode": "random" } ], "days": [] }, "publishing": { "profileId": "pR4kM8xT2vQ6nL9wz", "platforms": [ "tiktok", "youtube" ] }, "autoRefill": true, "lastRunAt": null, "stopped": null, "health": { "ready": true, "blockers": [], "nextScheduledAt": "2026-08-06T18:00:00.000Z" }, "createdAt": "2026-08-06T10:02:11.000Z", "updatedAt": "2026-08-06T10:14:52.000Z" }}Promote a video to a blueprint POST
Turns an already generated video into an automation blueprint (`enabled: true`), or turns it back into a plain video (`enabled: false`). Demoting pauses the automation first, which unschedules the clips it had already armed. Promoting requires a video whose generation finished (`warning-source-not-ready` otherwise) and room under the plan's automation limit (`warning-plan-automations`). A clip cannot be promoted: promote the video it was made from. The response is always the automation shape, so `source.isAutomation` states the outcome either way.
Add one scene POST
Inserts an empty scene after `afterSceneId`, or appends it when no id is given. The new scene inherits the preceding scene's `voiceDescription` so one character stays consistent, and defaults to a 6 second slot with empty prompts. Free: nothing is generated until you fill it in and regenerate its image. Adding a scene invalidates the stitched render, so `renderUrl` is cleared. A video holds at most 50 scenes.