Subscribe to account events
A live server-sent-event stream of everything happening in the account: artifacts appearing, jobs changing state, chats finishing, kanban card runs settling. This is the intended way to wait for dispatched work rather than polling. Each frame is a JSON object with a `type` discriminator and the new state inline — there is no need to re-read the resource to learn what changed. **The stream is not replayable.** It carries no event ids and ignores `Last-Event-ID`; anything produced while you were disconnected is not redelivered. On reconnect, re-read whatever you care about (`GET /v1/jobs`, `GET /v1/sessions/{id}/artifacts`) and carry on from there. Treat it as a latency optimization over polling, not as a durable log.
A live server-sent-event stream of everything happening in the account: artifacts appearing, jobs changing state, chats finishing, kanban card runs settling. This is the intended way to wait for dispatched work rather than polling.
Each frame is a JSON object with a type discriminator and the new state inline — there is no
need to re-read the resource to learn what changed.
The stream is not replayable. It carries no event ids and ignores Last-Event-ID; anything
produced while you were disconnected is not redelivered. On reconnect, re-read whatever you care
about (GET /v1/jobs, GET /v1/sessions/{id}/artifacts) and carry on from there. Treat it as a
latency optimization over polling, not as a durable log.
Authorization
api_key events:readAn atk_-prefixed API key, created under Settings → API keys.
In: header
Scope: events:read
Response Body
text/event-stream
application/json
application/json
curl -X GET "https://example.com/v1/events"{ "artifact_id": "b7bd6bbb-c7f1-4314-8742-2aeeeece9d12", "session_id": "1ffd059c-17ea-40a8-8aef-70fd0307db82", "type": "artifact.created"}