Kalshi Markets API — Odds, Volume & Open Interest
Pricing
from $1.00 / 1,000 market returneds
Kalshi Markets API — Odds, Volume & Open Interest
Pull Kalshi prediction markets by keyword, event ticker or watchlist. Yes/no quotes, spread, implied probability, 24h and lifetime volume, open interest, liquidity, settlement rules and resolution windows. Filter by price, volume, open interest and time-to-close before you are billed.
Pricing
from $1.00 / 1,000 market returneds
Rating
0.0
(0)
Developer
Muhamed Didovic
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Pull live markets from Kalshi, the CFTC-regulated US prediction exchange, by keyword, event ticker or a fixed watchlist. Every row carries the yes/no book, the implied probability, traded volume, open interest, resting liquidity and the resolution window.
Reads Kalshi's own public trade API. No login, no browser, no proxy, no anti-bot to fight.
Why use it
- The question, not just the ticker. Kalshi splits things: the question lives on the event, the outcome name on the market. Read only the markets feed and you get "Klaus Iohannis" with no idea what is being asked. Every row here carries both.
- Filters run before billing. Narrow by price, volume, open interest, liquidity or time-to-close and the excluded markets never reach your dataset, so they cost nothing.
- Depth, not just a price.
yesBid,yesAsk,spreadandimpliedProbabilitytogether tell you whether a quote is real or a one-sided stub. - Skips the dead listings. Kalshi lists many contracts that have never been quoted.
requireLiveQuotedrops them in one switch. - An empty run fails. If a run returns nothing at all it exits FAILED with a reason, rather than reporting success on an empty dataset.
What it does
| You give it | You get |
|---|---|
| Keywords | Every market whose question, outcome or ticker matches |
| Event tickers | Every outcome under those events |
| Market tickers | Exactly those markets, no discovery |
| Nothing | The whole open board, capped by maxItems |
Input
| Field | Type | Description |
|---|---|---|
searchQueries | array | Keywords matched against question, outcome and ticker. |
eventTickers | array | Restrict to given Kalshi event tickers. |
marketTickers | array | Exact watchlist. Skips discovery and ignores the filters. |
status | select | open (default), closed, settled or any. |
minVolume24h / minVolume | integer | Contract-volume floors. |
minOpenInterest | integer | Outstanding-contract floor — a better liveness signal than volume. |
minLiquidity | integer | Resting order-book liquidity floor, in dollars. |
minYesPrice / maxYesPrice | number | Implied-probability band, 0 to 1. |
closesWithinHours | integer | Keep only markets resolving inside this window. |
requireLiveQuote | boolean | Drop markets with no resting bid or ask. |
includeRules | boolean | Add the settlement rules text. Long, so off by default. |
maxItems | integer | Row cap. Scanning stops the moment it is reached. |
A market where Kalshi leaves a field empty is kept, not dropped. Freshly listed markets often have no volume or liquidity yet, and silently discarding them would shrink a filtered run in a way you cannot reconcile against what Kalshi shows.
Examples
Everything crypto with a real quote, resolving within a day:
{"searchQueries": ["bitcoin", "ethereum"],"requireLiveQuote": true,"closesWithinHours": 24,"maxItems": 200}
Longshots with genuine depth:
{"maxYesPrice": 0.1,"minOpenInterest": 500,"minLiquidity": 250}
A fixed watchlist, checked on a schedule:
{ "marketTickers": ["KXBTCPRICE-85000-26AUG28"] }
Output
One row per tradable outcome:
{"ticker": "KXBTCPRICE-85000-26AUG28","eventTicker": "KXBTCPRICE-26AUG28","question": "When will Bitcoin cross $85k again?","outcome": "By Aug 28, 2026","category": "Crypto","status": "active","yesBid": 0.02,"yesAsk": 0.49,"spread": 0.47,"impliedProbability": 0.255,"volume24h": 17.24,"openInterest": 55.56,"liquidity": 0,"closeTime": "2026-08-28T15:00:00Z","hoursToClose": 30.05,"marketUrl": "https://kalshi.com/markets/kxbtcprice-85000"}
Key fields
| Field | Description |
|---|---|
impliedProbability | Midpoint of the YES book — the usual probability read. Null unless both sides quote. |
spread | yesAsk − yesBid. A wide spread means the quote is thin, whatever the midpoint says. |
openInterest | Contracts still outstanding. Survives quiet days better than volume does. |
hoursToClose | Hours from scrape time to close. Negative once the market has closed. |
result | Settlement result once resolved, otherwise null. |
Notes & limitations
- Prices are dollars per contract, 0 to 1, so they read directly as probabilities.
liquidityis often0on thin markets — that is Kalshi's own value, not a parse failure.- Keyword search runs client-side because the API offers no text search, so a narrow keyword scans many markets to find its matches. Nothing scanned is billed; only returned rows are.
- Settlement rules are omitted unless
includeRulesis on, since they are long.
🤖 For AI Agents & LLM Apps
Reference for agents calling this actor via the Apify MCP server or the API (memo23/kalshi-markets-api).
Purpose: live Kalshi prediction-market odds and depth, one row per tradable outcome.
Minimal input:
{ "searchQueries": ["fed"], "requireLiveQuote": true, "maxItems": 50 }
Output fields: ticker, eventTicker, seriesTicker, question, outcome, noOutcome, category, status, marketType, strikeType, yesBid, yesAsk, noBid, noAsk, lastPrice, previousPrice, spread, impliedProbability, volume, volume24h, openInterest, liquidity, notionalValue, openTime, closeTime, expirationTime, hoursToClose, result, canCloseEarly, marketUrl, scrapedAt.
Behaviours to know:
- Always set
maxItems; the open board runs to tens of thousands of outcomes. marketTickersbypasses discovery and every filter — use it for watchlists.- Filters drop rows before billing; a filtered-out market costs nothing.
- Fields Kalshi leaves empty pass the filters rather than failing them.
- Billed per returned row. See the Pricing tab.
⚠️ Disclaimer
This actor reads publicly available data from Kalshi's own public API. It is not affiliated with, endorsed by, or sponsored by Kalshi. Nothing it returns is financial advice, and prediction-market trading carries risk. Use it in line with Kalshi's terms and applicable law.
SEO Keywords
kalshi api, kalshi scraper, kalshi markets, prediction market data, kalshi odds, event contracts, implied probability, kalshi open interest, prediction market api, kalshi event tickers, binary options data, forecasting markets