Stream new in-app notifications via SSE

Open a Server-Sent Events stream that emits each new streamable in-app notification for the traveler as soon as it is persisted, without polling. Every notification frame carries an id: cursor; reconnect with it in Last-Event-ID (or ?since=) to receive every row created since, in order and without repeats. The inbox (GET /v1/me/notifications) stays authoritative and also holds the inbox-only notification types.

Frame vocabulary — two named SSE events, each on its own event:/data: line pair:

  • event: notification — a new streamable in-app Notification row for the authenticated traveler. id is an opaque cursor: send the last one received as Last-Event-ID (or ?since=) on reconnect to resume after it. data is the JSON-serialised NotificationOut object, the same shape returned by GET /v1/me/notifications. event_type says which event the notification is about; the 200 response lists one example per value. Ignore values you do not recognise:

    id: AQAGUqHcVHoAAY8sPhI0eryN7wAAAAAAAQ
    event: notification
    data: {"id":"00000000-0000-4000-8000-000000000006","trip_id":"00000000-0000-4000-8000-0000000000a1","segment_id":"00000000-0000-4000-8000-0000000000b1","event_type":"segment.delayed","severity":"warning","title":"Delay — Flight","body":"Your trip is delayed by 45m.","deep_link":"bizaway://trips/00000000-0000-4000-8000-0000000000a1?segment=00000000-0000-4000-8000-0000000000b1","channel":"push","dispatched_at":"2026-11-03T07:40:00Z","read_at":null,"is_dedup_skipped":false,"delivery_status":"pending","created_at":"2026-11-03T07:40:00Z"}
  • event: done — the server is closing the connection (graceful shutdown). data is always an empty object; reconnect to resume real-time delivery:

    event: done
    data: {}
Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Query Params
length ≤ 512

Cursor from a previous notification frame's id:. Replays every row after it. For clients that cannot send Last-Event-ID; the header wins when both are sent.

Headers

Cursor from the last notification frame received. SSE clients send it automatically when they reconnect.

Responses

401

Authentication required

422

Last-Event-ID or since is not a valid cursor

429

Too many concurrent SSE connections for this traveler

503

Fanout or database not available

Language
Credentials
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
text/event-stream