Your account must be approved and your API key must be active before you can call this endpoint. See Authentication for key setup and capability details.
Endpoint
Authentication
Requires a key with capabilityworkflow:run (any of your workflows) OR workflow:<slug>:run (the specific slug only — useful for least-privilege CI keys). Pass your API key in the x-api-key header.
Rate limits
Limits depend on your tier (independent of capabilities):
Every successful response includes rate limit headers so you can pace requests without guessing:
On a
429 response, an additional Retry-After header tells you how many seconds to wait before retrying.
Path parameters
string
required
The workflow’s URL slug — the identifier that appears in the editor URL when you open the workflow (for example,
my-thumbnail-pipeline). Slugs are lowercase letters, digits, and hyphens. A workflow’s slug never changes after it is created.Request body
object
required
Key/value pairs matching the workflow’s Request Input fields. The accepted keys and value types depend on how the workflow author configured the Request Input node. Use
GET /api/workflows/:slug/schema to discover the exact field names and types before scripting calls.Response (sync — 200)
A200 response means the workflow ran to completion and all output nodes produced results.
boolean
Always
true on a 200 response.object
The workflow’s output. The exact shape depends on the Response Output node type configured in the workflow. Common shapes include:
number
Credits consumed by this run. The amount reflects your tier’s pricing and any markup applied. A value of
0 means the run consumed a trial grant rather than deducting from your credit balance.number
Total execution time in milliseconds, measured from the moment the server received the request to the moment all nodes completed.
Async opt-in (?async=true)
For long-running pipelines you can append ?async=true to submit the workflow without blocking. The response returns in under 500ms with an executionId; poll GET /api/executions/:id or receive a webhook callback when the run completes.
400 ASYNC_NOT_SUPPORTED. See Async executions for the full lifecycle.