Rate Limits
Rate limits are enforced per API key using Redis sliding-window counters with both per-second (RPS) and per-minute (RPM) buckets.Tiers
| Tier | Requests/sec | Requests/min | Max WS Connections | Max Batch Size |
|---|---|---|---|---|
free | 5 | 300 | 2 | 5 |
pro | 20 | 1,200 | 10 | 20 |
enterprise | 50 | 3,000 | 50 | 50 |
Rate Limit Response
When you exceed your limit, the API returns HTTP 429:Retry-After header tells you exactly how many seconds to wait.
Handling Rate Limits
Implement exponential backoff with theRetry-After header:
Best Practices
Use Batch Endpoints
POST /v1/orders/batch and POST /v1/prices/batch let you combine multiple
operations into a single request, dramatically reducing your request count.Use WebSocket Feeds
Subscribe to
WS /v1/ws/prices instead of polling GET /v1/markets.
WebSocket connections don’t count against your REST rate limit.Cache Market Metadata
Market metadata (slug, question, outcomes) changes infrequently.
Cache it locally and only refresh periodically.
Idempotency Keys
Use
Idempotency-Key headers to safely retry failed requests
without risking duplicate orders.Next Steps
- String Numerics — Why all numbers are strings
- Batch Orders — Reduce request count with batching