List runs across every workflow in the workspace
run:readReturns runs from all workflows in the token's active workspace, newest first.
IMPORTANT — the environment default: a run records the environment it belongs to, and this list DEFAULTS to environment=production. Runs the editor started (test) are hidden unless you ask for them. If you triggered a run with POST /api/workflows/{id}/run without ?environment=production, that run is a TEST run and will not appear here by default.
Filter values are validated silently: an unrecognised status, sort, triggerType or environment, or a workflowId that is not a UUID, is DROPPED rather than rejected — the response is 200 with the filter not applied (so a misspelled triggerType returns every run instead of none). Check the values you send against the enums below.
This response carries a top-level pagination object alongside data. Step rows are NOT included here; use GET /api/runs/{id} for a run's steps and their output.
Authorization
bearerAuth An API token: Authorization: Bearer grt_…. Mint one in the app under Settings → Workspace → API tokens; the raw value is shown once. Scopes confine the token — see x-permission on each operation.
In: header
Query Parameters
1-based page number. Values below 1 (and unparseable values) become 1.
1 <= value1Rows per page. Anything outside 1–100 (including unparseable values) silently becomes 20.
1 <= value <= 10020Exact run status to filter on. Any other value is ignored and no status filter is applied.
Value in
- "pending"
- "running"
- "completed"
- "failed"
- "cancelled"
- "paused"
Which environment's runs to return. production = real trigger traffic (the default). test = runs the editor started (canvas Test, listen capture, a retry of a test run, and any POST /api/workflows/{id}/run that did not ask for production). all = both. An unrecognised value falls back to production.
"production"Value in
- "production"
- "test"
- "all"
How the run began. This is the run's OWN trigger vocabulary, not the workflow's: api is a run started through POST /api/workflows/{id}/run, subflow is a run started by a parent flow's Sub-flow step, manual is an editor test run. Any other value is ignored and every trigger type is returned.
Value in
- "manual"
- "webhook"
- "cron"
- "poll"
- "error"
- "run_finished"
- "event"
- "api"
- "mcp"
- "subflow"
Restrict to one workflow. Must be a UUID; a non-UUID value is ignored and runs from every workflow are returned.
uuidReturn only runs carrying this tag exactly (tags are attached during execution by the Tags piece). Matching is exact, not prefix or substring.
oldest = oldest start first. duration = longest durationMs first (runs with no duration last). Omitted or unrecognised = newest start first.
Value in
- "oldest"
- "duration"
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/api/runs"{ "data": [ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "workflowId": "43c4fa9b-0cbc-4b57-a121-9d7d46a3eaa4", "workspaceId": "ef0efa32-d1c1-43d4-a5e2-fe7b4f00403c", "orgId": "25b2c2d5-a7fc-47d0-89e4-8709a1560bfa", "status": "pending", "triggerType": "string", "triggerData": {}, "startedAt": "2019-08-24T14:15:22Z", "finishedAt": "2019-08-24T14:15:22Z", "durationMs": 0, "errorMessage": "string", "tags": [ "string" ], "environment": "production", "steps": [ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "runId": "78c33d18-170c-44d3-a227-b3194f134f73", "nodeId": "string", "pieceId": "string", "actionId": "string", "displayName": "string", "status": "pending", "inputData": {}, "outputData": {}, "errorMessage": "string", "retryCount": 0, "startedAt": "2019-08-24T14:15:22Z", "finishedAt": "2019-08-24T14:15:22Z", "durationMs": 0 } ], "versionId": "14707576-2549-4848-82ed-f68f8a1b47c7", "versionNumber": 0, "executedVersionId": "4d3e9121-6455-4ca4-b3e7-67df52d19c9f", "executedVersionNumber": 0, "startedFromStep": "string", "retryOfRunId": "d0a9e625-c445-46be-b052-60aba1a6d053", "retriedByRunId": "e0b90d7a-65b9-447a-9444-af73f1677849", "workflowName": "string", "workflowTriggerType": "string", "stepTotal": 0, "stepFailed": 0, "waitStep": "string", "resumeMode": "time", "resumeAt": "2019-08-24T14:15:22Z" } ], "pagination": { "page": 0, "limit": 0, "total": 0, "totalPages": 0 }}