Events
Subscribe to the real-time event stream
Server-Sent Events (text/event-stream) feed of newly indexed events. Each message's data is the fully decoded event as JSON and its id is the monotonic events.id. Reconnecting clients resume from Last-Event-ID (or the last_event_id query param) without gaps. A cursor beyond the current tip (e.g. one stored before an event-log reset) is clamped to the tip and the stream resumes live. objects (comma-separated ids, at most 100) delivers only the events whose payload names one of them. While kinds or objects passes events over, the stream sends its position as an id: line with no data:, so a reconnect resumes past them.
The stream opens with a retry: directive; honour it. The response is ended deliberately whenever the backlog cannot be replayed, and a client that reconnects immediately instead will spend an outage in a connect/close loop and can exhaust its events:read rate limit. A 429 is fatal to EventSource — per the HTML spec it stops reconnecting for good — so size that scope's limit above your expected subscriber count.
The response also ends after at most 10 minutes, and when the API key expires; reconnecting with Last-Event-ID resumes where it stopped, and re-checks the key. A key may hold 10 streams open at once; another is refused with 429. When the server is at capacity a stream is refused with 503 and a Retry-After. EventSource treats both as final too.
Required API-key scope: events:read.
Authorizations
Talus API Key in the form key_id.secret. The API also accepts Authorization: ApiKey <key_id.secret>, but the docs UI is configured to send x-api-key.
Query Parameters
Comma-separated event kind names to subscribe to (e.g.
WalkAdvancedEvent,DAGCreatedEvent). The trailing Event suffix is
optional. Every name must be in the decodable event catalog; an unknown
one is rejected rather than silently matching nothing. Omit to receive
every event kind.
Comma-separated object ids, at most 100. Delivers only the events whose decoded payload names one of them anywhere (an execution, a task, an agent, a DAG), so a client can follow its own objects without receiving the whole network.
Resume from this events.id (exclusive). The Last-Event-ID request
header takes precedence when present.
200
An open text/event-stream of decoded events.
400
kinds names an event absent from the decodable catalog, or objects is not a list of at most 100 object ids.
401
Missing or invalid API key.
403
API key lacks the events:read scope.
429
Rate limit exceeded, or the key already holds its most open streams (STREAM_LIMIT_EXCEEDED).
503
The server holds its most open streams (STREAM_CAPACITY_EXCEEDED); retry after Retry-After.