Date: 2026-06-19 Changes: - Fixed 98 empty .md files that had failed to scrape - Updated changelog with latest entries (Jun 15, 2026: CLOB DELETE /orders limit reduced to 1000) - Refreshed FAQ, Polymarket Learn, Developers, and other sections Notable updates: - Jun 15, 2026: CLOB DELETE /orders maximum batch size reduced to 1000 - Jun 1, 2026: Increased CLOB order rate limits - May 18, 2026: builderCode added to builders endpoints - May 14, 2026: GET /markets/keyset limit reduced to 100
6.0 KiB
Documentation Index
Fetch the complete documentation index at: https://docs.polymarket.com/llms.txt Use this file to discover all available pages before exploring further.
Overview
Real-time market data and trading updates via WebSocket
Polymarket provides WebSocket channels for near real-time streaming of orderbook data, trades, and personal order activity. There are four available channels: 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 |
Types marked "Custom Feature" require 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
{
"assets_ids": [
"21742633143463906290569050155826241533067272736897614950488156847949938836455",
"48331043336612883890938759509493159234755048973500640148014422747788308965732"
],
"type": "market",
"custom_feature_enabled": true
}
| 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
{
"auth": {
"apiKey": "your-api-key",
"secret": "your-api-secret",
"passphrase": "your-passphrase"
},
"markets": ["0x1234...condition_id"],
"type": "user"
}
| Field | Type | Description |
|---|---|---|
auth |
object | API credentials (apiKey, secret, passphrase) |
markets |
string[] | Condition IDs to receive events for |
type |
string | Channel identifier |
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
{
"assets_ids": ["new_asset_id_1", "new_asset_id_2"],
"operation": "subscribe",
"custom_feature_enabled": true
}
Unsubscribe from assets
{
"assets_ids": ["asset_id_to_remove"],
"operation": "unsubscribe"
}
For the user channel, use markets instead of assets_ids:
{
"markets": ["0x1234...condition_id"],
"operation": "subscribe"
}
Heartbeats
Market and User Channels
Send PING every 10 seconds. The server responds with PONG.
PING
Sports Channel
The server sends ping every 5 seconds. Respond with pong within 10 seconds.
pong