Skip to main content
Rate limits are enforced per API key. Exceeding them returns 429 Too Many Requests.

Limits

The Retail API enforces a global rate limit of 20 requests per second per API key across all endpoints.

When you’re rate limited

Stop immediately, wait at least 1 second, then retry with exponential backoff:

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.
These rejects carry the message Global Rate Limit Exceeded, but they are not an actual rate limit. You do not need to throttle your traffic in response to them. Treat them as a transient latency reject, not a signal to back off.
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.
You can always cancel an order before you have received an acknowledgement, and even before it has been processed.

Use WebSocket instead of polling

The single most effective way to stay within limits is to stop polling and use WebSocket streams. One persistent connection replaces hundreds of repeated REST calls.

Cache reference data

Market and event metadata changes infrequently. Fetch it once on startup and refresh periodically rather than on every request.

For automated systems

If you’re running an automated trading system and need higher limits for production:
  1. Document your use case and expected request volume
  2. Email support@polymarket.us
  3. Include which endpoints you need higher limits for