Long-lived Server-Sent Events connection that emits real-time progress, completion, and failure events for every job in the workspace. Use this for dashboards and realtime UIs. For a single job, use GET /v1/jobs/{id}/stream instead.
| Event | Payload |
|---|---|
job:progress | { jobId, status, completed, total } |
job:completed | { jobId, status, completed, total, creditsUsed } |
job:failed | { jobId, error } |
: ping) is sent every 30 seconds so intermediate proxies don’t close the connection as idle. Most SSE clients ignore comment frames automatically.
For a stream scoped to a single job (with progress, page, error, and done events), use GET /v1/jobs/{id}/stream instead.
See Events for the full concept guide.SSE stream that stays open until the client disconnects
Server-Sent Events stream. Each frame is a line-delimited event with an event: line, a data: line (JSON payload), and a trailing blank line. Keep-alive comments (: ping) are sent every 30 seconds. See Events for the full event catalog.
"event: job:progress\ndata: {\"jobId\":\"j_abc\",\"status\":\"processing\",\"completed\":45,\"total\":100}\n\nevent: job:completed\ndata: {\"jobId\":\"j_abc\",\"status\":\"completed\",\"completed\":100,\"total\":100,\"creditsUsed\":100}\n\n"