Runs

A run's steps and outputs, cancelling, and running again with the same input.

MethodPathSummary
GET/api/runs/:idGet a run with its steps
GET/api/runs/:id/outputs/:nodeIdA step's whole output from a run (the steps list only has the first 25 items) — for pinning
POST/api/runs/:id/cancelCancel a run
POST/api/runs/:id/retryRun the flow again (as it is now) with the same trigger data

#Get a run with its steps

GET/api/runs/:id
Address
https://<your-org>.brambleit.cloud/flows/api/runs/:id
Requires
Signed-in browser session (the sso_session / session_id cookies from Bramble sign-in).
Licence: Flows.

Path parameters

NameTypeDescription
idrequiredinteger

Response 200

FieldTypeDescription
runobject
run.graphany
run.pending_stepsarray of any
run.waiting_untilstring (date-time), or null
run.waiting_onarray of object
run.waiting_on[].idinteger, or null
run.waiting_on[].kindstring: "approval" | "form"
run.waiting_on[].titlestring
run.waiting_on[].expires_atstring (date-time)
graphany
stepsarray of object
steps[].idinteger, or null
steps[].node_idstring
steps[].node_namestring
steps[].node_typestring
steps[].statusstring: "success" | "error" | "waiting"
steps[].pinnedany
steps[].attemptinteger
steps[].input_countinteger
steps[].output_countsarray of any
steps[].input_previewany
steps[].output_previewany
steps[].errorstring, or null
steps[].logsarray of any
steps[].started_atstring (date-time)
steps[].finished_atstring (date-time)
Example response
JSON
{
  "run": {
    "…run": "…",
    "graph": null,
    "pending_steps": [],
    "waiting_until": "2026-11-12T09:30:00.000Z",
    "waiting_on": [
      {
        "id": 42,
        "kind": "approval",
        "title": "Example title",
        "expires_at": "2026-11-12T09:30:00.000Z"
      }
    ]
  },
  "graph": null,
  "steps": [
    {
      "id": 42,
      "node_id": "string",
      "node_name": "Example node name",
      "node_type": "string",
      "status": "success",
      "pinned": null,
      "attempt": 1,
      "input_count": 3,
      "output_counts": [],
      "input_preview": null,
      "output_preview": null,
      "error": "string",
      "logs": [],
      "started_at": "2026-11-12T09:30:00.000Z",
      "finished_at": "2026-11-12T09:30:00.000Z"
    }
  ]
}

Example request

JavaScript
// From a page served by Bramble (uses the signed-in session)
const res = await fetch('/flows/api/runs/42', {
  method: 'GET',
  credentials: 'include',
});
const data = await res.json();

#A step's whole output from a run (the steps list only has the first 25 items) — for pinning

GET/api/runs/:id/outputs/:nodeId

A step's whole output from a run (the steps list only has the first 25 items) — for pinning. Kept for 2 days (the trigger's for 30).

Address
https://<your-org>.brambleit.cloud/flows/api/runs/:id/outputs/:nodeId
Requires
Signed-in browser session (the sso_session / session_id cookies from Bramble sign-in).
Licence: Flows.

Path parameters

NameTypeDescription
idrequiredinteger
nodeIdrequiredstring

Response 200

FieldTypeDescription
outputsarray of any
completeboolean
Example response
JSON
{
  "outputs": [],
  "complete": false
}

Errors

StatusMessage
404That step didn't run in this run

Example request

JavaScript
// From a page served by Bramble (uses the signed-in session)
const res = await fetch('/flows/api/runs/42/outputs/string', {
  method: 'GET',
  credentials: 'include',
});
const data = await res.json();

#Cancel a run

POST/api/runs/:id/cancel
Address
https://<your-org>.brambleit.cloud/flows/api/runs/:id/cancel
Requires
Signed-in browser session (the sso_session / session_id cookies from Bramble sign-in).
Licence: Flows.

Path parameters

NameTypeDescription
idrequiredinteger

Response 200

FieldTypeDescription
okboolean
Example response
JSON
{
  "ok": true
}

Errors

StatusMessage
403Not allowed

Example request

JavaScript
// From a page served by Bramble (uses the signed-in session)
const res = await fetch('/flows/api/runs/42/cancel', {
  method: 'POST',
  credentials: 'include',
});
const data = await res.json();

#Run the flow again (as it is now) with the same trigger data

POST/api/runs/:id/retry
Address
https://<your-org>.brambleit.cloud/flows/api/runs/:id/retry
Requires
Signed-in browser session (the sso_session / session_id cookies from Bramble sign-in).
Licence: Flows.

Path parameters

NameTypeDescription
idrequiredinteger

Response 202

FieldTypeDescription
run_idinteger
Example response
JSON
{
  "run_id": 7
}

Errors

StatusMessage
403Only the owner can run this flow

Example request

JavaScript
// From a page served by Bramble (uses the signed-in session)
const res = await fetch('/flows/api/runs/42/retry', {
  method: 'POST',
  credentials: 'include',
});
const data = await res.json();