attacca
Events

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.

GET
/v1/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.

Authorization

api_key events:read
AuthorizationBearer <token>

An 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"}