Get a run
This page needs your own installation with an Embed license.
GET/
Returns one of an account’s runs. Never step data.
Needs a partner key: Authorization: Bearer gre_…, from Platform › Partner keys. Call it from your server only.
Parameters
Path
accountIdRequired · stringYour ID for the customer’s account: 1 to 255 bytes of UTF-8, case-sensitive. URL-encode it: it may contain
/.runIdRequired · UUIDThe run’s ID.
Responses
- 200OK
The run.
The account ID isn’t allowed as written.
details.fieldnames it.- 404
NOT_FOUNDNo such account, or no such run in it.
Something failed on the installation’s side. Try again.
Any call can also answer: 401 UNAUTHORIZED · 403 EMBED_NOT_LICENSED · 403 IP_NOT_ALLOWED · 429 RATE_LIMITED · 503 BUSY. See Errors.
Request
GORUNNER="https://automations.example.com"
GORUNNER_EMBED_KEY="YOUR_PARTNER_KEY" # gre_…
ACCOUNT_ID="acct-bakery"
RUN_ID="your-run-id"
URL="$GORUNNER/api/embed/v1/accounts/$ACCOUNT_ID/"
URL="${URL}runs/$RUN_ID"
curl "$URL" \
-H "Authorization: Bearer $GORUNNER_EMBED_KEY"const GORUNNER = "https://automations.example.com";
const KEY = process.env.GORUNNER_EMBED_KEY; // gre_…
const ACCOUNT_ID = encodeURIComponent("acct-bakery");
const RUN_ID = encodeURIComponent("your-run-id");
const res = await fetch(
`${GORUNNER}/api/embed/v1/accounts/` +
`${ACCOUNT_ID}/runs/${RUN_ID}`,
{
headers: { Authorization: `Bearer ${KEY}` },
},
);
const { data } = await res.json();import os, requests
from urllib.parse import quote
GORUNNER = "https://automations.example.com"
KEY = os.environ["GORUNNER_EMBED_KEY"] # gre_…
ACCOUNT_ID = quote("acct-bakery", safe="")
RUN_ID = quote("your-run-id", safe="")
res = requests.get(
f"{GORUNNER}/api/embed/v1/accounts/"
f"{ACCOUNT_ID}/runs/{RUN_ID}",
headers={"Authorization": f"Bearer {KEY}"},
)
data = res.json()["data"]Response · 200 OK
{
"data": {
"id": "8f0c41d2-6b7e-4c1a-9d3f-2a5b7c9e1f04",
"workflowId": "3b1e5c2a-7d4f-4e8b-a1c6-5f2d9b0e7a31",
"workspace": {
"id": null,
"default": true
},
"status": "failed",
"trigger": "webhook",
"startedAt": "2026-10-25T08:59:58Z",
"firstStartedAt": "2026-10-25T08:59:58Z",
"finishedAt": "2026-10-25T09:00:00Z",
"durationMs": 1840,
"error": "step add_row failed: the spreadsheet was not found",
"failure": {
"message": "step add_row failed: the spreadsheet was not found",
"step": {
"name": "add_row",
"displayName": "Add a row"
}
}
}
}Every field
It takes no body.
Response · 200 OK
dataobjectNever carries step data.
idUUIDworkflowIdUUIDworkspaceobjectidstring or nullThe partner’s workspace id; null for the default workspace.
defaultbooleanstatusstringqueued: accepted, waiting for a worker or a free slot.running: a worker has it.held: waiting on a person or a timer.One of
queued,running,held,worked,failed,cancelled.triggerstringWhat started it: the trigger’s type (
webhook,cron,manual, …).startedAttimeWhen the run was accepted. It may then wait in line for a free slot before a worker starts it (
firstStartedAt).firstStartedAttime or nullWhen a worker first started the run.
durationMscounts from here, so the time fromstartedAtto this is the time the run waited in line. Null until a worker starts the run, and for a run started on v2026.10.5 or earlier or one that ran inline (an error handler’s), whosedurationMscounts fromstartedAt.finishedAttime or nulldurationMsinteger or nullHow long the run took, in milliseconds: from the first time a worker started the run (
firstStartedAt, elsestartedAt) to its finish. Waits inside the run (a Delay, an Approval) count; the time it waited in the line for a free slot does not. A run cancelled while it waited has none. Null until it finishes.errorstring or nullWhy it did not work, as a sentence: a failed run’s failure, or
Cancelled by useron a cancelled run (whoever cancelled it).failureobject or nullA failed run’s error in the shape the
run.failedevent carries: the message (aserror) and the first step that failed. Null for every other run.messagestringstepobject or nullThe first step that failed; null when the run failed around its steps.
namestringThe step’s name in the definition (
step_2).displayNamestring