API · حوالہ
پولی مارکیٹ کے پاس دو realtime نظام ہیں، دو مختلف ہوسٹس پر۔ CLOB WebSocket آرڈر بُک اور آپ کے اپنے آرڈر اپڈیٹس کو stream کرتا ہے؛ RTDS فیڈ لائیو پرائس ڈیٹا (کرپٹو، equities) اور comments کو stream کرتا ہے۔ ان دونوں کو گڈمڈ کرنا سب سے عام غلطی ہے - یہ صفحہ انہیں الگ رکھتا ہے، درست اینڈ پوائنٹس، heartbeat، اور ایک درست reconnect کے ساتھ۔
- CLOB -
wss://ws-subscriptions-clob.polymarket.com/ws/· چینلزmarket(عوامی، آرڈر بُک)،user(auth، آپ کے آرڈرز/فِلز)،sports(اسپورٹس مارکیٹس کے لیے لائیو گیم اسٹیٹ)، اور ایکrfqgateway (لائیو Request-for-Quote اسٹیٹ - RFQ سیکشن دیکھیں)۔ - RTDS -
wss://ws-live-data.polymarket.com· topicscrypto_prices،crypto_prices_chainlink،equity_prices،comments۔
CLOB مارکیٹ چینل (بغیر auth)
ایک یا زیادہ token IDs سبسکرائب کریں اور آرڈر بُک اور اپڈیٹس وصول کریں: ایک ابتدائی
book اسنیپ شاٹ، پھر price_change، tick_size_change اور
last_trade_price ایونٹس۔ کسی credentials کی ضرورت نہیں۔
import asyncio, json, websockets
async def stream(token_ids):
url = "wss://ws-subscriptions-clob.polymarket.com/ws/market"
async with websockets.connect(url, ping_interval=10) as ws:
await ws.send(json.dumps({"assets_ids": token_ids, "type": "market"}))
async for msg in ws:
evt = json.loads(msg)
print(evt.get("event_type"), evt)
asyncio.run(stream([TOKEN_ID]))
import WebSocket from "ws";
const ws = new WebSocket("wss://ws-subscriptions-clob.polymarket.com/ws/market");
ws.on("open", () => ws.send(JSON.stringify({ assets_ids: [TOKEN_ID], type: "market" })));
ws.on("message", (d) => console.log(JSON.parse(d)));
CLOB user چینل (auth)
user چینل آپ کے آرڈر lifecycle کی اطلاع دیتا ہے (placements، matches، cancels)۔ اسے
آپ کی API key/secret/passphrase درکار ہوتی ہے اور آپ condition_id (مارکیٹ) سے سبسکرائب کرتے ہیں، token
ID سے نہیں۔ wss://ws-subscriptions-clob.polymarket.com/ws/user سے کنیکٹ کریں اور سبسکرائب payload میں
اپنی auth شامل کریں:
await ws.send(json.dumps({
"type": "user",
"markets": [CONDITION_ID], # subscribe by condition_id, not token_id
"auth": {"apiKey": API_KEY, "secret": SECRET, "passphrase": PASSPHRASE},
}))
# events: "order" (placed/cancelled) and "trade" (your fills)
RTDS پرائس فیڈز
ایک الگ ہوسٹ - wss://ws-live-data.polymarket.com - لائیو پرائس ڈیٹا کے لیے،
آرڈر بُکس کے لیے نہیں۔ کسی topic کو سبسکرائب کریں: crypto_prices (Binance)، crypto_prices_chainlink
(Chainlink اوریکل)، equity_prices، یا comments۔ کرپٹو/equity prediction-market بوٹس میں بنیادی سگنل کے لیے مفید۔
Heartbeat اور reconnect
- Heartbeat - تقریباً ہر 10 سیکنڈز میں ایک
PINGبھیجیں؛ سرورPONGسے جواب دیتا ہے۔ اسے چھوڑ دیں تو کنکشن گر جاتا ہے۔ - لائیو ترمیم - آپ کھلے کنکشن پر topics یا assets شامل/ہٹا سکتے ہیں؛ اپنی سبسکرپشن بدلنے کے لیے آپ کو دوبارہ کنیکٹ کرنے کی ضرورت نہیں۔
- درست طریقے سے reconnect - کسی بھی drop کے بعد، incremental اپڈیٹس پر دوبارہ بھروسہ کرنے سے پہلے REST آرڈر بُک اسنیپ شاٹ دوبارہ حاصل کریں
(
GET /book)۔ disconnect کے دوران جو streamed deltas آپ سے چھوٹ گئے وہ ختم ہو چکے؛ REST اسنیپ شاٹ آپ کی مقامی بُک کو دوبارہ sync کرتا ہے۔
پورا pattern ایک لچکدار loop میں - heartbeat، backoff کے ساتھ reconnect، اور ہر (دوبارہ)connect پر ایک REST resync:
import asyncio, json, time, requests, websockets
async def resilient_stream(token_id, on_event):
url = "wss://ws-subscriptions-clob.polymarket.com/ws/market"
backoff = 1
while True:
try:
async with websockets.connect(url, ping_interval=10) as ws:
# 1) REST snapshot first so the local book is correct before deltas
book = requests.get("https://clob.polymarket.com/book",
params={"token_id": token_id}).json()
on_event({"event_type": "snapshot", "book": book})
# 2) subscribe and stream
await ws.send(json.dumps({"assets_ids": [token_id], "type": "market"}))
backoff = 1 # reset after a clean connect
async for msg in ws:
on_event(json.loads(msg))
except Exception as e:
print("ws drop, resync in", backoff, "s:", e)
await asyncio.sleep(backoff)
backoff = min(backoff * 2, 30) # exponential backoff, capped
ws-subscriptions-clob) سے آتے ہیں؛ کرپٹو/equity قیمتیں اور comments RTDS
(ws-live-data) سے آتے ہیں۔ یہ مختلف payloads کے ساتھ مختلف services ہیں۔اگلا: CLOB REST حوالہ · Rate limits اور backoff · بنائیں: کسی بوٹ میں بُک stream کریں۔



