Runs API
Trigger manual workflow runs and inspect execution history.
List runs
GET /v1/workflows/{workflow_id}/runs
Returns the run history for a workflow, most recent first.
Query parameters
| Parameter | Type | Description |
|---|---|---|
status | string | Filter: running, succeeded, failed |
limit | integer | Max results (default: 20, max: 100) |
cursor | string | Pagination cursor |
Example response
{
"data": [
{
"id": "run_def456",
"workflow_id": "wf_abc123",
"status": "succeeded",
"started_at": "2026-04-29T09:00:00Z",
"finished_at": "2026-04-29T09:00:03Z",
"duration_ms": 3120
}
],
"next_cursor": null
}
Get a run
GET /v1/runs/{id}
Returns the full run including step-level execution logs.
Example response
{
"id": "run_def456",
"status": "succeeded",
"steps": [
{
"step_id": "step_1",
"name": "Post to Slack",
"status": "succeeded",
"started_at": "2026-04-29T09:00:01Z",
"duration_ms": 840,
"output": { "ts": "1714384801.000100" }
}
]
}
Trigger a manual run
POST /v1/workflows/{workflow_id}/runs
Starts a new run immediately, regardless of the workflow's trigger configuration. The workflow must be in active or draft state.
Request body (optional)
{
"payload": {
"custom_key": "custom_value"
}
}
The payload is available in the workflow as trigger.payload.*.
Cancel a run
POST /v1/runs/{id}/cancel
Attempts to cancel a run that is currently running. Already-completed steps are not reversed.