Automations
POST
/automations

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
AuthorizationBearer <token>

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"  }}