Kalshi Markets API — Odds, Volume & Open Interest avatar

Kalshi Markets API — Odds, Volume & Open Interest

Pricing

from $1.00 / 1,000 market returneds

Go to Apify Store
Kalshi Markets API — Odds, Volume & Open Interest

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

Muhamed Didovic

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Kalshi Markets API

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, spread and impliedProbability together 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. requireLiveQuote drops 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 itYou get
KeywordsEvery market whose question, outcome or ticker matches
Event tickersEvery outcome under those events
Market tickersExactly those markets, no discovery
NothingThe whole open board, capped by maxItems

Input

FieldTypeDescription
searchQueriesarrayKeywords matched against question, outcome and ticker.
eventTickersarrayRestrict to given Kalshi event tickers.
marketTickersarrayExact watchlist. Skips discovery and ignores the filters.
statusselectopen (default), closed, settled or any.
minVolume24h / minVolumeintegerContract-volume floors.
minOpenInterestintegerOutstanding-contract floor — a better liveness signal than volume.
minLiquidityintegerResting order-book liquidity floor, in dollars.
minYesPrice / maxYesPricenumberImplied-probability band, 0 to 1.
closesWithinHoursintegerKeep only markets resolving inside this window.
requireLiveQuotebooleanDrop markets with no resting bid or ask.
includeRulesbooleanAdd the settlement rules text. Long, so off by default.
maxItemsintegerRow 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

FieldDescription
impliedProbabilityMidpoint of the YES book — the usual probability read. Null unless both sides quote.
spreadyesAsk − yesBid. A wide spread means the quote is thin, whatever the midpoint says.
openInterestContracts still outstanding. Survives quiet days better than volume does.
hoursToCloseHours from scrape time to close. Negative once the market has closed.
resultSettlement result once resolved, otherwise null.

Notes & limitations

  • Prices are dollars per contract, 0 to 1, so they read directly as probabilities.
  • liquidity is often 0 on 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 includeRules is 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.
  • marketTickers bypasses 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