Kalshi Scraper — Prediction Market Odds & Probabilities
Pricing
from $1.49 / 1,000 results
Kalshi Scraper — Prediction Market Odds & Probabilities
Scrape event contracts from Kalshi, the US-regulated prediction market: market title, yes/no prices, implied probability, last price, volume, open interest, liquidity, status and close time. Pull markets or events by series, status or ticker. No login or API key. Export JSON, CSV, Excel.
Kalshi Scraper 📊🇺🇸
Extract event contracts from Kalshi — the US-regulated prediction market — at scale, without an account or API key. Scrape events (a question with its priced yes/no markets) or raw markets, and export clean JSON, CSV or Excel: market title, yes/no prices, implied probability, last price, volume, open interest, liquidity, status and close time.
Perfect for prediction-market research, sentiment & forecasting signals, trading analysis and alternative-data products.
🔑 What this scraper does
- ❓ Events — each question (e.g. "Will Elon Musk visit Mars in his lifetime?") with its nested yes/no markets.
- 📈 Prices & probability — yes/no bid/ask, last price and the implied probability (%) for every market.
- 🗂️ Categories — politics, economics, world, tech, sports and more.
- 💧 Depth (where exposed) — volume, open interest and liquidity when Kalshi includes them.
- 🎛️ Filter — by status (open/closed/settled), series ticker or a single event.
- ⏰ Timing — open, close and expiration times, plus status.
No login, no cookies, no API key. Choose your filters, press start, export.
📋 Example output
Event with nested markets:
{"eventTicker": "KXELONMARS-99","seriesTicker": "KXELONMARS","title": "Will Elon Musk visit Mars in his lifetime?","category": "World","mutuallyExclusive": false,"marketCount": 1,"markets": [{"ticker": "KXELONMARS-99-VISIT","title": "Will Elon Musk visit Mars before Aug 1, 2099?","status": "active","yesBid": 0.09,"yesAsk": 0.11,"noBid": 0.88,"noAsk": 0.90,"lastPrice": 0.10,"impliedProbabilityPct": 10,"volume": 12000,"openInterest": 8400,"liquidity": 25000,"closeTime": "2099-08-01T04:59:00Z"}]}
🗂️ Fields you get
Event
| Field | Description |
|---|---|
eventTicker, seriesTicker | Event & series tickers |
title, subtitle | The question |
category | Politics, Economics, World, etc. |
mutuallyExclusive | Whether the markets are mutually exclusive |
marketCount | Number of nested markets |
markets | Nested markets (see below) |
Market
| Field | Description |
|---|---|
ticker, eventTicker | Market & parent event tickers |
title, subtitle | Market question |
status | active, closed, settled… |
yesBid, yesAsk, noBid, noAsk | Best bid/ask (in dollars, 0–1) |
lastPrice | Last traded price (dollars, 0–1) |
impliedProbabilityPct | Implied probability of "yes" (0–100%) |
volume, volume24h | Contracts traded |
openInterest | Open contracts |
liquidity | Resting liquidity |
openTime, closeTime, expirationTime | Timing |
result | Settlement result, when settled |
Prices are in dollars from 0 to 1 (0.55 = 55¢), and
impliedProbabilityPctconverts that to a 0–100% probability. Choose Events for questions + priced markets (recommended) or Markets for raw contracts.
🚀 How to use
- Click Try for free.
- Choose Data Type (Events recommended) and a Status (Open = tradeable now).
- (Optional) Narrow to a Series Ticker or Event Ticker.
- Set Max Items, then click Start.
- Export as JSON, CSV, Excel, HTML, RSS, or via the Apify API.
📝 Example inputs
1. All open events (questions + priced markets)
{ "dataType": "events", "status": "open", "maxItems": 500 }
2. A single series
{ "dataType": "events", "seriesTicker": "KXELONMARS", "status": "open" }
3. Raw markets
{ "dataType": "markets", "status": "open", "maxItems": 1000 }
4. Settled events (for backtesting)
{ "dataType": "events", "status": "settled", "maxItems": 1000 }
💡 Popular use cases
📈 Prediction-market research
Pull live implied probabilities across politics, economics and world events to track what the market expects — and how it moves.
🧠 Sentiment & forecasting signals
Feed implied probabilities into your models as a real-time, money-backed sentiment signal for elections, rates, weather and more.
💹 Trading & arbitrage analysis
Compare prices, volume and liquidity across markets to spot mispricings, build watchlists and monitor depth.
🔬 Backtesting & data science
Collect settled events and their outcomes to backtest strategies and study calibration of market-implied probabilities.
🤖 AI, LLM & data products
Feed clean, structured prediction-market data into your own models, dashboards or products.
👥 Who uses this
- Traders & quants researching prediction-market prices and depth.
- Analysts & forecasters using implied probabilities as signals.
- Data scientists backtesting on settled markets.
- Developers & AI builders who need prediction-market data via API.
🎛️ Options
- Data Type — Events (question + priced markets) or Markets (raw contracts).
- Status — open, closed, settled, unopened, or all.
- Series / Event Ticker — narrow to a series or a single event.
- Max Items — cap total items (
0= unlimited). - Proxy — off by default (a direct connection works best); enable only if needed.
❓ FAQ
Do I need an account or API key? No. Choose your filters and run — no login, no key.
How do I read the prices?
Prices are in dollars from 0 to 1 — 0.55 means 55¢, i.e. a 55% implied probability. The impliedProbabilityPct field gives you that percentage directly.
What is the difference between Events and Markets? An event is a question (e.g. "Who wins the election?") that contains one or more markets (the individual yes/no contracts). Events give you the questions with their priced markets nested inside; Markets gives you the raw contracts.
Can I get settled outcomes?
Yes — set Status to settled to collect resolved events and their results, useful for backtesting.
Can I limit to one topic? Use a Series Ticker (or Event Ticker) to narrow to a specific series or event.
What export formats are supported? JSON, CSV, Excel, HTML table, RSS, and the Apify API. Connect to Make, Zapier, Google Sheets, Slack, webhooks or an MCP server.
Is the data structured and clean? Yes. Each event is a flat JSON object with its markets nested, de-duplicated by ticker, with prices parsed to numbers and probabilities computed.
🔌 Integrations
- Export to JSON, CSV, Excel, HTML, RSS.
- Pull via the Apify API or client libraries (JavaScript, Python).
- Connect to Make, Zapier, Google Sheets, Slack, webhooks and more.
- Use from an MCP server in your AI agent / LLM workflow.
- Schedule recurring runs with the Apify Scheduler to track probabilities over time.
⚖️ Legal & responsible use
This scraper collects publicly available market data only — the same prices and market information any visitor can see on Kalshi without logging in. It does not place trades, access accounts, or touch anything behind authentication.
You are responsible for how you use the collected data. Please:
- Respect Kalshi's Terms of Service and all applicable laws and regulations.
- Use market data lawfully; nothing here is financial advice.
- Avoid excessive request rates and scrape responsibly.
This tool is provided for lawful purposes such as research, analysis and building data products. It is not affiliated with, endorsed by, or connected to Kalshi.