Exceeding a rate limit returns 429 Too Many Requests. Limits are enforced per source IP and Cloudflare location, so requests using different API keys from the same IP share counters at that location.
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.
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.