GoRunner

Get one run with all of its steps

Requires scope run:read
GET
/api/runs/{id}

The only endpoint that returns step-level data.

STEP OUTPUT LIVES AT steps[].outputData, and each step is addressed by nodeId — which is the STEP NAME from the workflow definition (FlowAction.name, the same identifier expressions use in {{steps.<name>.field}}), NOT the human displayName and not a canvas coordinate. To read one step's result, find the element of steps whose nodeId equals the definition step name and read outputData. inputData is the resolved config that step actually ran with (under an input.config object). Large payloads are offloaded to object storage during the run and rehydrated here transparently, so inputData/outputData are always plain JSON.

Read path: an IN-FLIGHT run (pending/running/paused) is served from a live cache, not the database, and carries a REDUCED field set — meaningful values for id, status, workflowId, triggerType, triggerData, startedAt, steps and, when paused, waitStep/resumeMode/resumeAt. versionId, executedVersionId, finishedAt and durationMs are absent, and — the trap — workspaceId/orgId are emitted as the all-zero UUID, environment as an empty string and tags as null. Those are placeholders, not facts about the run; re-read the run after it settles if you need them.

Polling: stop when status is one of the TERMINAL values completed, failed, cancelled. pending, running and paused are all non-terminal; a paused run is waiting on a durable wait (an approval webhook, or a scheduled resume named by resumeAt) and can stay paused indefinitely.

Authorization

bearerAuth
AuthorizationBearer <token>

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

Path Parameters

id*string

The run id (UUID).

Formatuuid

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/api/runs/497f6eca-6276-4993-bfeb-53cbbbba6f08"
{  "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"  }}