POST /v1/runs/{id}/retry
Retry a failed or cancelled run from its failure point

Path Parameters

id string required path
Run ID

Responses

200 OK
application/json
code integer
data object
executionState object
finishedAt string
id string
isDustTest boolean
isSimulation boolean
organizationId string
propValues object
simulationForks object[]
Array of:
chainId integer
forkId string
rpcUrl string
simulationMode string
sourceRunId string
startedAt string
status string
Enum: running, waiting, success, partial, failure, cancelled
summary string
totalCu number
triggerNodeId string
triggerSource string
triggeredBy string
workflowDefinition object
Definition is the inline workflow graph to analyze. Same shape as a saved workflow's definition. Unlike the ephemeral-run endpoint there is no trigger restriction — analysis is read-only and method-agnostic.
blockExpansions object
Set on run snapshots only (not workflow DB)
inputSchema object[]
Array of:
description string
key string
required boolean
type string
"string", "number", "boolean", "object", "array"
nodes object REQUIRED
triggerNodeIds string[]
TriggerNodeIDs lists the node IDs that are trigger (root) nodes. Every workflow declares this — single-trigger workflows ship ["root"] (the legacy node id), multi-trigger workflows list every trigger node id. Treating single-trigger as a forest-of-1 removes the two-path branching throughout the BE + FE; older rows without the field are backfilled by migration 000282 and the field-missing path stays as a read-side safety net (see FindTriggerNodeIDs) but is no longer exercised by saves. "root" is also a runtime alias for "the trigger that fired this run" — {{root.X}} variable references resolve to the firing trigger regardless of which trigger fired. Don't repurpose the literal "root" as a trigger id on a multi-trigger workflow.
Array of:
variableDefs object[]
VariableDefs is a snapshot of the workflow's declared variables at run creation time. The canonical source lives on the workflows row (Workflow.VariableDefs column). Snapshotted into the run definition so the worker can resolve {{$vars.x}} lookups and route variable-action writes to the right scope without an extra DB round trip.
Array of:
default unknown
description string
lifetime string
Enum: persist, reset
name string
type string
Enum: number, text, boolean, list, object
workflowId string
workflowOwnerUserId string
workflowVersion integer
message string
requestId string
404 Not Found
409 Conflict
curl -X POST 'https://api.example.com/v1/runs/string/retry' \  -H 'Authorization: Bearer YOUR_API_TOKEN'
const response = await fetch('https://api.example.com/v1/runs/string/retry', {  method: 'POST',  headers: {      "Authorization": "Bearer YOUR_API_TOKEN"  }});const data = await response.json();console.log(data);
import requestsheaders = {    'Authorization': 'Bearer YOUR_API_TOKEN'}response = requests.post('https://api.example.com/v1/runs/string/retry', headers=headers)print(response.json())
package mainimport (	"fmt"	"io"	"net/http")func main() {	req, _ := http.NewRequest("POST", "https://api.example.com/v1/runs/string/retry", nil)	req.Header.Set("Authorization", "Bearer YOUR_API_TOKEN")	resp, _ := http.DefaultClient.Do(req)	defer resp.Body.Close()	result, _ := io.ReadAll(resp.Body)	fmt.Println(string(result))}
200 Response
{  "code": 200,  "data": {    "executionState": "<object>",    "finishedAt": "<string>",    "id": "<string>",    "isDustTest": true,    "isSimulation": true,    "organizationId": "<string>",    "propValues": "<object>",    "simulationForks": [      {        "chainId": 123,        "forkId": "<string>",        "rpcUrl": "<string>"      }    ],    "simulationMode": "<string>",    "sourceRunId": "<string>",    "startedAt": "<string>",    "status": "running",    "summary": "<string>",    "totalCu": 123,    "triggerNodeId": "<string>",    "triggerSource": "<string>",    "triggeredBy": "<string>",    "workflowDefinition": {      "blockExpansions": "<object>",      "inputSchema": [        {          "description": "<string>",          "key": "<string>",          "required": true,          "type": "<string>"        }      ],      "nodes": "<object>",      "triggerNodeIds": [        "<string>"      ],      "variableDefs": [        {          "default": "<unknown>",          "description": "<string>",          "lifetime": "persist",          "name": "<string>",          "type": "number"        }      ]    },    "workflowId": "<string>",    "workflowOwnerUserId": "<string>",    "workflowVersion": 123  },  "message": "success",  "requestId": "abc-123"}