GoRunner

One step's recorded output from one past run

Requires scope workflow:read
GET
/api/workflows/{id}/step-sources/{runId}

Returns the output the named step produced in that run — or the run's trigger payload when step addresses the trigger. Large payloads that were offloaded to object storage are rehydrated transparently.

"No data" is a 404, not an empty object. A caller must be able to tell "this run has nothing for that step" apart from "this step genuinely returned {}", so the empty case is refused rather than answered with a value that would silently mislead a mapping tree.

Values under secret-looking keys are redacted before the payload leaves the server.

Note the shape: the payload sits at data.data — the outer data is the success envelope, the inner data is this endpoint's own field name.

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

Workflow id (UUID).

Formatuuid
runId*string

The run to read from. Ownership is enforced inside the query by workspace AND workflow, so a run id belonging to another workflow or tenant resolves to nothing (404) rather than to data.

Formatuuid

Query Parameters

step*string

The step's stable name, or trigger (or the trigger's own name). Required.

Length1 <= length

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/api/workflows/497f6eca-6276-4993-bfeb-53cbbbba6f08/step-sources/497f6eca-6276-4993-bfeb-53cbbbba6f08?step=string"
{  "data": {    "data": null  }}