Skip to main content

PolyNode API

PolyNode delivers Polymarket settlement data 2–5 seconds before on-chain confirmation (1–2 Polygon blocks). Connect via WebSocket for real-time streaming, or query the REST API for markets, candles, and orderbook data.

WebSocket streaming

Real-time settlements with filtered subscriptions. The core product.

Markets & pricing

Enriched market metadata, OHLCV candles, and volume analytics.

Quick start

1. Get an API key

curl -s -X POST https://api.polynode.dev/v1/keys \
  -H "Content-Type: application/json" \
  -d '{"name": "my-app"}'

2. Query the REST API

curl -s -H "x-api-key: pn_live_YOUR_KEY" \
  "https://api.polynode.dev/v1/markets?count=5"

3. Stream live settlements via WebSocket

const ws = new WebSocket("wss://ws.polynode.dev/ws?key=pn_live_YOUR_KEY");

ws.onopen = () => {
  ws.send(JSON.stringify({ action: "subscribe", type: "settlements" }));
};

ws.onmessage = (event) => {
  const msg = JSON.parse(event.data);
  if (msg.type === "settlement") {
    const d = msg.data;
    console.log(`${d.taker_side} ${d.taker_size} @ ${d.taker_price} | ${d.market_title}`);
  }
};

4. Stream a live orderbook

const ws = new WebSocket("wss://ob.polynode.dev/ws?key=pn_live_YOUR_KEY");

ws.onopen = () => {
  // Subscribe by condition ID (from the REST API) or token ID
  ws.send(JSON.stringify({
    action: "subscribe",
    markets: ["0x7cb525e831729325d651017f81cbcb6f1adde5011c7b2283babea00b4ae93ae7"]
  }));
};

ws.onmessage = (event) => {
  const msg = JSON.parse(event.data);
  if (msg.type === "snapshot_batch") {
    for (const snap of msg.snapshots) {
      console.log(`${snap.question} [${snap.outcome}]: ${snap.bids.length} bids, ${snap.asks.length} asks`);
    }
  } else if (msg.type === "batch") {
    for (const update of msg.updates) {
      if (update.type === "price_change") {
        for (const asset of update.assets) {
          console.log(`${update.slug} [${asset.outcome}]: ${asset.price}`);
        }
      }
    }
  }
};

What makes PolyNode different

FeaturePolyNodeOther providers
Pending settlements (pre-chain)2–5 seconds early (1–2 blocks)Not available
Decoded Polymarket dataEnriched with market titles, outcomes, slugsRaw logs only
WebSocket filteringBy wallet, token, slug, side, sizeGeneric log filters
Orderbook, candles, statsCLOB proxying + enriched analyticsSeparate service

Base URL

REST:      https://api.polynode.dev
WebSocket: wss://ws.polynode.dev/ws?key=YOUR_KEY
All endpoints require an API key via x-api-key header (REST) or ?key= query param (WebSocket).