Kalshi Scraper & API — Odds, Probabilities, Volume
Pricing
from $1.05 / 1,000 markets
Kalshi Scraper & API — Odds, Probabilities, Volume
Every Kalshi market in one table: implied probability, yes and no price, best bid and ask, 24h move, volume, open interest and close date. Events with all outcomes, minute-level price history and full order books. No API key, no login.
Pricing
from $1.05 / 1,000 markets
Rating
0.0
(0)
Developer
Matvey
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
15 hours ago
Last modified
Categories
Share
Kalshi Scraper & API turns the whole Kalshi exchange into a table. Every market comes back with the implied probability in per cent, the yes and no price, best bid and ask, the 24-hour move, volume, open interest, the close date and a link — no API key, no login, no browser.

Five modes: markets (one row per tradable contract), events (one row per question with every outcome and its probability), search by keyword, price history down to the minute, and the order book with both sides. A run over the active markets takes a few seconds.
What is Kalshi Scraper?
Kalshi is the CFTC-regulated US event exchange: contracts that pay $1 if something happens, on rates, elections, weather, inflation prints, company events and sport. Its price is the crowd's probability, and this Actor reads all of it in one call — for traders, journalists, researchers, dashboards and AI agents that get asked "what are the odds the Fed cuts in September".
What data does it return?
Markets
| Field | Example |
|---|---|
marketId, seriesTicker, slug | KXOAIANTH-40-OAI · KXOAIANTH |
question, shortTitle, eventTitle | Will OpenAI or Anthropic IPO first? — OpenAI |
probability, yesPrice, noPrice | 6.0 (per cent) · 0.06 · 0.94 |
bestBid, bestAsk, spread, lastPrice | 0.05 · 0.07 · 0.02 · 0.06 |
priceChange24h | -0.03 — a move in price, so ±0.03 is three points of probability |
volume, volume24h, volume1w, openInterest | 171,344 · 2,840 · … · 40,639 |
status, result | open · empty until it settles |
openTime, closeTime, endDate | ISO 8601 |
category, tags, marketType, strikeType | Economics · binary · greater |
outcomes | [{name: "Yes", price: 0.06, probability: 6.0}, {name: "No", …}] |
rules, url | resolution text · link to the market |
Open interest is Kalshi's own depth measure — how many contracts are still live. Kalshi reports a liquidity figure of zero on nearly every market, so this Actor does not show a liquidity column that would always read empty.
Events
One row per question with outcomes sorted most likely first, favourite and favouriteProbability, outcomeCount, total volume and openInterest, and a ready summary sentence. This is the shape for "who will win": one row for the whole race with every candidate and their probability, instead of one contract per candidate.
Price history and order book
History returns one row per point with time, price and probability — a week at hourly resolution by default, one-minute resolution for short windows, up to 90 days. The order book returns both sides with price and size per level.
How much does it cost?
Pay per row, and only for rows you actually get:
| Event | Price |
|---|---|
| Market | $0.0015 |
| Event | $0.0008 |
| Price point | $0.0002 |
| Order book snapshot | $0.001 |
Error rows are never charged. There is no browser and no proxy — one public JSON API — so platform usage on top of that is negligible.
| Job | Cost |
|---|---|
| 500 active markets | $0.75 |
| 100 markets with 30 days of price history | $0.80 |
| A daily 200-market snapshot for a month | $9.00 |
Other Kalshi Actors charge $0.001 to $0.004 per row and most return the market list only. This one is priced inside that range and adds events, history and order books at the same time.
How to use it
- Choose 📋 What to get: markets, events, search, history or order book.
- Narrow with 🔍 Keyword (
fed,election,bitcoin,super bowl) and 🏷️ Category — several at once,Politics, Cryptokeeps a market matching either. - Set 📈 Minimum open interest or 💧 Minimum volume. Kalshi lists thousands of near-empty contracts; a volume floor of 1000 keeps the ones people actually trade.
- Sort by 24-hour volume, total volume, closing date, probability or biggest 24-hour move.
- Click Start, then export as JSON, CSV or Excel, or read the dataset through the API.

⬇️ Input
{"mode": "markets","query": "fed","minVolume": 1000,"sortBy": "volume24h","maxMarkets": 200}
Events with all outcomes
{ "mode": "events", "category": "Politics", "minVolume": 5000, "maxMarkets": 50 }
Price history for specific markets
{ "mode": "history", "marketIds": ["KXOAIANTH-40-OAI"], "historyDays": 30 }
One series only
{ "mode": "markets", "seriesTicker": "KXPRESPARTY", "includeClosed": false }
⬆️ Output
{"type": "market","platform": "kalshi","marketId": "KXOAIANTH-40-OAI","seriesTicker": "KXOAIANTH","question": "Will OpenAI or Anthropic IPO first? — OpenAI","eventTitle": "Will OpenAI or Anthropic IPO first?","category": "Companies","probability": 6,"yesPrice": 0.06,"noPrice": 0.94,"bestBid": 0.05,"bestAsk": 0.07,"spread": 0.02,"lastPrice": 0.06,"priceChange24h": -0.01,"volume": 171344.62,"volume24h": 2840,"openInterest": 40639.56,"status": "open","closeTime": "2027-12-31T15:00:00Z","outcomes": [{ "name": "Yes", "price": 0.06, "probability": 6 },{ "name": "No", "price": 0.94, "probability": 94 }],"url": "https://kalshi.com/markets/kxoaianth","scrapedAt": "2026-09-04T01:00:00.000Z"}
A request that fails arrives as a type: "error" row with the reason, never as a silently short list.
Use cases
Odds for a theme
Filter on fed, cpi or election and get every Kalshi contract on it with the probability each one implies.
Dashboards and newsletters
Sort by 24-hour move to see what repriced overnight, or by closing date for what resolves this week.
Research
Pull price history for a set of markets and study how the crowd's estimate moved against the news.
Bots and alerts
Schedule the run and alert when a probability crosses a threshold you care about.
AI agents
An agent asked "what does Kalshi say about a September rate cut" runs the search mode and reads probability straight off the rows.
🤖 For AI Agents & LLM Apps
Compact reference for agents calling this Actor through the Apify MCP server or the Apify API (lergassy/kalshi-scraper).
Purpose: returns what Kalshi currently prices for a question. Use it for "what are the odds of X", "which markets moved most today", "what does the crowd think about the election".
Minimal input:
{ "query": "fed", "minVolume": 1000, "maxMarkets": 50 }
Output: one row per market — marketId, seriesTicker, question, eventTitle, category, tags, probability (per cent, the number to quote), yesPrice, noPrice, bestBid, bestAsk, spread, lastPrice, priceChange24h, volume, volume24h, openInterest, status, openTime, closeTime, outcomes, rules, url, scrapedAt. Event mode returns outcomes sorted by probability with favourite and a summary sentence; history mode one row per price point; order-book mode one row per market with both sides.
Behaviors an agent should know:
probabilityis the field to quote, in per cent.yesPriceis the same number as a price between 0 and 1, because one contract pays $1 if the event happens.priceChange24his a change in price, so 0.03 means three percentage points of probability.- Kalshi lists thousands of near-empty markets. Always pass
minVolume(1000 is a good floor) or the answer fills with noise. - Depth on Kalshi is
openInterest, not liquidity; the venue leaves its liquidity figure at zero. - Filters are applied by this Actor:
querymatches the question, event title and tags;categorymatches Kalshi categories. - Read
rulesbefore treating a market as the bet you have in mind — the resolution wording decides what actually pays. - History needs
marketIds; without them the Actor uses the most active markets. - The API is public: no key, no account, no proxy.
Kalshi API without a key
Kalshi publishes open endpoints and changes their shape often. This Actor handles the pagination, the price conventions and the event-to-market nesting, and returns one stable row shape whichever series a market came from.
❓ FAQ
Is this financial advice or a trading tool?
No. It reads public market data and returns it as a table. It places no orders and holds no positions.
Is the probability the true chance of the event?
It is what the market pays, which is the crowd's price after fees and risk appetite. Treat it as a market price, not a forecast from a model.
How fresh are the numbers?
Live at the moment of the run. Schedule the Actor to build a time series of your own.
Do I need a Kalshi account?
No. The endpoints used here are public and read-only.
Why is the liquidity column missing?
Because Kalshi returns zero for it on nearly every market. Open interest is the figure that actually says how much is at stake.
Can I use it with the Apify API or an MCP server?
Yes. It runs from the API and the official clients, and AI agents reach it through the Apify MCP server without extra setup.
Your feedback
Missing a field, or a series you want covered? Open an issue on the Issues tab — every one gets answered.
You might also like
| Actor | What it does |
|---|---|
| Prediction Markets API | Kalshi and Polymarket in one table |
| Polymarket Scraper & API | The same shape for Polymarket |
| Sports Betting Odds API | Bookmaker lines, arbitrage and value bets |
| Sports Scores & Schedules API | Live scores and schedules for 33 leagues |
Also known as
People look for this Actor as a Kalshi API, a Kalshi scraper, event contracts data, Kalshi odds, implied probability data, prediction market data and election odds.