Streaming

Resumable real-time event stream (SSE)

Server-Sent Events stream of the live feed envelopes the platform already broadcasts (whale-trade pulses and other public/insider feed events). Forwards the same backend-owned envelope shape as the internal feed; no provider data is recomputed. Authenticated via the oxi_sk Bearer key like every other /api/v1 endpoint, and limited to a small number of concurrent connections per API key and a cluster-wide ceiling across all keys (HTTP 429 with Retry-After when either cap is exceeded; HTTP 503 with Retry-After if the admission backend is briefly unavailable). Each delivered frame carries an SSE id equal to the envelope sequence; reconnect with the Last-Event-ID header (or the last_event_id / seq query fallback) to replay the missed window before resuming live. When the requested resume point predates the retained window the stream emits one resync marker event (event: resync) instead of silently skipping frames. Idle connections receive periodic ': keep-alive' comment lines. This is a long-lived response: keep the connection open and read frames as they arrive.

get/api/v1/stream

Query parameters

last_event_idstring

Query-string fallback for the Last-Event-ID resume cursor when the client cannot set the request header. Numeric sequence id; non-numeric or absent attaches live with no replay.

seqstring

Alias for last_event_id. Numeric sequence id to resume after; non-numeric or absent attaches live with no replay.

Headers

Last-Event-IDstring

Sequence id of the last frame the client successfully processed. The stream replays the strictly-newer window before resuming live. Browser EventSource clients send this automatically on reconnect. Omit to attach live from now.

Response

Open Server-Sent Events stream. The body is an unbounded text/event-stream of frames; each data frame is a JSON feed envelope (with seq, published_at, type, and event-specific fields) and carries an SSE id equal to seq. resync marker frames use event: resync.

Changes