PolyNode uses per-key rate limiting to ensure fair usage. Limits scale with your plan.Documentation Index
Fetch the complete documentation index at: https://polynode.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Tier limits
Firehose = a WebSocket subscription with no filters applied. It receives every event (all settlements, trades, blocks, etc.) at full throughput. Filtered subscriptions — where you specify wallets, tokens, slugs, or size thresholds — use far less bandwidth and don’t count toward your firehose limit.
| Free | Starter ($50/mo) | Growth ($200/mo) | Enterprise ($750/mo) | |
|---|---|---|---|---|
| Rate limit | 120 req/min (2 QPS) | 6,000 req/min (100 QPS) | 18,000 req/min (300 QPS) | 60,000 req/min (1,000 QPS) |
| Enriched endpoints | 1 req/sec | 30 req/sec | 50 req/sec | 100 req/sec |
| WebSocket connections | 1 | 500 | 3,000 | Unlimited |
| Firehose connections | 1 | 100 | 750 | Unlimited |
| Orderbook connections | 1 | 2 | 10 | Unlimited |
| Orderbook market subs | Unlimited | Unlimited | Unlimited | Unlimited |
| API keys | 1 | 3 | 10 | 25 |
Snapshot size (snapshot_count) | 20 | 100 | 200 | 500 |
Snapshot lookback (since) | 30 seconds | 2 minutes | 5 minutes | 5 minutes |
| Key generation | 1 per IP per day | Via dashboard | Via dashboard | Via dashboard |
| Support | Community | Priority | Dedicated + Slack |
Snapshot size vs snapshot lookback — these are two separate snapshot modes controlled by different parameters.
snapshot_count returns the last N events (capped by your tier). since returns all events after a UNIX-ms timestamp within your tier’s lookback window. If you pass both, since takes priority and snapshot_count is ignored. See subscribing for details.Enterprise includes dedicated server infrastructure. Contact josh@quantish.live before activation.
Enriched endpoints (
/v1/trader/*, /v1/leaderboard, /v1/trending, etc.) and data endpoints (/v1/wallets/*/positions, /v1/wallets/*/trades) have separate rate limits from your plan’s main limit. See Enriched endpoints and Data endpoint limits below for details.How it works
- Rate limits are tracked per API key using a sliding window.
- When you exceed the limit, you’ll receive a
429 Too Many Requestsresponse. - The error message includes a Unix timestamp for when you can retry.
Best practices
Use WebSocket for real-time data
Instead of polling REST endpoints, connect via WebSocket for live updates:Cache metadata locally
Market metadata (question, slug, outcomes) changes infrequently. Cache it and only refresh periodically:Batch where possible
Use/v1/markets?count=1000 instead of individual /v1/markets/:id calls to reduce requests.
Use filtered subscriptions
WebSocket subscriptions with filters reduce message volume and processing overhead:Expected WebSocket throughput
WebSocket subscriptions are not rate-limited by requests/min, but message volume varies significantly by subscription type:| Subscription | Typical messages/sec | Notes |
|---|---|---|
| Firehose (no filters) | 50–150 | ~0.5–1.5 Mbps uncompressed |
| Filtered (1 market) | 1–20 | Depends on market activity |
| Filtered (1 wallet) | 0–5 | Most wallets trade infrequently |
| Blocks only | ~0.5 | One per Polygon block (~2s) |
Data endpoint limits
The wallet and market data endpoints proxy to upstream sources and have their own rate limits, separate from your per-key limit.Standard data endpoints
These endpoints share your plan’s normal rate limit and a global throughput cap of 20 upstream calls per second across all data endpoints. This ensures stable upstream performance for all users./v1/wallets/{addr}/positions/v1/wallets/{addr}/trades/v1/wallets/positions(multi-wallet)/v1/markets/{id}/positions/v1/markets/{id}/trades
Onchain enrichment: The wallet positions endpoints check onchain redemption state for resolved positions. This adds a single batched RPC call (~130ms) per request when redeemable positions are present. No extra rate limit cost — it’s included in the same request.
Enriched endpoints
The enriched analytics endpoints have their own per-key rate limit that scales with your tier:| Tier | Limit |
|---|---|
| Free | 1 req/sec |
| Starter | 30 req/sec |
| Growth | 50 req/sec |
| Enterprise | 100 req/sec |
/v1/trader/{wallet}— trader profile with EOA resolution/v1/trader/{wallet}/pnl— PnL time series/v1/leaderboard— top traders/v1/trending— trending markets/v1/activity— platform trade feed/v1/event/{slug}— event details/v1/movers— biggest price movers
Heavy endpoints RATE LIMITED
Some data endpoints fan out many upstream requests per call and have a stricter per-key limit:| Endpoint | Limit | Why |
|---|---|---|
/v1/markets/{id}/positions?includeTrades=true | 60 req/min per key | Each call fetches trade history for every position holder in the market (can be 50-100+ upstream calls) |
429 response with:

