Skip to main content
The public GET /task/{task_id}/stream route is a quiet status-change stream. It emits one event for the current status and then one for each new status version, rather than every tool call or text delta.

Subscribe to a task

curl
Python
JavaScript

Events and reconnects

The event id is the status version, and each event’s data contains the status object plus a printable summary line. A new connection receives the current status. Send Last-Event-ID to resume; if it matches the current version, that status is not emitted again.
Migrating from the raw feed: the default public stream is the quiet status stream described here. Add ?verbose=1 to GET /task/{task_id}/stream to keep the old feed and event types (tool_start, tool_result, text_delta, and others). The dashboard stream is unaffected.
The public stream is optional. For bounded polling, use GET /task/{task_id}?wait=50 and repeat until done is true. See Task lifecycle for the loop.

Task API

The raw SSE interface and route map.

Follow-up tasks

Continue a task and stream the next turn.