REST API
Trading Endpoints
REST API traffic is subject to a firm-wide cap of 100 requests per second per firm, averaged over a 1-minute window. This means short bursts above 100 req/sec are permitted as long as the average stays within budget. Some REST endpoints may also enforce additional lower limits, such as the query/report endpoints listed below.Query / Report Endpoints
In addition to the firm-wide REST cap above, these read-heavy endpoints have lower per-firm limits. Cache responses where noted.Combos Endpoints
Upcoming - beta access required. Combos and RFQ API endpoints are not generally available yet. Reach out to institutional@polymarket.us to join the beta test.
RFQ Endpoints
RFQ endpoints have these per-firm limits:Public (Unauthenticated) Endpoints
gRPC Streaming
Ingress rate is averaged over a 1-minute window, allowing short bursts. Exceeding the average limit will result in throttled or rejected messages. This limit applies to all participants.
FIX Protocol
FIX rate limiting is enforced at the FIX gateway level. This limit applies to all participants.
Summary
Rate Limit Response
When rate limited, the REST API returns:429 Too Many Requests
Retry Strategy
When receiving a 429 response:- Stop making requests immediately
- Wait 1 second before retrying
- Implement exponential backoff for repeated 429s
- Consider reducing your request rate
Latency Stopgap on Orders
During periods of increased latency, Polymarket US applies a 5-second stopgap to inbound orders. If an order has been received by Polymarket US but has not been processed within 5 seconds, we reject it to protect you from a bad fill at a stale price. What it applies to:- New orders — rejected if not processed within 5 seconds.
- Order modifications via cancel/replace — also subject to the stopgap.
- Pure cancels are not affected — a standalone cancel is never rejected by this stopgap.
Best Practices
Use Streaming Instead of Polling
The API is designed as a streaming-first system. Instead of repeatedly polling for updates, subscribe to real-time streams:Streaming connections don’t count against the REST rate limit. One streaming connection can replace hundreds of polling requests.
Cache Reference Data
Reference data (instruments, symbols, metadata) changes infrequently -ListInstruments and ListSymbols are limited to just 6 req/min. Cache responses locally:
Batch Operations
Where possible, batch your operations instead of making individual requests:- Use
SearchOrderswith filters instead of fetching orders one by one - Use
ListInstrumentswith symbol filters instead of individual lookups - Subscribe to multiple symbols in a single streaming connection
Monitoring Your Usage
Track your request patterns to stay within limits:Abuse Prevention
Patterns that may result in temporary or permanent restrictions:- Sustained requests above the rate limit
- Polling for data available via streaming
- Requesting the same unchanged data repeatedly
- Automated retry loops without backoff
Troubleshooting Rate Limits
Consistently Hitting Limits
If you’re consistently receiving 429 errors:- Reduce request frequency
- Batch multiple operations where possible
- Cache responses that don’t change frequently (reference data, instrument lists)
- Use streaming endpoints instead of polling
- Contact support to discuss higher rate limits for production use
Need Higher Limits
For production use cases requiring higher limits:- Document your use case and expected volume
- Contact support at onboarding@polymarket.us
- Provide environment (dev, preprod, prod)
- Specify which endpoints you need higher limits for
Next Steps
gRPC Streaming
Replace polling with real-time streams
Authentication
Set up API authentication