Creates an automation blueprint from a brief, exactly like
POST /videos but flagged as a blueprint, and queues its first
generation. The brief may be sent flat or nested under brief, and
must carry at least a prompt or a text script.
The new blueprint has no schedule and no destination yet, so its
health.blockers lists what is still missing. Set them with
PATCH /automations/{id} before activating.
Authorization
bearerAuth An API key created under Settings > API & Webhooks. Keys start with sf_live_.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
The brief a video or an automation blueprint is created from. Send the
fields flat, or nested under brief (the nested form wins, so a
serialized video can be posted straight back). Unknown keys are
ignored; a known key with a malformed value is a 400.
Response Body
application/json
application/json
application/json
curl -X POST "https://example.com/automations" \ -H "Content-Type: application/json" \ -d '{ "prompt": "One productivity tip for founders, different angle each time", "type": "faceless", "videoDuration": "short", "aspectRatio": "9:16", "voiceId": "Enceladus", "voiceProvider": "gemini" }'{ "data": { "id": "aQ8vN2mK5tR9wL3xc", "title": "One productivity tip for founders", "status": "paused", "statusUpdatedAt": null, "schedule": { "frequency": null, "timezone": "UTC", "times": [], "days": [] }, "publishing": { "profileId": null, "platforms": [] }, "autoRefill": false, "lastRunAt": null, "stopped": null, "health": { "ready": false, "blockers": [ { "id": "no-schedule", "label": "Set a publishing schedule" }, { "id": "no-profile", "label": "Choose where to publish" }, { "id": "no-platforms", "label": "Select at least one platform" } ], "nextScheduledAt": null }, "createdAt": "2026-08-06T10:02:11.000Z", "updatedAt": "2026-08-06T10:02:11.000Z" }}