Skip to main content
A run is one execution of a workflow: from an approved request, or a job trigger (manual, API or schedule). Each time a runner picks it up is an attempt; re-running a finished run adds an attempt. Run status: queued → running → success, failed or timeout; or cancelled.

POST workflows/{id}/runs/trigger/

Starts a job now. Permission: workflow.execute. The job must be active with API triggering on, otherwise 409.
runtime_variables become environment variables for this run only. Response 201:
run is the trigger record; follow the run itself with GET runs/{run_id}/.

GET runs/ and GET workflows/{id}/runs/

Runs you can view, newest first. Paginated.

GET runs/{id}/

The run, why it failed, and each attempt (latest first) with its steps.

GET runs/{id}/logs/

Log lines in order, up to 500 per call.
next_after is null when there are no more lines (so far, for a running attempt).

POST runs/{id}/rerun/

Queues a finished run again as a new attempt, with the same inputs. Permission: run.manage. 409 unless the run is finished; 403 if the workflow isn’t active.

POST runs/{id}/cancel/

Cancels a run no runner has picked up yet. 409 unless it’s queued.