Decoded settlement transactions 2 seconds before on-chain confirmation. Live orderbooks, OHLCV candles, and metadata for 69,000+ markets — one API.
Real-time CLOB data streaming via WebSocket. Three markets, three connections, zero delay.
The only API that captures Polymarket settlements from the mempool.
Decode pending settlement transactions before they confirm on-chain. See trades 2 seconds ahead of everyone else.
WebSocket streaming of CLOB orderbook updates. Best bid/ask, spread, and full depth — updated in real-time.
Price candles at 6 resolutions (1m, 5m, 15m, 1h, 4h, 1d). Built from live settlement data, not delayed feeds.
Market question, slug, outcomes, images, liquidity, volume — enriched on every response. One call instead of Gamma + CLOB.
Single Rust binary, <2GB RAM. Run your own Polygon node + Redis on any server. No vendor lock-in.
Every settlement persisted to daily-rotated JSONL files. Years of historical data, compressed with zstd.
15 REST endpoints + WebSocket streaming. All responses enriched with market metadata.
/v1/markets Top markets by 24h volume with prices, metadata, and orderbook data.
{
"count": 100,
"total": 69482,
"markets": [{
"token_id": "0x123...",
"question": "Will Bitcoin hit $100K?",
"last_price": 0.72,
"volume_24h": 48293.50,
"mid_price": 0.715,
"category": "Crypto"
}]
} /v1/orderbook/:token_id Full CLOB orderbook with bids, asks, spread, and depth.
{
"token_id": "0x123...",
"best_bid": 0.71,
"best_ask": 0.73,
"spread": 0.02,
"mid_price": 0.72,
"bids": [["0.71", "1500.00"], ...],
"asks": [["0.73", "2100.00"], ...]
} /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
}]
} /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"],
"mid_price": 0.72,
"volume_24h": 48293.50
}]
} Generate a key and make your first request.
# 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"} The only Polymarket API with decoded mempool data.
| Feature | PolyNode | Gamma API | CLOB API |
|---|---|---|---|
| Pending TX detection | Yes (2s early) | No | No |
| Live orderbook | Yes (WebSocket) | No | Yes |
| 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 | Orderbook only |
| Historical archive | JSONL (daily) | Limited history | No |
| Self-hostable | Rust binary, <2GB | No | No |
| Rate limit | 120 req/min | Unknown | Variable |