Skip to main content
A subscription is one (market, channel) pair on a connection. You create them with subscribe, name the market with a MarketStream, and the server hands back a subscriptionId that keys every frame that follows.

MarketStream

How you reference a market on the wire. It’s a discriminated union on venue — you build it from venue-native identifiers you already have, or that you get from the Markets API.
Limitless YES and NO are two views of one shared orderbook — the NO book is the exact complement of the YES book. One slug covers both sides; you subscribe to YES and NO as two separate MarketStream entries, one per token. You can subscribe to either or both; both stream accurately.

Channels

A subscription is one (market, channel) pair. Subscribing to one market on both channels counts as two subscriptions against the per-connection cap.

subscribe

For each market in the batch you get back either a subscribed ack or an error (for example, UNKNOWN_MARKET) — one reply per market, so a single bad entry never sinks the rest of the batch.
Cache the mapping from subscriptionId to whatever local state you keep for that market — every subsequent frame for this subscription is keyed by that id, and it’s also the handle you pass to unsubscribe. snapshotPending: true tells you a snapshot is on its way (it is always false on the trade channel — the tape has no snapshot). Subscribing is idempotent per (connection, market, channel): a repeat returns the existing subscriptionId rather than creating a second one.

unsubscribe

Unsubscribe by the subscriptionId(s) from prior subscribed acks. One unsubscribed reply per id, carrying subscriptionId, market, and channel.

list

Returns a subscriptions frame: one atomic snapshot of every active subscription on this connection.