NEW: Live arbitrage across 10+ prediction markets.Arbitrage →
← Index
APISep 20, 2026

How to Increase Your Kalshi Rate Limit (2026)

How to Increase Your Kalshi Rate Limit (2026)

The Short Answer

There are two ways up and most developers only need the first. Basic to Advanced is a single self-serve call to POST /account/api_usage_level/upgrade, it is free, and the grant is permanent. The only criterion is that at least one of your last 100 Predictions orders was created through the API. That takes you from 200 read and 100 write tokens per second to 300 and 300. Everything above Advanced, meaning Expert through Prestige, is earned automatically from trading volume or assigned by Kalshi, and the volume thresholds are far beyond what a typical bot generates. The third option, and the one that helps most people fastest, is spending fewer tokens for the same work.

Key Takeaways

  • One API call triples your write budget, permanently, for free. Most accounts never make it.
  • The upgrade has an eligibility criterion that is easy to satisfy and easy to miss: one API-created order in your last 100.
  • Above Advanced, tiers are granted by a daily volume review, not by asking.
  • Earn and Keep thresholds differ, so a quiet week does not immediately cost you a tier you already hold.
  • Read and Write are independent buckets, so a read-heavy scanner never starves your order path.
  • Shard-targeted order writes draw on a per-shard bucket that carries your full tier budget, which multiplies write capacity without any tier change.

First, find out where you actually stand

Before changing anything, ask the API what it thinks your limits are. Guessing from documentation is how people upgrade something they already had.

GET /trade-api/v2/account/limits

The response carries your usage_tier, the refill_rate and bucket_capacity for both the read and write buckets, and a grants array. Each grant records a level, an optional expires_ts and a source of either volume or manual. Your tier is the highest level among your active grants, and a grant with no expiry is permanent.

If you are chasing a volume tier, there is a second endpoint that tells you how close you are rather than leaving you to compute it:

GET /trade-api/v2/account/api_usage_level/volume_progress

This returns the latest cron-computed progress toward the volume-based tiers on the predictions lane, with volume reported as fixed-point contract counts. It is the honest way to decide whether Expert is within reach or whether you should stop thinking about it.

The free upgrade most accounts never claim

Basic is what you get for signing up. Advanced is one POST away, and Kalshi grants it permanently.

POST /trade-api/v2/account/api_usage_level/upgrade

Three things worth knowing before you call it:

  • There is a criterion. At least one of your last 100 Predictions orders must have been created via the API. If you have only ever traded through the web interface, place one order programmatically first.
  • It is currently Predictions only. The Perps lane has its own tiers and its own budgets, checked at GET /account/limits/perps.
  • The call itself costs 30 tokens, three times the default endpoint cost. That matters only if you are already throttled when you make it.

What you get is a jump from 200 read and 100 write tokens per second to 300 and 300. At the default cost of 10 tokens per request, that is 20 reads per second becoming 30, and 10 writes per second becoming 30. The write budget tripling is the part that matters, because writes are where a strategy actually feels the ceiling.

What does it take to go higher?

Expert and above are not requestable. Once a day Kalshi reviews your trading volume and grants a tier if you qualify, using a specific definition:

volume share = trailing 30-day volume / (previous month's exchange volume x 2)

Your trailing 30-day volume counts both sides of every trade you are part of, as maker and as taker. The denominator doubles the previous calendar month's total exchange volume to match that double counting. A qualifying review grants the tier for 30 days, and each daily review renews the window while you keep qualifying.

TierRead budgetWrite budgetEarnKeep
Basic200100SignupSignup
Advanced300300One API callPermanent
Expert6006000.075%0.05%
Premier1,0001,0000.125%0.10%
Paragon2,0002,0000.25%0.20%
Prime4,0004,0000.50%0.40%
Prestige10,0008,0001.00%0.80%

The two-threshold design is deliberate and worth understanding. Earn is what you need to gain the tier, Keep is the lower bar to hold it. Falling below Keep does not drop you immediately; the tier lapses only when your current 30-day grant runs out. You also keep your best grant at each level, so a longer-lived manual grant is never shortened by a volume grant.

Be realistic about those percentages. Expert, the first earned tier, asks for 0.075% of double the exchange's monthly volume. That is a serious trading operation, not a side project. Most developers will sit on Advanced permanently, and once you are streaming rather than polling, 30 reads per second is a great deal more than it sounds. Trading more to chase a tier is a bad reason to trade more, and none of this is trading advice.

How do you get more throughput without changing tier?

This is where the real headroom is for almost everyone, because Kalshi's token model has several properties that most integrations leave on the table.

Shard-targeted writes each get your full budget. A single REST order create, cancel, decrease or amend that names an exchange_index of 1 or higher bills to a Write bucket scoped to that shard, and every shard's bucket carries your entire tier budget. Auto-routed traffic, meaning exchange_index of -1 or omitted, bills every shard at once. Targeting shards explicitly is the difference between one write budget and several.

Bursting is banked, above Basic. Write buckets above Basic, and Basic and Advanced Read buckets, hold two seconds of budget. Sit quiet for two seconds and you can spend twice your per-second budget in one go. That suits an event-driven client that waits for the market to move and then places a block, which is exactly what most strategies do.

Read and Write are independent. Catalog polling cannot starve order placement, because they draw on different buckets. If you have been rationing reads to protect your order path, you did not need to.

Not every endpoint costs 10. The default is 10 tokens, but the authoritative list of exceptions lives at GET /account/endpoint_costs. Cancels, for instance, are cheaper than creates. Read that list before assuming a loop is expensive.

Batching does not save tokens. A 25-order create batch costs 25 times 10, the same as sending them individually, and the whole 250 must be available when it arrives or the entire batch is rejected. Batch for atomicity and round trips, not for budget.

429 carries no penalty. A rate-limited request returns {"error": "too many requests"} with no cooldown and no Retry-After header. The bucket keeps refilling, so at a 1,000 token per second refill a 10-token order is affordable again 10 milliseconds later. Back off exponentially anyway, since a tight retry loop spends the recovery on failures.

When the ceiling is the wrong problem

All of the above raises your ceiling on one venue. If the reason you are throttled is that you are reading several venues and Kalshi is simply the one that noticed first, a higher Kalshi tier does not solve it.

Predictefy serves Kalshi as one of 16 venues on a single schema, with request limits published per plan:

PlanRequests per minuteAPI keysWebSocket streams
Free6012
Builder300320
Pro3,00010100
EnterpriseNegotiatedNegotiatedNegotiated
curl -s "https://data.predictefy.com/api/kalshi/fetchOrderBook?outcomeId=OUTCOME_ID" \
  -H "Authorization: Bearer pk_live_YOUR_KEY"

The limiter uses a fixed 60-second window per API key rather than per account, so two keys on one account each carry the full allowance: give your scanner one and your order path another. 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, and both SDKs consume it.

Swap kalshi for any served venue and the request shape is unchanged. Many desks run both: the venue API at full tier for the exchange they trade hardest, and a normalized read layer for the other fifteen.

Frequently Asked Questions

How do I increase my Kalshi API rate limit?

Call POST /account/api_usage_level/upgrade to move from Basic to Advanced. It is self-serve, free and permanent, requiring only that one of your last 100 Predictions orders came through the API. Tiers above Advanced are granted automatically from trading volume rather than on request.

What are the Kalshi API tiers?

Seven on the predictions lane: Basic, Advanced, Expert, Premier, Paragon, Prime and Prestige. Read budgets run from 200 to 10,000 tokens per second and write budgets from 100 to 8,000. Basic comes with signup, Advanced is one API call, and the rest are earned by volume.

How do I check my current Kalshi rate limit tier?

Call GET /account/limits, which returns your usage_tier, the refill rate and capacity of both buckets, and a grants array showing each grant's level, expiry and whether it came from volume or was assigned manually. Perps limits live at a separate endpoint.

Does Kalshi drop your tier if you stop trading?

Not immediately. Each tier has a lower Keep threshold than its Earn threshold, and falling below Keep does not revoke the tier. It lapses only when your current 30-day grant expires, so a brief quiet spell does not cost you a tier you have already earned.

Do batch orders use fewer Kalshi tokens?

No. Every item in a batch is billed separately, so 25 order creates cost 250 tokens whether sent together or individually. The full amount must be available when the batch arrives or the entire batch is rejected. Batch for atomicity and fewer round trips, not for budget.