Skip to main content
Prefer webhooks for app integrations. Instead of polling on a timer, you can register a webhook URL to receive a signed callback the moment a run completes. See Webhooks.
Runs are asynchronous. POST /v1/run returns a run_id immediately; you poll GET /v1/run/{run_id} until the run reaches a terminal status.
Runs average 10–20 minutes; complex research can take up to 2 hours. Poll every 15–30 seconds, or use a backoff (start at 15 s, grow to 60 s) to reduce traffic on longer runs.

Run statuses

Response shapes

While running

Completed

Failed

Canvas introspection

Spine runs are fully auditable. Once a run has a canvas_id, you can see exactly what the agents did — both programmatically and visually.

Inspect via the API

Every block includes its full content output and sources, so you can verify every intermediate artifact — not just the final deliverable.

Open the run in a canvas

Each canvas_id also has a visual counterpart at https://app.getspine.ai/canvas/{canvas_id} — open it to see the block DAG rendered, click into any block to inspect its output, and watch the agent tree as a graph rather than JSON. Same data, two surfaces: use whichever fits your workflow.