Prediction markets
Kalshi API
Search Kalshi prediction markets and read markets, events, series, order books, trades and price history, plus public trader profiles, comments and the leaderboard.
Twelve endpoints read Kalshi’s public market data and Kalshi Social: market prices, order books, trades and candles, event and series details, trader profiles, comments and leaderboards, with Kalshi’s field names, dollar-string prices and cursors.
API availability: Available
http://localhost:3051Public API: https://api.scrapeatlas.com.Endpoints
/v1/kalshi/searchSearch Kalshi markets
Search Kalshi events by keyword, as kalshi.com search does. Each result is an event with its series, category, volume, trending flags and its markets with current Yes bid, ask and last price. Omit query to list the full ranked catalog. Page with cursor.
Reference/v1/kalshi/marketsList Kalshi markets
List Kalshi markets with prices, volume and settlement fields. Filter by event, series, tickers, status and close time. Auto-generated combo markets are excluded unless you set combos to include or only. Page with cursor.
Reference/v1/kalshi/marketGet a Kalshi market
Get one Kalshi market by ticker: the question, Yes and No bid and ask, last price, volume, open interest, rules, strike and settlement result. Settled markets that Kalshi has moved to its archive are returned with archived true. A kalshi.com event link also works when its event has one market.
Reference/v1/kalshi/eventsList Kalshi events
List Kalshi events, the questions that group related markets, with title, category, series and settlement sources. Filter by series, tickers, status and close time, and set includeMarkets to embed each event’s markets. Page with cursor.
Reference/v1/kalshi/eventGet a Kalshi event
Get a Kalshi event and all its markets by event ticker or kalshi.com link. Markets settled into Kalshi’s archive are included with marketsArchived true. Set includeMetadata for images, per-market colors and the competition.
Reference/v1/kalshi/seriesGet a Kalshi series
Get a Kalshi series, the template that recurring events share, by ticker or kalshi.com link: title, frequency, category, tags, fee structure, contract terms, settlement sources and total volume.
Reference/v1/kalshi/orderbookGet a Kalshi order book
Get the order book of a Kalshi market: resting Yes and No bids by price with their sizes, plus the best bid and ask on each side. Kalshi books hold bids only; a Yes ask is one dollar minus the best No bid.
Reference/v1/kalshi/tradesList Kalshi market trades
List the executed trades of a Kalshi market, newest first: price on each side, size, taker side and time. Filter with since and until and page with cursor; paging continues from recent trades into Kalshi’s archive of older trades.
Reference/v1/kalshi/price-historyGet Kalshi price history
Get price candles for one Kalshi market, or for every market of an event in one call: traded price open, high, low, close and mean, Yes bid and ask, volume and open interest per minute, hour or day. Periods without trades carry only the previous price.
Reference/v1/kalshi/profileGet a Kalshi trader profile
Get a public Kalshi trader profile by nickname: bio, followers, following, posts, profile views, top categories and join date, plus the trading metrics the trader shows publicly (volume, dollars traded, profit and loss, markets traded).
Reference/v1/kalshi/commentsGet Kalshi comments
Get public Kalshi Social comments: a trader’s recent comments with the post (trade idea) each one answers, or a post with all its comments. Posts include the market, side, position cost and payout, return and engagement counts.
Reference/v1/kalshi/leaderboardGet the Kalshi leaderboard
Get Kalshi’s public trader leaderboard by projected profit, volume or number of markets traded, optionally for one category such as Politics or Sports.
ReferenceQuick start
Create an API key on your account page, then call the public API. Values below are placeholders.
curl "https://api.scrapeatlas.com/v1/kalshi/search?query=bitcoin&limit=10" \
-H "x-api-key: YOUR_API_KEY"Coverage & limits
- Independent, stateless worker: eight concurrent operations, with up to 16 more waiting at most 8 seconds for a slot; 25-second total deadline, including the wait; at most six upstream HTTP requests per operation, including one shared retry on a network failure or HTTP 5xx. HTTP 429 is never retried.
- Fixed public HTTPS origin api.elections.kalshi.com (Trade API v2 and the public website API). No login, cookies, browser, outbound link visits, media downloads or result storage. The service API key is never forwarded.
- Source reads are paced at up to 8 per second per worker, with a burst of 8; a request waits for its turn within its deadline.
- At most 16 MiB decoded JSON per operation, depth 64 and 600,000 parsed nodes.
- Page sizes: 50 search results, 200 markets, 100 events, 500 trades, 20 trader comments, 100 leaderboard rows. An event returns up to 1,000 markets and a post up to 500 comments.
- Price history: a market request covers at most 5,000 periods; an event request at most 500 periods per market and 20,000 candles in total, keeping the latest periods (candle_limit). Kalshi returns up to 5,000 candles per event read across all its markets (for example 60 hourly periods for 82 markets); a longer event window is moved to end at until, and coverage.window gives the period returned (window_truncated).
- Prices are dollar strings and contract counts fixed-point strings, as Kalshi returns them. Social timestamps (created_ts) are Unix microseconds.
| HTTP | failure.code | Meaning |
|---|---|---|
| 200 | partial | Usable data with market_limit, metadata_unavailable, candle_limit, window_truncated, comment_limit or metrics_unavailable warnings. |
| 400 | invalid_request | Missing, duplicate, malformed or unsupported parameters, a link outside kalshi.com/markets, a price-history window above its period limit, or parameters Kalshi rejected. |
| 401 | unauthorized | Missing or invalid worker API key. |
| 404 | not_found | Unknown market, event, series, post or trader. |
| 429 | upstream_rate_limited | Kalshi rate limited the request. |
| 502 | upstream_challenged | Kalshi refused the public request. |
| 502 | unsupported_page | Malformed, mismatched or non-JSON source data. |
| 502 | response_too_large payload_too_complex | Response exceeded byte or parsing limits. |
| 502 | unsafe_redirect request_limit upstream_error | Bounded source retrieval could not complete. |
| 503 | busy | All worker slots and the waiting queue are occupied. |
| 504 | timeout | Total request deadline expired. |