Replace a sequence's graph
Saves the whole graph at once — a per-step write would leave arrows pointing at deleted steps if one request failed. A draft saves however half-drawn it is; the structural checks (loops, unreachable steps, two arrows on the same condition) only run when `status` moves to `active`, and a graph that fails them comes back 422 with the offending step ids so the canvas can highlight them.
Saves the whole graph at once — a per-step write would leave arrows pointing at deleted steps if one request failed. A draft saves however half-drawn it is; the structural checks (loops, unreachable steps, two arrows on the same condition) only run when status moves to active, and a graph that fails them comes back 422 with the offending step ids so the canvas can highlight them.
API key (sk_live_... prefix). Generate keys in the UI under Settings > API Keys, then send it as Authorization: Bearer sk_live_...
In: header
Path Parameters
uuidRequest Body
application/json
1 <= length <= 255"draft" | "active" | "paused" | "archived"^\d{2}:\d{2}$^\d{2}:\d{2}$length <= 64Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X PUT "https://loading/api/v1/org/sequences/497f6eca-6276-4993-bfeb-53cbbbba6f08" \ -H "Content-Type: application/json" \ -d '{ "nodes": [ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "kind": "email", "position_x": 0, "position_y": 0 } ], "edges": [ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "from_node_id": "13fbc5c8-6f44-418d-8e43-34e06d7bf36a", "to_node_id": "4cead031-b38d-4c9d-9201-3c4ec0fb51fe" } ] }'{
"data": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string",
"description": "string",
"status": "draft",
"entry_node_id": "309c9c20-703c-4647-be34-6fd6edeb7c28",
"send_window_start": "string",
"send_window_end": "string",
"send_timezone": "string",
"send_on_weekends": true,
"one_per_district": true,
"project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
"table_id": "ac92386a-00cc-4818-bf43-1a666d5a5e67",
"table_name": "string",
"max_sends_per_enrollment": -9007199254740991,
"created_at": "string",
"updated_at": "string",
"node_count": -9007199254740991,
"active_enrollments": -9007199254740991,
"nodes": [
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"kind": "email",
"label": "string",
"template_id": "c6d67e98-83ea-49f0-8812-e4abae2b68bc",
"mailbox_account_id": "d1ad0d86-4d66-4f88-905b-446a9cec88f6",
"send_mode": "auto",
"wait_for": "linkedin_accepted",
"wait_timeout_hours": 9007199254740991,
"delay_hours": 0,
"position_x": 0,
"position_y": 0
}
],
"edges": [
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"from_node_id": "13fbc5c8-6f44-418d-8e43-34e06d7bf36a",
"to_node_id": "4cead031-b38d-4c9d-9201-3c4ec0fb51fe",
"condition": "always",
"priority": 0
}
]
}
}{
"error": "string",
"message": "string",
"statusCode": -9007199254740991
}{
"error": "string",
"message": "string",
"statusCode": -9007199254740991
}{
"error": "module_required",
"module": "string",
"message": "string",
"contact": "string"
}{
"error": "string",
"message": "string",
"statusCode": -9007199254740991
}{
"error": "graph_invalid",
"message": "string",
"problems": [
{
"code": "cycle",
"message": "string",
"nodeIds": [
"string"
]
}
]
}Get a sequence and its whole graph GET
The sequence plus every step and arrow, including each step's saved canvas position. This is what the canvas loads.
Stop people mid-sequence DELETE
The off switch. Clears `next_run_at`, which is what actually takes the row out of the runner's sight, and records a manual exit rather than deleting the row — so the timeline still says why the outreach stopped. People who had already finished are left alone.