Event and market monitoring
Use Kalshi endpoints to turn event and market monitoring into repeatable API requests with documented inputs and JSON responses.
Collect Kalshi events, markets, series, recent trades, order books, exchange schedule, and historical market candlesticks as normalized JSON for dashboards and research. Not investment advice or real-time trading data.
Extract Kalshi events, markets, series, trades, order books, and historical market data as structured JSON from credential-free public exchange data.
Endpoint families
6
Documented params
84
Examples
21
Live catalog snapshot
Active endpoints
21
Methods
GET
Required params
32
Schema refs
21
{
"platform": "Kalshi",
"endpoint": "kalshi-events",
"method": "GET",
"path": "/kalshi/events",
"auth": "apiKey"
}Related use cases
Use cases
Extract Kalshi events, markets, series, trades, order books, and historical market data as structured JSON from credential-free public exchange data.
Use Kalshi endpoints to turn event and market monitoring into repeatable API requests with documented inputs and JSON responses.
Use Kalshi endpoints to turn order book and trade research into repeatable API requests with documented inputs and JSON responses.
Use Kalshi endpoints to turn historical market data collection into repeatable API requests with documented inputs and JSON responses.
Managed execution
Every figure below is read from the live Kalshi endpoint catalog — 21 endpoints, 84 documented request parameters, and 21 published response schemas — the same catalog Docs and Playground run against.
21 documented Kalshi endpoints, grouped into 8 request families — Historical, Event and Market, plus 5 more.
84 request parameters are documented across those Kalshi endpoints, 32 of them required — the full input contract is public before you write any integration code.
21 of the 21 Kalshi endpoints ship a recorded example response, and 21 carry a documented response schema — you can code against the real JSON before the first request.
Kalshi endpoints document their error responses (400, 404, 429, 500 and 503) alongside the success schema, so a block, a rate limit, or a missing record comes back as a typed error rather than silently empty data.
21 hosted MCP tools back the Kalshi endpoints, so an agent can call the same routes with the same parameters and the same JSON contract, with no custom glue.
Coverage map
These cards are generated from the active endpoint catalog, so the landing page reflects the same API surface used by Docs and Playground.
/kalshi/historical/markets
/kalshi/event/{event_ticker}
/kalshi/market/{ticker}
/kalshi/markets
/kalshi/events
/kalshi/exchange/status
Featured endpoints
/kalshi/eventsReturns normalized Kalshi event rows from credential-free public market-data JSON.
Response notes
- Uses Kalshi's unauthenticated public market-data API. - `data.cursor` is present when Kalshi returns a next-page cursor. - Invalid `status`, `min_close_ts`, or `min_updated_ts` values return invalid-parameter errors before upstream IO. Example response: ```json { "code": 200, "msg": "OK", "data": { "limit": 3, "cursor": "next", "source_url": "https://external-api.kalshi.com/trade-api/v2/events?limit=3", "fetched_at": "2026-06-07T14:00:00Z", "events": [ { "event_ticker": "KXELONMARS-99", "series_ticker": "KXELONMARS", "title": "Will Elon Musk visit Mars in his lifetime?", "sub_title": "Before 2099", "category": "World" } ] } } ```
MCP tool kalshi_events
/kalshi/event/{event_ticker}Returns one normalized Kalshi event row and its normalized markets from credential-free public market-data JSON.
Response notes
- Uses Kalshi's unauthenticated public market-data API. - Invalid or empty event tickers return invalid-parameter errors before upstream IO. - Missing upstream events return not-found errors. Example response: ```json { "code": 200, "msg": "OK", "data": { "event": { "event_ticker": "KXELONMARS-99", "series_ticker": "KXELONMARS", "title": "Will Elon Musk visit Mars in his lifetime?", "sub_title": "Before 2099", "category": "World" }, "markets": [ { "ticker": "KXELONMARS-99", "event_ticker": "KXELONMARS-99", "title": "Will Elon Musk visit Mars before Aug 1, 2099?", "status": "active", "last_price": 0.08 } ], "source_url": "https://external-api.kalshi.com/trade-api/v2/events/KXELONMARS-99", "fetched_at": "2026-06-07T14:00:00Z" } } ```
MCP tool kalshi_event
/kalshi/marketsReturns normalized Kalshi market rows from credential-free public market-data JSON. The `status` enum accepts `unopened`, `open`, `closed`, and `settled`.
Response notes
- Uses Kalshi's unauthenticated public market-data API. - Invalid `status` values return invalid-parameter errors before upstream IO. - The upstream response status field can contain exchange lifecycle values such as `active`; the query `status` filter still only accepts `unopened`, `open`, `closed`, and `settled`. - This endpoint is not investment advice or real-time trading data. Example response: ```json { "code": 200, "msg": "OK", "data": { "limit": 3, "source_url": "https://external-api.kalshi.com/trade-api/v2/markets?limit=3", "fetched_at": "2026-06-07T14:00:00Z", "markets": [ { "ticker": "KXELONMARS-99", "event_ticker": "KXELONMARS-99", "title": "Will Elon Musk visit Mars before Aug 1, 2099?", "status": "active", "last_price": 0.08, "yes_bid": 0.08, "yes_ask": 0.1, "volume": 94840.88 } ] } } ```
MCP tool kalshi_markets
/kalshi/market/{ticker}Returns one normalized Kalshi market row from credential-free public market-data JSON.
Response notes
- Uses Kalshi's unauthenticated public market-data API. - Invalid or empty market tickers return invalid-parameter errors before upstream IO. - Missing upstream markets return not-found errors. - This endpoint is not investment advice or real-time trading data. Example response: ```json { "code": 200, "msg": "OK", "data": { "market": { "ticker": "KXELONMARS-99", "event_ticker": "KXELONMARS-99", "title": "Will Elon Musk visit Mars before Aug 1, 2099?", "status": "active", "last_price": 0.08, "yes_bid": 0.08, "yes_ask": 0.1, "volume": 94840.88 }, "source_url": "https://external-api.kalshi.com/trade-api/v2/markets/KXELONMARS-99", "fetched_at": "2026-06-07T14:00:00Z" } } ```
MCP tool kalshi_market
/kalshi/market/{ticker}/orderbookReturns normalized yes/no bid levels for one Kalshi market ticker from public orderbook JSON.
Response notes
- Uses Kalshi's unauthenticated market orderbook JSON. - Kalshi returns bid levels for yes and no sides; no ask levels are returned directly. Example response: ```json { "code": 200, "msg": "OK", "data": { "ticker": "KXELONMARS-99", "yes": [ { "price": 0.08, "size": 185.72 } ], "no": [], "raw_unit_hint": "dollars" } } ```
MCP tool kalshi_market_orderbook
/kalshi/tradesReturns normalized recent Kalshi market trades from credential-free public market-data JSON.
Response notes
- Uses Kalshi's unauthenticated public market-data API at `/markets/trades`. - Trade prices are normalized from dollar fields such as `yes_price_dollars` and `no_price_dollars`. - `min_ts` must be before `max_ts` when both are provided, and timestamp ranges are capped at 366 days. - This endpoint is not investment advice or real-time trading data. Example response: ```json { "code": 200, "msg": "OK", "data": { "limit": 3, "ticker": "KXELONMARS-99", "trades": [ { "trade_id": "9126fe1f-7233-7c75-2c37-06ce7841bbe3", "ticker": "KXELONMARS-99", "created_time": "2026-06-07T07:23:05Z", "count": 2, "yes_price": 0.09, "no_price": 0.91, "taker_side": "no", "taker_book_side": "ask" } ] } } ```
MCP tool kalshi_trades
Related APIs
Prediction Markets
Collect Polymarket event and market detail, token prices, order books, midpoints, spreads, price history, tags, sports, leaderboards, and trade activity as normalized JSON for dashboards, research, and agent-native workflows. Not investment advice or real-time trading data.
Prediction Markets
Collect Metaculus questions, community forecasts and forecast history, question metadata, options, and comment feeds as normalized JSON for research and tracking. Not investment, forecasting, or decision advice.
How to scrape Kalshi
Kalshi is a regulated event exchange whose public market data is credential-free but split across live and historical services. Crawlora's 21 Kalshi endpoints return events, markets, series, order books, trades, schedules, and historical candlesticks as normalized JSON. Research data, not investment advice or a trading connection.
List events with a status of open, closed, or settled — optionally with nested markets — or list series and open one by its ticker.
Markets are addressed by ticker: market detail, order book, and trades all take it, and market lists filter by event or series ticker.
Market and event history take start and end timestamps with a period interval, and batch variants take several market tickers at once.
Exchange status and schedule tell you whether the exchange is open, and the historical-cutoff endpoint tells you how far back the historical services reach.
FAQ
Kalshi publishes credential-free public market-data JSON, which is what these endpoints read. Crawlora is not affiliated with Kalshi and this is not a trading connection — it is read-only data behind one key with a consistent response shape.
The live set covers currently listed events, markets, order books, and trades. The historical set covers settled and archived markets, and the historical-cutoff endpoint tells you the boundary between them so you know which to query for a given date.
Market history takes a ticker with start and end timestamps and a period interval. The batch variant takes a list of market tickers, so you can chart every market in an event at once.
No. These endpoints are read-only market data for dashboards and research. Crawlora is not a broker or an investment adviser, and nothing here is investment advice.
Yes. Kalshi's official API assigns every new account its default Basic tier — 200 read / 100 write tokens per second — and reserves the higher Advanced through Prime tiers for accounts that clear a trailing 30-day trading-volume threshold or get manually upgraded by Kalshi. A research or dashboard use case with no trading volume has no self-serve path to a higher tier; these endpoints read the same public data behind one Crawlora key instead.