Streaming & Real-time
Track run progress with polling, event logs, and optional SSE streaming.
Track run progress with polling, event logs, and optional SSE streaming. For server-side integrations, polling is the recommended default: it is simple, durable, and works through any HTTP client.
Recommended pattern#
- POST /runs → capture `run.id` and `statusUrl` from the 202 response.
- Poll GET /runs/{id} every 1-3s until terminal status (`completed`, `failed`, `cancelled`, `timeout`).
- Read outputs from the completed run response.
Event log#
GET /runs/{id}/events returns the full ordered log: `run.started`, `node.completed`, `run.completed`, and related markers. Use it when you need step-level progress in a dashboard or when debugging which node failed.
See List Run Events for the full reference.
Live streaming#
Run creation returns an `accessToken` and `streamUrl`. Token-based SSE is available for interactive clients using the run access token. For backend services, prefer polling or webhooks: SSE connections are not ideal for short-lived serverless workers.