Polymarket Data Infrastructure

Real-time Polymarket data.
Direct from the mempool.

Decoded settlement transactions 2 seconds before on-chain confirmation. OHLCV candles, wallet tracking, and metadata for 69,000+ markets — one API.

69K+ Markets
35K+ Metadata Entries
<2s Mempool Latency
14 REST Endpoints

Live Settlements

Watch decoded Polymarket trades from the mempool — before they confirm on-chain.

MEMPOOLLive Settlements
CONNECTING
TXSIDEPRICESIZETIME
Connecting to mempool...
Pending   Confirmedwss://polynode.dev/ws
wss://polynode.dev/ws · Mempool + On-chain

Why PolyNode

The only API that captures Polymarket settlements from the mempool.

Mempool Monitoring

Decode pending settlement transactions before they confirm on-chain. See trades 2 seconds ahead of everyone else.

🔓

Settlement Decoding

Full ABI decoding of matchOrders calldata. Taker wallet, side, price, size, and all maker fills — extracted live.

📈

OHLCV Candles

Price candles at 6 resolutions (1m, 5m, 15m, 1h, 4h, 1d). Built from real settlement data, not delayed feeds.

🔍

Combined Metadata

Market question, slug, outcomes, images, liquidity, volume — enriched on every response. One call instead of separate APIs.

💻

Self-Hostable

Single Rust binary, <2GB RAM. Run your own Polygon node + Redis on any server. No vendor lock-in.

🗃

JSONL Archive

Every settlement persisted to daily-rotated JSONL files. Years of historical data, compressed with zstd.

API Endpoints

14 REST endpoints + WebSocket streaming. All responses enriched with market metadata.

GET /v1/markets

Top markets by 24h volume with prices and metadata.

{
  "count": 100,
  "total": 69482,
  "markets": [{
    "token_id": "0x123...",
    "question": "Will Bitcoin hit $100K?",
    "last_price": 0.72,
    "volume_24h": 48293.50,
    "category": "Crypto"
  }]
}
GET /v1/settlements/recent

Latest decoded settlements from the mempool and on-chain.

{
  "count": 50,
  "settlements": [{
    "tx_hash": "0xabc123...",
    "status": "pending",
    "taker_wallet": "0x385...",
    "taker_side": "BUY",
    "taker_price": 0.72,
    "taker_size": 1500.00,
    "detected_at": 1709136000000
  }]
}
GET /v1/candles/:token_id

OHLCV price candles. 6 resolutions from 1-minute to 1-day.

{
  "token_id": "0x123...",
  "resolution": "1h",
  "candles": [{
    "timestamp": 1709136000,
    "open": 0.68, "high": 0.74,
    "low": 0.67, "close": 0.72,
    "volume": 12500.0
  }]
}
GET /v1/search?q=bitcoin

Full-text search across 35K+ market questions. Sub-millisecond.

{
  "query": "bitcoin",
  "count": 12,
  "results": [{
    "question": "Will Bitcoin hit $100K?",
    "slug": "bitcoin-100k",
    "outcomes": ["Yes", "No"],
    "last_price": 0.72,
    "volume_24h": 48293.50
  }]
}

30-Second Quickstart

Generate a key and make your first request.

cURL
# 1. Generate an API key
curl -s -X POST https://polynode.dev/v1/keys \
  -H "Content-Type: application/json" \
  -d '{"name": "my-bot"}' | jq

# Returns: { "api_key": "pn_live_abc123...", ... }

# 2. Get top markets by volume
curl -s https://polynode.dev/v1/markets?count=5 \
  -H "x-api-key: pn_live_YOUR_KEY" | jq

# 3. Stream live settlements via WebSocket
wscat -c "wss://polynode.dev/ws?key=pn_live_YOUR_KEY"
> {"action":"subscribe","type":"settlements"}

How PolyNode Compares

The only Polymarket API with decoded mempool data.

Feature PolyNode Gamma API CLOB API
Pending TX detection Yes (2s early) No No
Mempool settlements Decoded in real-time No No
OHLCV candles 6 resolutions No Limited
Market metadata Enriched on all responses Yes (separate call) Token IDs only
Wallet tracking Real-time + historical Read-only No
WebSocket streaming Filtered subscriptions No Limited
Historical archive JSONL (daily) Limited history No
Self-hostable Rust binary, <2GB No No
Rate limit 120 req/min Unknown Variable