How to Increase Your Polymarket Rate Limit (2026)

The Short Answer
Three separate limiters on Polymarket share the name "rate limit," and the one you hit decides the fix. Cloudflare IP limits are fixed per endpoint, published as numbers, and cannot be upgraded; they throttle rather than reject. Per-signer CLOB trading buckets are the ones with a ladder: eight tiers from Standard up to Elite, assigned automatically from your maker wallet's trailing 30-day volume, starting at $30,000 for Copper and reaching $10M for Elite, refreshed every three hours. Builder Program tiers govern daily Relayer transactions and are granted by manual approval. If you are being limited on reads, no tier will help and you need to spend fewer requests.
Key Takeaways
- Identify the limiter before you chase a fix. Read throttling, order-bucket rejection and Relayer caps have three different answers.
- Cloudflare limits are per endpoint and per IP, not per account, so there is no tier to buy. They queue requests instead of failing them.
- Trading tiers are automatic. You do not apply; volume on the maker wallet moves you up within about three hours.
- Order and cancel buckets are independent, and cancels are consistently budgeted at twice the order rate.
- A batch is admitted only if the bucket covers every entry, so a batch larger than your burst capacity can never succeed.
Poly-RateLimit-TierandPoly-RateLimit-Remainingcome back on responses, so your current standing is observable rather than guessed.
Which limiter are you actually hitting?
This is the whole question. Getting it wrong means emailing a team who cannot help you, or optimizing a loop that was never the problem.
| Limiter | Applies to | Scoped by | Can you raise it? |
|---|---|---|---|
| Cloudflare IP limits | All REST endpoints, reads included | IP address and endpoint | No, the figures are fixed |
| Per-signer CLOB buckets | Order and cancel requests | Signer address | Yes, automatically by volume |
| Builder Program tiers | Relayer transactions | Builder profile | Yes, by manual approval |
A scanner reading prices meets the first. A market maker placing and pulling quotes meets the second. An application funding other users' wallets meets the third.
The Cloudflare limits are published, and fixed
Polymarket documents a specific number for every endpoint. These are IP-based, enforced through Cloudflare, and when you exceed one your requests are throttled, meaning delayed and queued, rather than rejected outright. Limits reset on sliding windows.
| Endpoint | Limit |
|---|---|
| General rate limiting | 15,000 req / 10s |
CLOB /book, /price, /midpoint | 1,500 req / 10s each |
CLOB /books, /prices, /midpoints | 500 req / 10s each |
CLOB /prices-history | 1,000 req / 10s |
| Gamma general | 4,000 req / 10s |
Gamma /markets | 300 req / 10s |
Gamma /events | 500 req / 10s |
| Data API v1 general | 1,000 req / 10s |
| Data API v2 general | 800 req / 10s |
Relayer /submit | 25 req / 1 min |
Two things follow from this. First, the singular plural distinction is expensive: /book allows 1,500 per 10 seconds while /books allows 500, so if you are reading many outcomes you should be comparing a batched call against three individual ones rather than assuming the batch is cheaper. Second, /markets at 300 per 10 seconds is the tightest read limit most integrations touch, and it is almost always a catalog sync that did not need to run that often.
There is no tier here. The way to have more headroom on Cloudflare limits is to need fewer requests.
The trading tiers are where the ladder is
CLOB order and cancellation requests are evaluated against per-signer token buckets, separate from the Cloudflare layer. Each signer gets an order bucket and a cancel bucket, and activity in one does not consume the other.
Tier eligibility follows the cumulative trading volume of the maker wallet, even where that differs from the signer address. The window is currently 30 days and assignments refresh every three hours.
| Tier | 30-day volume | Order rate | Order burst | Cancel rate | Cancel burst |
|---|---|---|---|---|---|
| Standard | Default | 40/s | 60 | 80/s | 120 |
| Copper | $30,000+ | 60/s | 90 | 120/s | 180 |
| Bronze | $50,000+ | 80/s | 120 | 160/s | 240 |
| Silver | $100,000+ | 200/s | 300 | 400/s | 600 |
| Gold | $500,000+ | 400/s | 600 | 800/s | 1,200 |
| Platinum | $2.5M+ | 450/s | 675 | 900/s | 1,350 |
| Diamond | $5M+ | 525/s | 787 | 1,050/s | 1,575 |
| Elite | $10M+ | 600/s | 900 | 1,200/s | 1,800 |
You do not apply for these. There is no form and no review. Volume on the maker wallet moves you, and the assignment refreshes on a three-hour cycle, so a tier change follows trading rather than correspondence.
Three details that change how you build:
- Cancel budgets are double the order budgets at every tier. That is a deliberate design choice, and it means pulling quotes is never the constraint that placing them is.
- The step from Bronze to Silver is the big one. Order rate goes 80 to 200 and burst 120 to 300, a much larger jump than the steps on either side of it. Above Silver the increases flatten considerably.
- Negative cancel balances stop at Platinum. Standard through Gold allow the cancel bucket to go into debt after a
cancel-all; Platinum and above floor it at zero.
Token costs are not all one. POST /order and DELETE /order cost 1. POST /orders costs the number of orders in the batch. DELETE /cancel-all and DELETE /cancel-market-orders cost 1 plus one per order actually canceled, debited after the result is known, which is how a bucket ends up in debt.
The all-or-nothing rule on batches is worth designing around: a batch is admitted only when the bucket holds enough tokens for every entry, so a batch whose cost exceeds your tier's burst capacity can never be admitted at all. At Standard, that means no single batch above 60 orders will ever succeed. Split it.
Read the headers instead of guessing
Covered requests come back with headers that tell you exactly where you stand, which removes the guesswork entirely.
| Header | What it tells you |
|---|---|
Poly-RateLimit-Tier | The tier applied to this request |
Poly-RateLimit-Remaining | Token balance in the relevant bucket after accounting |
Poly-RateLimit-Reset | When the current wait period ends |
Retry-After | Retry delay in seconds, on 429 responses |
Poly-RateLimit-Warning | true where enforcement would have rejected the request |
Log Poly-RateLimit-Tier on startup and you will never again wonder which tier you are on. Poly-RateLimit-Remaining can be negative after a cancel-all on tiers that permit debt, so compare a batch's token cost against the remaining balance before sending it.
One timing note: the per-signer limiter entered a warning period on 24 July 2026, during which requests are processed and a header flags what would have been rejected. Polymarket said it would announce when live enforcement begins, so treat the header as the source of truth for your own account rather than assuming either state.
Where the Builder Program fits
The Builder Program is a different axis again, and it governs Relayer transactions: the gasless deposit wallet, Safe and Proxy wallet operations where Polymarket subsidizes gas.
| Tier | Daily Relayer transactions | How to get it |
|---|---|---|
| Unverified | 100 per day | Default, no approval |
| Verified | 10,000 per day | Email builder@polymarket.com |
| Partner | Unlimited | High-volume or strategic integrations |
The application wants your Builder API Key, a use case description, expected volume, and supporting material. Polymarket responds within a few business days and verification status shows in your Builder Profile settings.
Before you apply, check whether you need to. Polymarket's own guidance is that if you are not routing orders for other users' wallets, a Relayer API key from polymarket.com/settings?tab=api-keys gives you unlimited daily Relayer transactions without any application. For solo bots and personal dashboards, that is the entire fix.
Needing fewer requests in the first place
Every limiter above rewards the same discipline, and it is the only lever that works against the Cloudflare layer.
Hold a connection rather than polling. A loop re-fetching prices that have not changed is the most common cause of self-inflicted throttling, and streamed updates cost nothing against a request budget.
Cache identifiers. Slugs, condition ids and CLOB token ids are static for the life of a market. Re-resolving them every pass is how a scanner spends its /markets allowance on work it already did.
Separate your lanes. A catalog sync and a latency-sensitive order path should not share an IP or a budget, or a burst in the first delays the second exactly when it matters.
If the underlying reason you are throttled is that you are reading several venues and Polymarket simply noticed first, Predictefy serves it as one of 16 venues on a single schema with request limits published per plan:
| Plan | Requests per minute | API keys | WebSocket streams |
|---|---|---|---|
| Free | 60 | 1 | 2 |
| Builder | 300 | 3 | 20 |
| Pro | 3,000 | 10 | 100 |
| Enterprise | Negotiated | Negotiated | Negotiated |
curl -s "https://data.predictefy.com/api/polymarket/fetchMarkets?sort=volume&limit=20" \
-H "Authorization: Bearer pk_live_YOUR_KEY"
The limiter runs a fixed 60-second window per API key rather than per account, so two keys on one account each carry the full allowance and a scanner and an order path can have separate budgets. Individual keys can also carry a bespoke override applied as a per-second window, so a key provisioned at 50 per second is allowed 50 in any given second. Every handled 429 returns Retry-After as a whole number of seconds.
Swap polymarket for any served venue and the request shape is unchanged. Many teams run both: the venue API for order placement, where the tier ladder above is what matters, and a normalized layer for everything they read.
Frequently Asked Questions
How do I increase my Polymarket rate limit?
For CLOB order and cancel limits, tiers are assigned automatically from your maker wallet's trailing 30-day volume, refreshed every three hours, with Copper starting at $30,000. For Relayer transactions, apply to the Builder Program or obtain a Relayer API key if the wallet is your own.
What are the Polymarket API rate limits?
Cloudflare IP limits are published per endpoint: 1,500 requests per 10 seconds each on CLOB /book, /price and /midpoint, 300 on Gamma /markets, and 15,000 overall. Order and cancel requests are separately metered against per-signer token buckets that vary by tier.
What are the Polymarket trading rate limit tiers?
Eight, by trailing 30-day volume: Standard, Copper at $30,000, Bronze at $50,000, Silver at $100,000, Gold at $500,000, Platinum at $2.5M, Diamond at $5M and Elite at $10M. Order rates run from 40 to 600 tokens per second, with cancel rates double throughout.
How do I check my current Polymarket rate limit tier?
Read the Poly-RateLimit-Tier header returned on any covered response. Poly-RateLimit-Remaining gives the token balance in the relevant bucket, and Poly-RateLimit-Reset gives the time the current wait period ends. Logging the tier at startup removes any need to guess, since assignments refresh every three hours.
Why is my Polymarket batch order always rejected?
A batch is admitted only when the bucket holds enough tokens for every entry, so a batch costing more than your tier's burst capacity can never succeed no matter how long you wait. At Standard that ceiling is 60 orders. Split the batch into smaller requests.