Real photo by Rob Wingate / Unsplash, used under the Unsplash License.
This page was rechecked against Kalshi's official API documentation on July 17, 2026. The old rule of thumb that standard access is “about 10 requests per second” is no longer an accurate description of the published system. Use the live account and endpoint-cost endpoints in production rather than hard-coding this article's table forever.
Kalshi publishes the following per-second token refill rates. Read and write budgets are independent: exhausting one does not mean the other is also empty.
| Tier | Read tokens/sec | Write tokens/sec | Default-cost reads/sec | Default-cost writes/sec |
|---|---|---|---|---|
| Basic | 200 | 100 | 20 | 10 |
| Advanced | 300 | 300 | 30 | 30 |
| Premier | 1,000 | 1,000 | 100 | 100 |
| Paragon | 2,000 | 2,000 | 200 | 200 |
| Prime | 4,000 | 4,000 | 400 | 400 |
The final two columns are calculations for an endpoint at the documented default cost of 10 tokens: for example, Basic read capacity is 200 ÷ 10 = 20 calls per second at steady state. They are not separate limits published by Kalshi. An endpoint that costs 2 tokens can be called five times as often as a 10-token endpoint, assuming no other traffic consumes that bucket.
Kalshi also says it may adjust a member's tier, including downgrading higher tiers after prolonged inactivity. A member can request an upgrade through support with a description of the use case. Do not promise yourself a particular tier based on funding level or trading volume; the current public page does not make those claims.
Most authenticated requests currently cost 10 tokens, but several operations are cheaper. The API reference identifies exceptions, and Kalshi exposes a public endpoint that lists all non-default costs:
GET /trade-api/v2/account/endpoint_costs
The response includes default_cost and an endpoint_costs array with method, path, and token cost. That makes it safer to load costs during startup than to maintain a handwritten list. The endpoint currently documents a default cost of 10.
25 × 10 = 250 tokens. Twenty-five cancellations at 2 tokens each cost 50. Batching may simplify transport, but it does not collapse 25 metered items into one.An authenticated client can query:
GET /trade-api/v2/account/limits
The current response model returns:
usage_tier — the account's assigned API tier;read.refill_rate and write.refill_rate — tokens added per second;read.bucket_capacity and write.bucket_capacity — maximum tokens each bucket can hold.Use these values as runtime configuration. A client that merely assumes “Advanced means 300/300” cannot detect an account-level change or a future documentation update.
For tiers above Basic, the write bucket can hold two seconds of its per-second budget. Traffic below the steady rate builds temporary headroom, which an event-driven client can spend in a burst. The bucket continuously refills and requests drain their endpoint cost.
Basic is the exception: its write bucket holds one second of budget, so there is no accumulated two-second write burst. In either case, a request is accepted again as soon as the affected bucket contains enough tokens; Kalshi documents no separate enforced cooldown.
Read the returned bucket_capacity instead of implementing the two-second rule as an eternal constant.
When a bucket does not have enough tokens, Kalshi returns 429 Too Many Requests with an error body indicating too many requests. The rate-limits page says these responses currently do not include Retry-After or X-RateLimit-* headers.
A resilient client should:
A fixed “sleep one minute” is not supported by the current docs, and immediately retrying every failed request can amplify the overload.
For live order books, trades, market status, and fills, Kalshi provides an authenticated WebSocket API. Streaming changes is usually a better architecture than repeatedly downloading snapshots, but it is not “unlimited.” Kalshi's API changelog says WebSocket connections per user are limited by usage tier, with a default beginning at 200 and increasing with API tier.
The current rate-limits page does not publish a complete WebSocket tier matrix. Therefore this guide does not invent one or claim that WebSocket connections share the REST read bucket. Treat REST token budgets and WebSocket connection/subscription behavior as separately documented controls.
/account/limits after authentication./account/endpoint_costs and fall back to its returned default.Kalshi publishes per-second token budgets, not one universal requests-per-second number. Current read/write budgets are Basic 200/100, Advanced 300/300, Premier 1,000/1,000, Paragon 2,000/2,000, and Prime 4,000/4,000 tokens per second.
For an endpoint at the current default cost of 10 tokens, Basic tier has a steady-state ceiling of 20 read requests or 10 write requests per second. Cheaper endpoints can support more requests; batch items are charged individually.
No. Kalshi documents that every item in a batch is billed separately. A batch of 25 default-cost order creates costs 250 write tokens, while 25 cancellations at 2 tokens each cost 50.
The authenticated endpoint returns usage_tier plus read and write objects. Each bucket includes refill_rate in tokens per second and bucket_capacity, the maximum tokens the bucket can hold.
Treat read and write buckets independently, pause the affected queue, and retry with exponential backoff plus jitter. Kalshi documents that 429 responses currently omit Retry-After and X-RateLimit-* headers, so clients must pace retries themselves.
The published token table describes authenticated API request budgets. Kalshi's changelog separately says WebSocket connections per user are limited by usage tier, with a default beginning at 200 and increasing by tier; it does not publish the full WebSocket tier matrix on the rate-limits page.
Technical and educational information only. API behavior, limits, endpoints, and eligibility can change. Query the live account endpoints and check Kalshi's official documentation before relying on any value in production. Kalshi View is independent and is not affiliated with Kalshi Inc.