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/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.

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 cluster-shared sequence id; non-numeric or absent attaches live with no replay. A future or expired id emits resync.

seqstring

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.

eventstring

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.

condition_idstring

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.

min_grade'S' | 'A' | 'B' | 'C' | 'D' | 'F'

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

Last-Event-IDstring

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_unavailable enum value to the error/reason response property for the response status 400

      response-property-enum-value-added

    • added the new database_unavailable enum value to the error/reason response property for the response status 401

      response-property-enum-value-added

    • added the new database_unavailable enum value to the error/reason response property for the response status 402

      response-property-enum-value-added

    • added the new database_unavailable enum value to the error/reason response property for the response status 403

      response-property-enum-value-added

    • added the new database_unavailable enum value to the error/reason response property for the response status 423

      response-property-enum-value-added

    • added the new database_unavailable enum value to the error/reason response property for the response status 429

      response-property-enum-value-added

    • added the new database_unavailable enum value to the error/reason response property for the response status 503

      response-property-enum-value-added

    • added the optional property meta/ranking_as_of to the response with the 400 status

      response-optional-property-added

    • added the optional property meta/ranking_as_of to the response with the 401 status

      response-optional-property-added

    • added the optional property meta/ranking_as_of to the response with the 402 status

      response-optional-property-added

    • added the optional property meta/ranking_as_of to the response with the 403 status

      response-optional-property-added

    • added the optional property meta/ranking_as_of to the response with the 423 status

      response-optional-property-added

    • added the optional property meta/ranking_as_of to the response with the 429 status

      response-optional-property-added

    • added the optional property meta/ranking_as_of to the response with the 503 status

      response-optional-property-added

    • added the optional property meta/ranking_generation to the response with the 400 status

      response-optional-property-added

    • added the optional property meta/ranking_generation to the response with the 401 status

      response-optional-property-added

    • added the optional property meta/ranking_generation to the response with the 402 status

      response-optional-property-added

    • added the optional property meta/ranking_generation to the response with the 403 status

      response-optional-property-added

    • added the optional property meta/ranking_generation to the response with the 423 status

      response-optional-property-added

    • added the optional property meta/ranking_generation to the response with the 429 status

      response-optional-property-added

    • added the optional property meta/ranking_generation to the response with the 503 status

      response-optional-property-added

  • 19193b1771541477See the full diff
    • added the new idempotency_in_progress enum value to the error/reason response property for the response status 400

      response-property-enum-value-added

    • added the new idempotency_in_progress enum value to the error/reason response property for the response status 401

      response-property-enum-value-added

    • added the new idempotency_in_progress enum value to the error/reason response property for the response status 402

      response-property-enum-value-added

    • added the new idempotency_in_progress enum value to the error/reason response property for the response status 403

      response-property-enum-value-added

    • added the new idempotency_in_progress enum value to the error/reason response property for the response status 423

      response-property-enum-value-added

    • added the new idempotency_in_progress enum value to the error/reason response property for the response status 429

      response-property-enum-value-added

    • added the new idempotency_in_progress enum value to the error/reason response property for the response status 503

      response-property-enum-value-added

    • added the new webhook_delivery_in_progress enum value to the error/reason response property for the response status 400

      response-property-enum-value-added

    • added the new webhook_delivery_in_progress enum value to the error/reason response property for the response status 401

      response-property-enum-value-added

    • added the new webhook_delivery_in_progress enum value to the error/reason response property for the response status 402

      response-property-enum-value-added

    • added the new webhook_delivery_in_progress enum value to the error/reason response property for the response status 403

      response-property-enum-value-added

    • added the new webhook_delivery_in_progress enum value to the error/reason response property for the response status 423

      response-property-enum-value-added

    • added the new webhook_delivery_in_progress enum value to the error/reason response property for the response status 429

      response-property-enum-value-added

    • added the new webhook_delivery_in_progress enum value to the error/reason response property for the response status 503

      response-property-enum-value-added

    • added the optional property meta/category_skill_base_payload_hash to the response with the 400 status

      response-optional-property-added

    • added the optional property meta/category_skill_base_payload_hash to the response with the 401 status

      response-optional-property-added

    • added the optional property meta/category_skill_base_payload_hash to the response with the 402 status

      response-optional-property-added

    • added the optional property meta/category_skill_base_payload_hash to the response with the 403 status

      response-optional-property-added

    • added the optional property meta/category_skill_base_payload_hash to the response with the 423 status

      response-optional-property-added

    • added the optional property meta/category_skill_base_payload_hash to the response with the 429 status

      response-optional-property-added

    • added the optional property meta/category_skill_base_payload_hash to the response with the 503 status

      response-optional-property-added

    • added the optional property meta/category_skill_enriched_base_payload_hash to the response with the 400 status

      response-optional-property-added

    • added the optional property meta/category_skill_enriched_base_payload_hash to the response with the 401 status

      response-optional-property-added

    • added the optional property meta/category_skill_enriched_base_payload_hash to the response with the 402 status

      response-optional-property-added

    • added the optional property meta/category_skill_enriched_base_payload_hash to the response with the 403 status

      response-optional-property-added

    • added the optional property meta/category_skill_enriched_base_payload_hash to the response with the 423 status

      response-optional-property-added

    • added the optional property meta/category_skill_enriched_base_payload_hash to the response with the 429 status

      response-optional-property-added

    • added the optional property meta/category_skill_enriched_base_payload_hash to the response with the 503 status

      response-optional-property-added

    • added the optional property meta/category_skill_model_operationally_degraded to the response with the 400 status

      response-optional-property-added

    • added the optional property meta/category_skill_model_operationally_degraded to the response with the 401 status

      response-optional-property-added

    • added the optional property meta/category_skill_model_operationally_degraded to the response with the 402 status

      response-optional-property-added

    • added the optional property meta/category_skill_model_operationally_degraded to the response with the 403 status

      response-optional-property-added

    • added the optional property meta/category_skill_model_operationally_degraded to the response with the 423 status

      response-optional-property-added

    • added the optional property meta/category_skill_model_operationally_degraded to the response with the 429 status

      response-optional-property-added

    • added the optional property meta/category_skill_model_operationally_degraded to the response with the 503 status

      response-optional-property-added

    • added the optional property meta/category_skill_model_version to the response with the 400 status

      response-optional-property-added

    • added the optional property meta/category_skill_model_version to the response with the 401 status

      response-optional-property-added

    • added the optional property meta/category_skill_model_version to the response with the 402 status

      response-optional-property-added

    • added the optional property meta/category_skill_model_version to the response with the 403 status

      response-optional-property-added

    • added the optional property meta/category_skill_model_version to the response with the 423 status

      response-optional-property-added

    • added the optional property meta/category_skill_model_version to the response with the 429 status

      response-optional-property-added

    • added the optional property meta/category_skill_model_version to the response with the 503 status

      response-optional-property-added

    • added the optional property meta/category_skill_observation_started_at to the response with the 400 status

      response-optional-property-added

    • added the optional property meta/category_skill_observation_started_at to the response with the 401 status

      response-optional-property-added

    • added the optional property meta/category_skill_observation_started_at to the response with the 402 status

      response-optional-property-added

    • added the optional property meta/category_skill_observation_started_at to the response with the 403 status

      response-optional-property-added

    • added the optional property meta/category_skill_observation_started_at to the response with the 423 status

      response-optional-property-added

    • added the optional property meta/category_skill_observation_started_at to the response with the 429 status

      response-optional-property-added

    • added the optional property meta/category_skill_observation_started_at to the response with the 503 status

      response-optional-property-added

    • added the optional property meta/category_skill_platform to the response with the 400 status

      response-optional-property-added

    • added the optional property meta/category_skill_platform to the response with the 401 status

      response-optional-property-added

    • added the optional property meta/category_skill_platform to the response with the 402 status

      response-optional-property-added

    • added the optional property meta/category_skill_platform to the response with the 403 status

      response-optional-property-added

    • added the optional property meta/category_skill_platform to the response with the 423 status

      response-optional-property-added

    • added the optional property meta/category_skill_platform to the response with the 429 status

      response-optional-property-added

    • added the optional property meta/category_skill_platform to the response with the 503 status

      response-optional-property-added

    • added the optional property meta/category_skill_scope to the response with the 400 status

      response-optional-property-added

    • added the optional property meta/category_skill_scope to the response with the 401 status

      response-optional-property-added

    • added the optional property meta/category_skill_scope to the response with the 402 status

      response-optional-property-added

    • added the optional property meta/category_skill_scope to the response with the 403 status

      response-optional-property-added

    • added the optional property meta/category_skill_scope to the response with the 423 status

      response-optional-property-added

    • added the optional property meta/category_skill_scope to the response with the 429 status

      response-optional-property-added

    • added the optional property meta/category_skill_scope to the response with the 503 status

      response-optional-property-added

    • added the optional property meta/category_skill_source to the response with the 400 status

      response-optional-property-added

    • added the optional property meta/category_skill_source to the response with the 401 status

      response-optional-property-added

    • added the optional property meta/category_skill_source to the response with the 402 status

      response-optional-property-added

    • added the optional property meta/category_skill_source to the response with the 403 status

      response-optional-property-added

    • added the optional property meta/category_skill_source to the response with the 423 status

      response-optional-property-added

    • added the optional property meta/category_skill_source to the response with the 429 status

      response-optional-property-added

    • added the optional property meta/category_skill_source to the response with the 503 status

      response-optional-property-added

    • added the optional property meta/category_skill_source_coverage to the response with the 400 status

      response-optional-property-added

    • added the optional property meta/category_skill_source_coverage to the response with the 401 status

      response-optional-property-added

    • added the optional property meta/category_skill_source_coverage to the response with the 402 status

      response-optional-property-added

    • added the optional property meta/category_skill_source_coverage to the response with the 403 status

      response-optional-property-added

    • added the optional property meta/category_skill_source_coverage to the response with the 423 status

      response-optional-property-added

    • added the optional property meta/category_skill_source_coverage to the response with the 429 status

      response-optional-property-added

    • added the optional property meta/category_skill_source_coverage to the response with the 503 status

      response-optional-property-added

    • added the optional property meta/category_skill_status_counts to the response with the 400 status

      response-optional-property-added

    • added the optional property meta/category_skill_status_counts to the response with the 401 status

      response-optional-property-added

    • added the optional property meta/category_skill_status_counts to the response with the 402 status

      response-optional-property-added

    • added the optional property meta/category_skill_status_counts to the response with the 403 status

      response-optional-property-added

    • added the optional property meta/category_skill_status_counts to the response with the 423 status

      response-optional-property-added

    • added the optional property meta/category_skill_status_counts to the response with the 429 status

      response-optional-property-added

    • added the optional property meta/category_skill_status_counts to the response with the 503 status

      response-optional-property-added

    • added the optional property meta/category_skill_taxonomy_version to the response with the 400 status

      response-optional-property-added

    • added the optional property meta/category_skill_taxonomy_version to the response with the 401 status

      response-optional-property-added

    • added the optional property meta/category_skill_taxonomy_version to the response with the 402 status

      response-optional-property-added

    • added the optional property meta/category_skill_taxonomy_version to the response with the 403 status

      response-optional-property-added

    • added the optional property meta/category_skill_taxonomy_version to the response with the 423 status

      response-optional-property-added

    • added the optional property meta/category_skill_taxonomy_version to the response with the 429 status

      response-optional-property-added

    • added the optional property meta/category_skill_taxonomy_version to the response with the 503 status

      response-optional-property-added

    • added the new optional query request parameter condition_id

      new-optional-request-parameter

    • added the new optional query request parameter event

      new-optional-request-parameter

    • added the new optional query request parameter min_grade

      new-optional-request-parameter

    • added the non-success response with the status 400

      response-non-success-status-added

    • added the optional property error/reason to the response with the 401 status

      response-optional-property-added

    • added the optional property error/reason to the response with the 402 status

      response-optional-property-added

    • added the optional property error/reason to the response with the 403 status

      response-optional-property-added

    • added the optional property error/reason to the response with the 423 status

      response-optional-property-added

    • added the optional property error/reason to the response with the 429 status

      response-optional-property-added

    • added the optional property error/reason to the response with the 503 status

      response-optional-property-added

    • added the optional property error/retry_at to the response with the 401 status

      response-optional-property-added

    • added the optional property error/retry_at to the response with the 402 status

      response-optional-property-added

    • added the optional property error/retry_at to the response with the 403 status

      response-optional-property-added

    • added the optional property error/retry_at to the response with the 423 status

      response-optional-property-added

    • added the optional property error/retry_at to the response with the 429 status

      response-optional-property-added

    • added the optional property error/retry_at to the response with the 503 status

      response-optional-property-added

    • added the optional property meta/directional_source to the response with the 401 status

      response-optional-property-added

    • added the optional property meta/directional_source to the response with the 402 status

      response-optional-property-added

    • added the optional property meta/directional_source to the response with the 403 status

      response-optional-property-added

    • added the optional property meta/directional_source to the response with the 423 status

      response-optional-property-added

    • added the optional property meta/directional_source to the response with the 429 status

      response-optional-property-added

    • added the optional property meta/directional_source to the response with the 503 status

      response-optional-property-added

    • added the optional property meta/ranking_source to the response with the 401 status

      response-optional-property-added

    • added the optional property meta/ranking_source to the response with the 402 status

      response-optional-property-added

    • added the optional property meta/ranking_source to the response with the 403 status

      response-optional-property-added

    • added the optional property meta/ranking_source to the response with the 423 status

      response-optional-property-added

    • added the optional property meta/ranking_source to the response with the 429 status

      response-optional-property-added

    • added the optional property meta/ranking_source to the response with the 503 status

      response-optional-property-added

    • added the required property meta/cost to the response with the 401 status

      response-required-property-added

    • added the required property meta/cost to the response with the 402 status

      response-required-property-added

    • added the required property meta/cost to the response with the 403 status

      response-required-property-added

    • added the required property meta/cost to the response with the 423 status

      response-required-property-added

    • added the required property meta/cost to the response with the 429 status

      response-required-property-added

    • added the required property meta/cost to the response with the 503 status

      response-required-property-added

    • endpoint added

      endpoint-added