Kalshi API

REST, WebSocket and FIX access to a CFTC-regulated event exchange.

by Kalshi

Last updated

US persons
Yes
Taker fee
1.75%
Settlement
Cash
Liquidity
CLOB

What it is

The programmatic surface of a CFTC-regulated event exchange, and the most conventional API in this category — it reads like a futures venue rather than like a crypto protocol. REST at external-api.kalshi.com/trade-api/v2 covers series, events, markets, order books, trades and candlesticks on the public side, and orders, fills, positions, settlements and balances behind authentication. A WebSocket carries incremental order book updates, market tickers, public trades and your own fills. There is a FIX interface as well, with order entry, market data, drop-copy and RFQ messages, for firms that already speak it.

Two things set it apart from the on-chain APIs here. First, the account is a regulated relationship rather than a wallet: verified identity, then an RSA key pair generated in the account settings, then a signature on every request. Second, Kalshi documents its limits in numbers — the rate-limit page is a token-bucket table with per-tier budgets, which is a level of specificity nobody else in this category publishes.

There is a full demo environment on separate hosts with separate credentials, which makes this the one venue in the category where an integration can be rehearsed without live money.

Availability

Kalshi is a designated contract market, and the account is the gate. Identity verification happens at signup and, in Kalshi's own words, no trade can be placed until the digital verification process is complete; the exchange states plainly that it collects the information to comply with US law and CFTC regulations.

It is no longer US-only. Kalshi's help centre says trading from many countries outside the United States is possible, subject to the Member Agreement, and that some international jurisdictions remain restricted — the list lives in the representations and warranties section of that agreement rather than in the API docs. Country of residence is confirmed at signup.

Market data sits outside all of this. An unauthenticated REST call answers from anywhere, so a working data pipeline is not evidence that the same machine can place an order.

Pricing

The API costs nothing and there is no data plan. What costs money is the fill.

Kalshi's fee model is quadratic: the exchange's own series records expose fee_type and a fee_multiplier, and the worked example in its fee-rounding documentation prices a single contract at 5.5 cents at $0.00363825 — exactly 0.07 × price × (1 − price). That is the same shape as Polymarket's fee and the same peak at 50 cents, which makes the two roughly comparable at a given price. Makers are not charged under the default fee type, but some series use a maker-fee variant, and event-level overrides can layer on top of the series structure; both are readable through the fee-change endpoints rather than assumed.

Two rounding details are documented and easy to miss: fees are computed to six decimals and rounded up, and a rounding fee then pulls your balance back onto its precision grid, with accumulated overpayment rebated across the fills of one order. Settlement fees are zero for a plain yes/no determination.

The full fee schedule is a PDF on Kalshi's main site. It is linked from the help centre, and the site declined automated requests for it on 19 September 2026, so the arithmetic above comes from the documentation and the API rather than from that document.

Markets & resolution

Kalshi resolves its own markets, as the exchange, under the rules of each series — which is a materially different arrangement from an oracle vote, and the reason the contract terms matter. Each series record in the API carries a settlement_sources list with the name and URL of the source, links to the contract terms and the product certification filed with the CFTC, and any additional prohibitions on who may trade it (source-agency employees, holders of material non-public information).

Settlement itself is mechanical: the winning side pays one dollar per contract, netted, shortly after expiration, though the documentation is candid that timing varies with the market type, data availability and manual review. Where an initial publication is materially in error, some series hold expiration until a corrected release or fall back to a last fair price determined by the exchange — again, stated per series rather than globally.

Candlesticks come in 1-minute, 1-hour and 1-day periods, per market or batched, with a separate historical endpoint for markets that have already been archived.

Integrations

REST, WebSocket and FIX, with official Python and TypeScript SDKs. Request signing is an RSA signature over timestamp, method and path — with the query string stripped, which is the single most common implementation error. The host does not enter the signed payload, so the recommended and legacy hosts sign identically.

Operational details the docs get right: cursor pagination everywhere, a separate token bucket for reads and writes, batch endpoints that cost the sum of their items rather than a discount, an exchange-status endpoint, sharding with per-shard write budgets, subaccounts, and AWS PrivateLink for members at Premier tier and above.

Limitations

  • The WebSocket is not public. Public channels still require an authenticated handshake, so there is no keyless live stream.
  • 429 carries no Retry-After and no rate-limit headers. You are expected to model the bucket yourself and back off.
  • Higher tiers are earned by volume, not bought. Advanced is a call away; everything above it is a share of exchange volume reviewed daily.
  • Historical data is a second API. Anything past the cutoff moves to parallel endpoints, and the cutoff keeps advancing, so a backfill written against the live endpoints will quietly lose its tail.
  • Batch orders are all-or-nothing against your bucket. A 25-order create needs its full 250 tokens on arrival or the whole batch is rejected.
  • The fee schedule is a PDF behind a bot check, which makes the most load-bearing number on the venue the hardest thing to re-verify on a schedule.

Alternatives

For the same shape of data without an account or an identity check, the Polymarket Gamma API and the Polymarket CLOB API are the on-chain counterparts — no KYC, no US trading. The Limitless API is the smaller Base-native book with the same keyless read and an MCP server on top.

Specs

Interfaces
API, websocket, Python
Export
JSON
Available in
US, Global
KYC required
Yes
Market subjects
Politics, Sports, Macro, Crypto, Science, Culture
Resolved by
The exchange settles each market under the rules of its series, against the settlement source that series names — for the NYC temperature series, The Weather Company.
Maker fee
0%
Platforms
Library
AI features
None
Capabilities
Order book, Automation, Live trading, Paper trading, Portfolio tracking
Pricing verified
Availability verified
Markets verified

Also from Kalshi

Background

How this part of the sector works, rather than which product to pick.

Also worth comparing

  • Polymarket US APIA keyless public gateway for reading, and a signed key behind KYC for trading.
  • Futuur APIOne question, two order books — play money and real money, selected per request.
  • Limitless APIREST and WebSocket for markets, books, candles and trading on Base.
  • Manifold APIEvery read is keyless, the server is MIT-licensed, and the currency is play money.
  • Polymarket CLOB APIOrder books, prices and order placement on Polymarket's matching engine.
  • Polymarket Gamma APIPolymarket's read-only catalogue of events, markets, series and tags.

Named as a replacement for

FAQ

Can I read Kalshi market data without an account?

Yes, over REST. Series, events, markets and order books answer unauthenticated GETs — verified on 19 September 2026 against the production host. The WebSocket is different — the handshake itself returns 401 without signed headers, even for channels that only carry public data.

What are the Kalshi API rate limits?

A token bucket per account tier. Most endpoints cost 10 tokens; the entry Basic tier refills 200 read tokens and 100 write tokens per second, and tiers run up to 10,000 read tokens per second. Divide budget by cost for your sustained rate, and read your live figures from the account limits endpoint.

How far back does Kalshi market data go through the API?

Live endpoints stop at a moving cutoff. Markets, candlesticks, trades, orders and positions older than their cutoff timestamp move to a parallel set of historical endpoints, and the cutoff advances over time. Query the cutoff endpoint rather than assuming a fixed window.

Does using the Kalshi API require identity verification?

Yes, because the key belongs to an exchange account. Kalshi verifies identity at signup to comply with CFTC rules, and no trade may be placed before that is complete. The API key itself is an RSA key pair generated inside an already-verified account.