API ยท v1

SSE stream

Subscribe to live Modeled position events with Server-Sent Events and opaque signed cursors.

Connect

GET/api/v1/output/feeds/{token}/stream

Open links.stream with Accept: text/event-stream. A new stream without a cursor establishes the current durable event high-watermark. It does not replay retained history.

Ready control event

The first frame is a small ready control event containing snapshot, events, and starting_cursor. Store that cursor before processing later events. The SSE id on the ready frame matches starting_cursor.

Modeled event frames

Each modeled event frame has:

  • id - opaque signed cursor after that event
  • event - canonical topic
  • data - unchanged canonical event JSON

Heartbeats and reconnect

The stream sends : heartbeat comments after an idle interval. On reconnect, send the last committed SSE id in Last-Event-ID. The optional after query parameter accepts the same cursor. If both are supplied, they must match. Tradee always reads durable output_events after a notification or timeout, so a missed database notification cannot create an event gap.