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.