108,000+ markets
Every active Polymarket market is tracked. Subscribe to specific markets or get everything at once.
Enriched data
Snapshots include the event title, market question, outcome label, slug, and condition ID. Streaming updates include the slug and outcome for lightweight routing.
250ms batching
Updates are batched into 250ms windows for efficient delivery. One message per tick with all changes for your subscribed markets.
Compression included
Add
&compress=zlib to your connection URL for ~50% bandwidth savings. Recommended for production.Optional integrity
Add one connection flag for per-token sequences and deterministic PN1 checksums. The default stream stays unchanged.
Successfully delivered Order Book payloads and Chainlink price payloads share the Order Book + Chainlink transfer meter in your usage dashboard. Compression reduces counted transfer because the meter uses the encoded payload delivered to the connection. Heartbeats, acknowledgements, control frames, and failed sends do not count. See Monthly usage allowances.
Quick start
1
Get an API key
pn_live_... key from the response.2
Connect and subscribe
Subscribe using a condition ID or token ID from the REST API. Both sides of the market (Yes + No) are included automatically.
3
Receive data
You’ll immediately receive an orderbook snapshot for each subscribed token, then live batched updates:
Ways to subscribe
You can identify markets using any of these formats:- Firehose (all markets)
- Slug (recommended)
- Condition ID
- Token ID
Subscribe to every active market with a single message. Pass The server responds with
"*" as the market identifier to get the full firehose (full data stream) of all 100,000+ tokens."firehose": true and the total number of active tokens. Live updates start flowing immediately while snapshots stream in the background.Finding markets
Use the PolyNode REST API to search for markets and find their slugs, condition IDs, or token IDs:polymarket.com/event/{slug}.
Connection URL
Subscription limits
Usemarkets: ["*"] for the full all-market firehose. Explicit market lists are capped at 15,000 resolved token IDs per connection to protect low-latency fan-out; split large explicit watchlists across connections or use the firehose path when you truly need every market.
Each Polymarket market has two tokens (one per outcome). Subscribing to both tokens of a market gives you the full two-sided orderbook.
Plan upgrades increase the number of concurrent Orderbook Stream connections. The explicit-list token cap is a per-connection safety limit and is not removed by upgrading.
PN1 integrity connections use explicit market lists only and are initially capped at 500 resolved token IDs per connection. The all-market firehose remains available on the normal stream.
Orderbook connections are separate from event WebSocket connections. Your plan’s Event WebSocket limit applies to
ws.polynode.dev; the limits above apply to the Orderbook Stream at ob.polynode.dev. Session time resets at midnight UTC.Connection lifecycle
- Firehose
- Specific markets
Separate from the main WebSocket
The Orderbook Stream runs on a separate endpoint (ob.polynode.dev) from the main PolyNode WebSocket (ws.polynode.dev). They are independent services:
You can connect to both simultaneously with the same API key.

