Prediction Market Scraper - Kalshi + Polymarket
Pricing
from $1.85 / 1,000 market records
Prediction Market Scraper - Kalshi + Polymarket
Kalshi + Polymarket in one schema: live odds, prices, volume, open interest, full order-book depth, settled results for backtesting, and Kalshi candlestick history. Keyless public APIs, no browser. Targets the most actively traded markets by default, and never charges you for empty results.
Pricing
from $1.85 / 1,000 market records
Rating
0.0
(0)
Developer
oddsmith Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Prediction Market Scraper — Kalshi + Polymarket
Pull live and settled market data from Kalshi and Polymarket in one Actor: market listings, order-book depth snapshots, settled results for backtesting, and Kalshi candlestick history. Clean JSON or CSV output, no API keys required.
What you get
| Mode | Returns |
|---|---|
| Markets | Open/closed markets with prices, bids/asks, status, close times |
| Order book snapshots | Full bid/ask depth, best prices, and Polymarket microstructure fields (tick size, min order size, last trade, book timestamp) |
| Settled markets | Resolved markets with outcomes — ready for backtests |
| Candlesticks | Kalshi OHLC history per market at your chosen interval |
Why this Actor
- Two venues, one schema. Kalshi and Polymarket return very different payloads; this normalizes both into consistent records you can join on.
- Order-book depth, not just prices. Most scrapers give you a last price. This captures the full book — the data you actually need for spread, liquidity, and microstructure analysis.
- Active markets by default. Kalshi's raw listing is dominated by internal shard markets with no trading activity. When you don't name specific tickers, this Actor filters those out and targets the markets with the most volume and open interest, so you get data worth paying for.
- You are never charged for nothing. Empty candle batches and empty order books are skipped, not billed.
- No authentication. Uses public market-data endpoints only.
- Polite by default. Built-in rate limiting with exponential backoff on 429 and 5xx.
Example input
{"mode": "orderbook","venues": ["kalshi", "polymarket"],"seriesTicker": "KXBTC","maxItems": 50,"orderbookDepth": 10}
Settled markets for a backtest:
{ "mode": "settled", "venues": ["kalshi"], "maxItems": 500 }
Kalshi candlesticks for specific markets:
{"mode": "candlesticks","tickers": ["KXBTC-26JUN1314-T72299.99"],"periodInterval": 60}
Output
Each result is one dataset item. Export as JSON, CSV, or Excel from the run's dataset. Order-book items include normalized yes_levels/no_levels (Kalshi) or bids/asks (Polymarket), each a list of {price, size}.
Pricing
Pay per record delivered. No subscription, and no platform usage charge on top.
| Event | Price | What one record is |
|---|---|---|
market-item | $1.85 / 1,000 | One market with prices, volume, open interest, liquidity, close time |
settled-item | $0.50 / 1,000 | One resolved market with its outcome |
orderbook-snapshot | $2.00 / 1,000 | One order book with full bid/ask depth |
candlestick-batch | $3.00 / 1,000 | One market's OHLC history for the window |
You are never charged for a record you cannot use. Settled markets that closed without a recorded outcome, order books with no levels, and candlestick windows with no trades are all skipped before billing, not delivered and billed.
Output
Fields the venue does not publish come back as null rather than being dropped,
so columns stay stable across runs. In particular result is null for every
market that is still open — that is the normal case, not an error.
Notes
- Kalshi prices are in dollars (e.g.
0.76= 76¢). Polymarket prices are 0–1 probabilities. - Kalshi market records include
volume,volume_24h,open_interest, andliquidityalongside best bid/ask and last price. - Order books for illiquid markets may return empty depth — that is the true state of the book, not an error. Those results are skipped rather than charged.
closeWithinDays(default 90) bounds Kalshi discovery to markets resolving inside that window. It controls scope: a 30-day window exposes about 200 Kalshi markets, 90 days about 10,000. Set0to remove the window entirely, but leave Only markets that trade on if you do, because Kalshi's unfiltered listing is mostly internal shard markets.maxItems(default 1,000) bounds markets scanned per venue, so a default two-venue run returns roughly 2,000 records.- Built and maintained by an independent quant developer. Issues and requests welcome.