trade channel streams the market’s public trade tape
alongside the book.
How it works
- One connection, many markets. Open a single WebSocket and subscribe to as many markets as you need (up to a per-connection cap, see limits). Open more connections to scale past the cap — an account can hold up to 20 simultaneous connections (200 subscriptions each). Close connections you no longer need to stay under the limit; dropped or unresponsive connections are cleaned up automatically within about a minute and stop counting against it.
- One subscription per
(market, channel). Each subscription you create gets a server-assignedsubscriptionId. Every frame for that subscription carries the id — you route incoming frames to your local book by it. - Snapshot, then deltas. The first frame for a book subscription is a full
snapshot. After that you receivedeltaframes carrying only the levels that changed. Apply them in order; the sequencing contract guarantees you never have to reconcile a gap yourself. - Optional trade tape. Subscribe with
channels: ["trade"](or["book", "trade"]) to also receive onetradeframe per fill on the market, from the moment you subscribe. Available on Polymarket; Limitless has no public trade feed, so trade subscribes there are rejected withUNSUPPORTED_CHANNEL.
Prices and sizes
Every market is normalized to one scale:
A
Level is { price, size }. You receive separate bids and asks arrays
on a snapshot, and a flat list of changes on a delta where each change is
{ side, price, size } and size: 0 means that price level is now gone.
Step 1 — Get a stream key
WebSocket connections authenticate with a stream API key, distinct from your REST API key. Stream keys look like:Step 2 — Identify the markets you want
Each market you stream is described by aMarketStream — a small object keyed
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. You can subscribe to either or both;
both stream accurately.
Step 3 — Connect and subscribe
Open the WebSocket, wait for thewelcome frame, then send a subscribe. The
Quickstart walks through a complete, runnable example
for both venues. The full wire contract — every frame, the sequencing
guarantees, limits, errors, and disconnects — lives in the
WebSocket API reference, starting with
authentication.