Prediction Market Scraper - Kalshi + Polymarket avatar

Prediction Market Scraper - Kalshi + Polymarket

Pricing

from $1.85 / 1,000 market records

Go to Apify Store
Prediction Market Scraper - Kalshi + Polymarket

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

oddsmith Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

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

ModeReturns
MarketsOpen/closed markets with prices, bids/asks, status, close times
Order book snapshotsFull bid/ask depth, best prices, and Polymarket microstructure fields (tick size, min order size, last trade, book timestamp)
Settled marketsResolved markets with outcomes — ready for backtests
CandlesticksKalshi 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.

EventPriceWhat one record is
market-item$1.85 / 1,000One market with prices, volume, open interest, liquidity, close time
settled-item$0.50 / 1,000One resolved market with its outcome
orderbook-snapshot$2.00 / 1,000One order book with full bid/ask depth
candlestick-batch$3.00 / 1,000One 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, and liquidity alongside 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. Set 0 to 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.