Overview

What the Streaming API is

The Streaming API is the live and high-resolution surface of Zealous Markets. Where the core REST API serves daily and hourly aggregates, the Streaming API adds:

  • Sub-hour granularitysecond and minute aggregates, plus hour and day.
  • Three metric familiestrade (OHLCV + buy/sell splits), book (order-book depth, spread, cancellations), and quote (best bid/offer).
  • A live feed — a Server-Sent Events stream of bars as they close.

One key, one quota

Streaming uses the same zm_live_* API keys as the core REST API — mint one key in Profile → API keys and it works on both surfaces. Usage counts against a single shared monthly quota (requests + served bytes).

Streaming endpoints additionally require the streaming feature on your plan. A key with api-access but not streaming gets 403 plan_forbidden from /v1/streams/* and /v1/cmc/*.

The data model

Each pair has a readiness state, surfaced by the status endpoint:

REQUESTEDWARMINGREADY, with STALE and FAILED as off-nominal states.

Once READY, pull history with the snapshot endpoint or subscribe to the live SSE feed. Snapshots merge live and historical data into a single timeseries.

Base URL and conventions

Everything lives under the same base URL as the core API:

https://zealous.markets/api/v1/streams https://zealous.markets/api/v1/cmc

Snapshot endpoints take their parameters in a JSON request body via POST. Errors use the same envelope as the core API — see Errors. Snapshots speak application/json and application/toon; see Formats.

The machine-readable spec is at /api/v1/openapi-streaming.yaml, and every endpoint is runnable from the API Explorer.