Kalshi Markets Scraper
Pricing
from $5.00 / 1,000 results
Kalshi Markets Scraper
Kalshi prediction market prices, volume, open interest and expiration, filterable by category, status and keyword, priced per result.
What does Kalshi Markets Scraper do?
Kalshi Markets Scraper returns live Kalshi prediction market data: yes and no bid and ask prices, last traded price, volume, open interest, liquidity, and open, close and expiration dates. Filter by category, market status or a keyword to pull only the markets you care about, whether that is election odds, Fed rate calls, or weather and sports contracts. Pricing is per result, so a filtered run only charges for the rows you actually get.
Data source
Data comes straight from Kalshi's public trade API (api.elections.kalshi.com/trade-api/v2/events), the same JSON feed the Kalshi site itself calls, so prices and volume are as fresh as the exchange.
Why use it?
- Track prediction market odds for elections, economic data releases, or news events as a leading indicator.
- Feed a spreadsheet or dashboard with live contract prices and volume without hand copying from the site.
- Screen markets by category or keyword to build a watchlist, for example every Fed rate or weather market.
- Replace manually checking the Kalshi site for price moves with a scheduled run that lands in a database or Sheet.
How to use it
- Open the Actor and set the category, status or keyword filters, or leave them blank for the most active open markets.
- Click Start. Download results as JSON, CSV or Excel, or read them through the API.
- Add a Schedule and an Integration (Slack, Google Sheets, webhook) to get price updates automatically.
Input
| Field | Description |
|---|---|
category | Only return markets in this category (Politics, Sports, Crypto, and so on). Leave blank for all categories. |
status | Market status: open (trading now), closed (awaiting settlement), settled (final result) or unopened (scheduled). Defaults to open. |
keyword | Only return markets whose title or subtitle contains this text. Leave blank for no filter. |
seriesTicker | Only return markets in one series, for example KXELONMARS. Leave blank for all series. |
maxResults | Hard stop for the run. You are billed per result, so this caps the cost. |
proxyConfiguration | Apify proxy is recommended for larger runs. |
Example input:
{"category": "Politics","status": "open","keyword": "","seriesTicker": "","maxResults": 60}
Output
Every record has the same shape:
{"id": "KXELONMARS-99","ticker": "KXELONMARS-99","title": "Will Elon Musk visit Mars before Aug 1, 2099?","category": "World","status": "active","yesBid": 0.1,"yesAsk": 0.12,"volume": 118844.56,"closeTime": "2099-08-01T04:59:00Z","subtitle": "Mars","noBid": 0.88,"noAsk": 0.9,"lastPrice": 0.1,"volume24h": 0,"openInterest": 40063.58,"liquidity": 0,"openTime": "2025-08-28T20:45:00Z","expirationTime": "2099-08-08T15:00:00Z","eventTicker": "KXELONMARS-99","seriesTicker": "KXELONMARS","rulesPrimary": "If Elon Musk visits Mars before the earlier of his death or Aug 1, 2099, then the market resolves to Yes.","url": "https://kalshi.com/markets/kxelonmars","scrapedAt": "2026-09-19T01:24:37.124Z"}
| Field | Meaning |
|---|---|
id | Stable key (the market ticker), safe for deduplication between runs |
ticker | Kalshi market ticker |
title | Market question |
category | Kalshi category, for example Politics or Sports |
status | Market status: active, closed or settled |
yesBid / yesAsk | Best yes bid and ask, in dollars (0 to 1, read as a probability) |
volume | Total contracts traded since the market opened |
closeTime | When the market stops trading, ISO format |
subtitle | Short label for this specific contract within the event |
noBid / noAsk | Best no bid and ask, in dollars |
lastPrice | Last traded price, in dollars |
volume24h | Contracts traded in the last 24 hours |
openInterest | Open contracts outstanding |
liquidity | Dollar value resting on the order book |
openTime | When the market started trading, ISO format |
expirationTime | When the market expires and settles, ISO format |
eventTicker | Ticker of the parent event this market belongs to |
seriesTicker | Ticker of the series this event belongs to |
rulesPrimary | Plain language resolution rule for the market |
url | Link to the market's series page on kalshi.com |
Pricing
Pay per event: a small fee when a run starts, then a fixed price per result returned. You only pay for records that pass your filters. Set maxResults to cap any run.
Limitations
- Read only: order book depth beyond best bid and ask, and any account or trading data, are not included since those require a login.
- Category and status use the values Kalshi assigns to each market, so a market Kalshi has not tagged with a category will not match a category filter.
- Keyword matching is a plain text search over the market title and subtitle, not a full text search across market rules.
FAQ
Is this legal? The Actor reads market data Kalshi's public API publishes for any visitor without a login and stores only that market data. You are responsible for how you use the data.
Something is missing or broken? Open an issue in the Issues tab; response time is usually under a day.