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. RFQ requests use the limits in RFQ Endpoints.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
In addition to the firm-wide REST cap above, Combos endpoints have these per-firm limits:RFQ Endpoints
The institutionalpolymarket.v1.RFQAPI endpoints have these per-firm limits, shared across REST and unary gRPC requests:
Each row above has a separate per-firm endpoint bucket with one second of burst capacity. Traffic to one method does not consume another method’s endpoint-specific allowance. Exchange-wide limits also apply.
RFQ rate-limit tiers
Your RFQ tier determines yourCreateQuote and DeleteQuote limits. Each method has its own allowance:
RFQ volume share & tier requirements
Your RFQ volume share is your RFQ-originated maker contracts over the trailing 30 days divided by the total RFQ-originated maker contracts across all firms, including retail participants, over the same period. A fill counts when its passive (maker) order originated from an RFQ. Each filled contract counts once, regardless of its price or the number of combo legs. Once you meet the Earn volume share for a given tier, you are eligible for that tier’s RFQ rate limits. You must keep at least the Maintain volume share to stay eligible for your current tier. Maintain is 80% of Earn. If you drop below the Maintain volume share, your rate limit will not drop immediately. You will have 30 days to get back to at least the Maintain volume share before being moved to a lower tier.
RFQ and FIX tiers use separate volume measures and eligibility thresholds.
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.
The
StreamRFQEvents limit is checked only when opening a stream. It does not limit server-pushed RFQ or quote events on an established stream.
FIX Protocol
FIX rate limiting is enforced at the FIX gateway level. Rate limits are determined by tier.
Tiers are determined by your trading volume share on Polymarket US.
Volume share & tier requirements
Each day, Polymarket US sums your 30-day trailing notional volume (contracts × execution price) and divides it by the same figure across the exchange. This number is your volume share. Once you meet the Earn volume share for a given tier, you are automatically eligible for the tier’s rate limit. You must keep at least the Maintain volume share to stay eligible for your current tier. If you drop below the Maintain volume share, your rate limit will not drop immediately. You will have 30 days to get back above the Maintain volume share before being moved to a lower tier. Each tier has its own Earn and Maintain volume share requirement, seen below.
Accelerated Tier Placement: A Participant may provide verifiable proof of their trailing-30-day notional trading volume on another prediction market venue and be assigned to the tier corresponding to that volume.
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. New
StreamRFQEvents connections are limited to one open attempt per second per firm, so reconnect with backoff.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