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/Pro 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 a required Redis service is briefly unavailable). Each delivered frame carries an SSE id from one cluster-shared sequence that remains valid across backend replicas and process restarts. 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 is older than the retained window, ahead of the current sequence, or separated from live delivery by an uncovered gap, the stream emits a 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.
Query parameters
Query-string fallback for the Last-Event-ID resume cursor when the client cannot set the request header. Numeric cluster-shared sequence id; non-numeric or absent attaches live with no replay. A future or expired id emits resync.
Alias for last_event_id. Numeric cluster-shared sequence id to resume after; non-numeric or absent attaches live with no replay. A future or expired id emits resync.
Optional per-connection subscribe-time filter. Comma-separated list of frame wire types (the SSE 'type' discriminator, e.g. WhaleTradesInserted,wallet_grade_changed); a frame passes only when its type is in the set. An unknown token returns HTTP 400 naming the offending value. An empty/all-whitespace value is treated as absent (no constraint). Applied to BOTH the replay window and live frames, and always AFTER the per-subscriber privacy gate, so it can never widen visibility beyond what the key may already see. Combines with condition_id and min_grade as a logical AND; an absent param adds no constraint.
Optional per-connection subscribe-time filter. Raw provider condition_id or mkt_-prefixed market id (normalized the same way the other v1 market endpoints normalize). A frame passes only when it carries a matching condition_id field; frames that carry no condition_id (e.g. whale-pulse events) are EXCLUDED while this is set. An empty value after normalization returns HTTP 400. Combines with event and min_grade as a logical AND; an absent param adds no constraint.
Optional per-connection subscribe-time filter. A frame passes only when it carries a grade field whose grade is better-or-equal to this minimum (S is best). Frames that carry no grade field (every frame except wallet_grade_changed) are EXCLUDED while this is set. An invalid grade returns HTTP 400. Combines with event and condition_id as a logical AND; an absent param adds no constraint.
Headers
Cluster-shared sequence id of the last frame the client successfully processed. The stream replays the strictly-newer retained window before resuming live, even when reconnect routing changes replicas. A future or expired id emits resync. 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 cluster-shared seq, published_at, type, and event-specific fields) and carries an SSE id equal to seq. resync marker frames use event: resync for expired, future, lagged, or otherwise uncovered cursors.
Changes
Changed in 5 of the 31 revisions of this API.21126
- ●
added the new
database_unavailableenum value to theerror/reasonresponse property for the response status400response-property-enum-value-added
- ●
added the new
database_unavailableenum value to theerror/reasonresponse property for the response status401response-property-enum-value-added
- ●
added the new
database_unavailableenum value to theerror/reasonresponse property for the response status402response-property-enum-value-added
- ●
added the new
database_unavailableenum value to theerror/reasonresponse property for the response status403response-property-enum-value-added
- ●
added the new
database_unavailableenum value to theerror/reasonresponse property for the response status423response-property-enum-value-added
- ●
added the new
database_unavailableenum value to theerror/reasonresponse property for the response status429response-property-enum-value-added
- ●
added the new
database_unavailableenum value to theerror/reasonresponse property for the response status503response-property-enum-value-added
- ●
- ○
added the optional property
meta/ranking_as_ofto the response with the400statusresponse-optional-property-added
- ○
added the optional property
meta/ranking_as_ofto the response with the401statusresponse-optional-property-added
- ○
added the optional property
meta/ranking_as_ofto the response with the402statusresponse-optional-property-added
- ○
added the optional property
meta/ranking_as_ofto the response with the403statusresponse-optional-property-added
- ○
added the optional property
meta/ranking_as_ofto the response with the423statusresponse-optional-property-added
- ○
added the optional property
meta/ranking_as_ofto the response with the429statusresponse-optional-property-added
- ○
added the optional property
meta/ranking_as_ofto the response with the503statusresponse-optional-property-added
- ○
added the optional property
meta/ranking_generationto the response with the400statusresponse-optional-property-added
- ○
added the optional property
meta/ranking_generationto the response with the401statusresponse-optional-property-added
- ○
added the optional property
meta/ranking_generationto the response with the402statusresponse-optional-property-added
- ○
added the optional property
meta/ranking_generationto the response with the403statusresponse-optional-property-added
- ○
added the optional property
meta/ranking_generationto the response with the423statusresponse-optional-property-added
- ○
added the optional property
meta/ranking_generationto the response with the429statusresponse-optional-property-added
- ○
added the optional property
meta/ranking_generationto the response with the503statusresponse-optional-property-added
- ○
- ●
added the new
idempotency_in_progressenum value to theerror/reasonresponse property for the response status400response-property-enum-value-added
- ●
added the new
idempotency_in_progressenum value to theerror/reasonresponse property for the response status401response-property-enum-value-added
- ●
added the new
idempotency_in_progressenum value to theerror/reasonresponse property for the response status402response-property-enum-value-added
- ●
added the new
idempotency_in_progressenum value to theerror/reasonresponse property for the response status403response-property-enum-value-added
- ●
added the new
idempotency_in_progressenum value to theerror/reasonresponse property for the response status423response-property-enum-value-added
- ●
added the new
idempotency_in_progressenum value to theerror/reasonresponse property for the response status429response-property-enum-value-added
- ●
added the new
idempotency_in_progressenum value to theerror/reasonresponse property for the response status503response-property-enum-value-added
- ●
added the new
webhook_delivery_in_progressenum value to theerror/reasonresponse property for the response status400response-property-enum-value-added
- ●
added the new
webhook_delivery_in_progressenum value to theerror/reasonresponse property for the response status401response-property-enum-value-added
- ●
added the new
webhook_delivery_in_progressenum value to theerror/reasonresponse property for the response status402response-property-enum-value-added
- ●
added the new
webhook_delivery_in_progressenum value to theerror/reasonresponse property for the response status403response-property-enum-value-added
- ●
added the new
webhook_delivery_in_progressenum value to theerror/reasonresponse property for the response status423response-property-enum-value-added
- ●
added the new
webhook_delivery_in_progressenum value to theerror/reasonresponse property for the response status429response-property-enum-value-added
- ●
added the new
webhook_delivery_in_progressenum value to theerror/reasonresponse property for the response status503response-property-enum-value-added
- ○
added the optional property
meta/category_skill_base_payload_hashto the response with the400statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_base_payload_hashto the response with the401statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_base_payload_hashto the response with the402statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_base_payload_hashto the response with the403statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_base_payload_hashto the response with the423statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_base_payload_hashto the response with the429statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_base_payload_hashto the response with the503statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_enriched_base_payload_hashto the response with the400statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_enriched_base_payload_hashto the response with the401statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_enriched_base_payload_hashto the response with the402statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_enriched_base_payload_hashto the response with the403statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_enriched_base_payload_hashto the response with the423statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_enriched_base_payload_hashto the response with the429statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_enriched_base_payload_hashto the response with the503statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_model_operationally_degradedto the response with the400statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_model_operationally_degradedto the response with the401statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_model_operationally_degradedto the response with the402statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_model_operationally_degradedto the response with the403statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_model_operationally_degradedto the response with the423statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_model_operationally_degradedto the response with the429statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_model_operationally_degradedto the response with the503statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_model_versionto the response with the400statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_model_versionto the response with the401statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_model_versionto the response with the402statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_model_versionto the response with the403statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_model_versionto the response with the423statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_model_versionto the response with the429statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_model_versionto the response with the503statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_observation_started_atto the response with the400statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_observation_started_atto the response with the401statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_observation_started_atto the response with the402statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_observation_started_atto the response with the403statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_observation_started_atto the response with the423statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_observation_started_atto the response with the429statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_observation_started_atto the response with the503statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_platformto the response with the400statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_platformto the response with the401statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_platformto the response with the402statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_platformto the response with the403statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_platformto the response with the423statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_platformto the response with the429statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_platformto the response with the503statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_scopeto the response with the400statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_scopeto the response with the401statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_scopeto the response with the402statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_scopeto the response with the403statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_scopeto the response with the423statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_scopeto the response with the429statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_scopeto the response with the503statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_sourceto the response with the400statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_sourceto the response with the401statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_sourceto the response with the402statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_sourceto the response with the403statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_sourceto the response with the423statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_sourceto the response with the429statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_sourceto the response with the503statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_source_coverageto the response with the400statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_source_coverageto the response with the401statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_source_coverageto the response with the402statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_source_coverageto the response with the403statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_source_coverageto the response with the423statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_source_coverageto the response with the429statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_source_coverageto the response with the503statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_status_countsto the response with the400statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_status_countsto the response with the401statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_status_countsto the response with the402statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_status_countsto the response with the403statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_status_countsto the response with the423statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_status_countsto the response with the429statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_status_countsto the response with the503statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_taxonomy_versionto the response with the400statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_taxonomy_versionto the response with the401statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_taxonomy_versionto the response with the402statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_taxonomy_versionto the response with the403statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_taxonomy_versionto the response with the423statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_taxonomy_versionto the response with the429statusresponse-optional-property-added
- ○
added the optional property
meta/category_skill_taxonomy_versionto the response with the503statusresponse-optional-property-added
- ●
- ○
added the new optional
queryrequest parametercondition_idnew-optional-request-parameter
- ○
added the new optional
queryrequest parametereventnew-optional-request-parameter
- ○
added the new optional
queryrequest parametermin_gradenew-optional-request-parameter
- ○
added the non-success response with the status
400response-non-success-status-added
- ○
added the optional property
error/reasonto the response with the401statusresponse-optional-property-added
- ○
added the optional property
error/reasonto the response with the402statusresponse-optional-property-added
- ○
added the optional property
error/reasonto the response with the403statusresponse-optional-property-added
- ○
added the optional property
error/reasonto the response with the423statusresponse-optional-property-added
- ○
added the optional property
error/reasonto the response with the429statusresponse-optional-property-added
- ○
added the optional property
error/reasonto the response with the503statusresponse-optional-property-added
- ○
added the optional property
error/retry_atto the response with the401statusresponse-optional-property-added
- ○
added the optional property
error/retry_atto the response with the402statusresponse-optional-property-added
- ○
added the optional property
error/retry_atto the response with the403statusresponse-optional-property-added
- ○
added the optional property
error/retry_atto the response with the423statusresponse-optional-property-added
- ○
added the optional property
error/retry_atto the response with the429statusresponse-optional-property-added
- ○
added the optional property
error/retry_atto the response with the503statusresponse-optional-property-added
- ○
added the optional property
meta/directional_sourceto the response with the401statusresponse-optional-property-added
- ○
added the optional property
meta/directional_sourceto the response with the402statusresponse-optional-property-added
- ○
added the optional property
meta/directional_sourceto the response with the403statusresponse-optional-property-added
- ○
added the optional property
meta/directional_sourceto the response with the423statusresponse-optional-property-added
- ○
added the optional property
meta/directional_sourceto the response with the429statusresponse-optional-property-added
- ○
added the optional property
meta/directional_sourceto the response with the503statusresponse-optional-property-added
- ○
added the optional property
meta/ranking_sourceto the response with the401statusresponse-optional-property-added
- ○
added the optional property
meta/ranking_sourceto the response with the402statusresponse-optional-property-added
- ○
added the optional property
meta/ranking_sourceto the response with the403statusresponse-optional-property-added
- ○
added the optional property
meta/ranking_sourceto the response with the423statusresponse-optional-property-added
- ○
added the optional property
meta/ranking_sourceto the response with the429statusresponse-optional-property-added
- ○
added the optional property
meta/ranking_sourceto the response with the503statusresponse-optional-property-added
- ○
added the required property
meta/costto the response with the401statusresponse-required-property-added
- ○
added the required property
meta/costto the response with the402statusresponse-required-property-added
- ○
added the required property
meta/costto the response with the403statusresponse-required-property-added
- ○
added the required property
meta/costto the response with the423statusresponse-required-property-added
- ○
added the required property
meta/costto the response with the429statusresponse-required-property-added
- ○
added the required property
meta/costto the response with the503statusresponse-required-property-added
- ○
- ○
endpoint added
endpoint-added
- ○