Durable multi-step creative jobs with an explicit steps[] dependency graph.
Use this when your application has already decided what to do — storyboards, image→video,
batch generation. The API executes, persists state, streams SSE events, and supports
cancel, resume, and reseed. (User-facing surfaces call these "cloud workflows".)
POST/v1/creative-agent/workflowsAuth required
Start a durable creative workflow. Provide an inline input.steps plan or invoke a saved template by workflow_id + inputs. The two are mutually exclusive.
Inline workflow plan. Allowed fields: title, steps. Required when workflow_id is absent.
input.title
string
body
Optional human-readable title for the run.
input.steps*
array
body
Array of step inputs. Each step: id, toolName, arguments, and an optional dependsOn array linking it to upstream artifacts.
workflow_id
string
body
Optional saved-template ID. Compiled server-side into a fresh steps[] before execution.
inputs
object
body
Object of typed input values when invoking a template. Keys match WorkflowTemplate.inputs[].name.
token_type
string
body
spark, sogni, or auto.
app_source
string
body
Optional caller label.
max_estimated_capacity_units
number
body
Hard ceiling on estimated capacity units. Over-budget submissions are rejected before persistence.
confirm_cost
boolean
body
Cost-confirmation gate. Submit with false to request an estimate — the API rejects with 400 and a structured estimatedCapacity body so you can show the user the cost. Resubmit with true to proceed.
media_references
array
body
Optional request media references available to $input_media bindings and negative media indices.
Approve or reject the cost preview for a workflow paused with cost_approval_required (e.g. a template run, which authorizes cost on start). resume does not release a cost-approval pause — use this endpoint. Rate-limited to 30/minute per wallet.
Required for decision: "confirm". Echo the persisted preview — { totalEstimatedCapacityUnits, tokenType, validityUntil }; a stale or mismatched value returns 409 (a missing or malformed object returns 400).
Idempotency-Key
string
header
Optional. X-Idempotency-Key also accepted; a replay returns the prior result.