market, user, sports, and RTDS (Real-Time Data Socket).
Channels
| Channel | Endpoint | Auth |
|---|---|---|
| Market | wss://ws-subscriptions-clob.polymarket.com/ws/market | No |
| User | wss://ws-subscriptions-clob.polymarket.com/ws/user | Yes |
| Sports | wss://sports-api.polymarket.com/ws | No |
| RTDS | wss://ws-live-data.polymarket.com | Optional |
Market Channel
| Type | Description | Custom Feature |
|---|---|---|
book | Full orderbook snapshot | No |
price_change | Price level updates | No |
tick_size_change | Tick size changes | No |
last_trade_price | Trade executions | No |
best_bid_ask | Best prices update | Yes |
new_market | New market created | Yes |
market_resolved | Market resolution | Yes |
custom_feature_enabled: true in your subscription.
User Channel
| Type | Description |
|---|---|
trade | Trade lifecycle updates (MATCHED → CONFIRMED) |
order | Order placements, updates, and cancellations |
Sports
| Type | Description |
|---|---|
sport_result | Live game scores, periods, and status |
Subscribing
Send a subscription message after connecting to specify which data you want to receive.Market Channel
| Field | Type | Description |
|---|---|---|
assets_ids | string[] | Token IDs to subscribe to |
type | string | Channel identifier |
custom_feature_enabled | boolean | Enable best_bid_ask, new_market, and market_resolved events |
User Channel
The
auth fields (apiKey, secret, passphrase) are only required for
the user channel. For the market channel, these fields are optional and can
be omitted.| Field | Type | Description |
|---|---|---|
auth | object | API credentials (apiKey, secret, passphrase) |
markets | string[] | Condition IDs to receive events for |
type | string | Channel identifier |
The user channel subscribes by condition IDs (market identifiers), not
asset IDs. Each market has one condition ID but two asset IDs (Yes and No
tokens).
Sports Channel
No subscription message required. Connect and start receiving data for all active sports events.Dynamic Subscription
Modify subscriptions without reconnecting.Subscribe to more assets
Unsubscribe from assets
markets instead of assets_ids:
Heartbeats
Market and User Channels
SendPING every 10 seconds. The server responds with PONG.
Sports Channel
The server sendsping every 5 seconds. Respond with pong within 10 seconds.
Troubleshooting
Connection closes immediately after opening
Connection closes immediately after opening
Send a valid subscription message immediately after connecting. The server may
close connections that don’t subscribe within a timeout period.
Connection drops after about 10 seconds
Connection drops after about 10 seconds
You’re not sending heartbeats. Send
PING every 10 seconds for market/user
channels, or respond to server ping with pong for the sports channel.Not receiving any messages
Not receiving any messages
- Verify your asset IDs or condition IDs are correct 2. Check that the
markets are active (not resolved) 3. Set
custom_feature_enabled: trueif expectingbest_bid_ask,new_market, ormarket_resolvedevents
Authentication failed - user channel
Authentication failed - user channel
Verify your API credentials are correct and haven’t expired.