Polymarket & Kalshi Prediction Markets Scraper — Odds, Volume
Pricing
from $1.40 / 1,000 markets
Polymarket & Kalshi Prediction Markets Scraper — Odds, Volume
Live odds from Polymarket and Kalshi in one schema: probability, bid/ask, last trade, volume (24h/total), liquidity, open interest, price changes, close dates, categories and rules. Keyword, tag, category, status and volume filters. CSV/JSON export and API.
Pricing
from $1.40 / 1,000 markets
Rating
0.0
(0)
Developer
Chorelet
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Live odds from the two largest prediction markets in one schema: every market with its probability, best bid and ask, last trade, 24h and total volume, liquidity, open interest, price changes, opening and closing dates, category, tags and resolution rules. Filter by keywords, status, Polymarket tags, Kalshi categories and minimum volume; sort by 24h volume, total volume, liquidity, newest or ending soon. JSON, CSV, Excel or API.
Both platforms are read through their public APIs — exact numbers, no scraping of HTML, no account.
Why this Actor
- Polymarket and Kalshi in one schema — compare the same question across exchanges
- Probability, bid/ask, last trade, 24h and total volume, liquidity, open interest, price momentum
- Keyword, status, tag/category and minimum-volume filters; sort by activity or closing date
- Public APIs only: exact numbers, no account
- Checked every day by an automated run
Sample output
One item of the dataset (long values shortened):
{"platform": "polymarket","question": "Will United Russia (ER) gain the most seats in the next Russian parliamentary election?","probability": 98.5,"bestBid": 0.984,"bestAsk": 0.985,"volume": 22661356.810269985,"volume24h": 6645262.841870003,"liquidity": 700340.29758,"endDate": "2026-09-30T00:00:00Z","url": "https://polymarket.com/event/which-party-will-gain-most-seats-in-russian-parliamentary-election/will-united-russia-er-gain-the-most-seats…"}
What you get
| Field | Description |
|---|---|
platform, eventId, eventTitle, eventUrl, marketId, question, url | Where and what |
outcomes[], yesPrice, noPrice, probability | Current prices (0–1) and the Yes probability in % |
bestBid, bestAsk, lastTradePrice, spread | Order book top |
volume, volume24h, volume1w, liquidity, openInterest | Activity |
priceChange1h, priceChange1d, priceChange1w, priceChange1m | Momentum (Polymarket all four; Kalshi 1d) |
startDate, endDate, status, resolved | Lifecycle |
category, tags, image, description, resolutionSource, commentCount, negRisk | Context |
A per-platform summary is saved as SUMMARY.
Input
- Platforms — Polymarket, Kalshi or both. Keywords — any-match filter. Status — active, closed or all.
- Sort and Max markets per platform, Minimum total volume.
- Polymarket tag slugs (
politics,crypto,sports…) and Kalshi categories (Politics, Economics, Financials, Companies, Science and Technology…).
Limits and notes
- Polymarket prices are the mid/last values from its Gamma API; Kalshi prices are in dollars (0–1). Both change constantly — schedule the Actor for time series.
- Keyword filtering happens after the sorted fetch, so rare keywords may need a higher limit or a tag/category filter.
- Public data only; the Actor stores nothing beyond the dataset of your run.
Input example
{"platforms": ["polymarket","kalshi"],"status": "active","sort": "volume24h","maxMarketsPerPlatform": 200,"minVolume": 0}
How much does it cost?
Pay per market — no subscription, no minimum, no charge for platform usage.
| Volume | Price |
|---|---|
| 1,000 markets | $2.00 |
| 10,000 markets | $20.00 |
| 100,000 markets | $200.00 |
The Apify free plan includes $5 of usage every month — about 2,500 markets with this Actor, no card needed. Nothing else is charged: platform usage is included in the price, and Apify Bronze, Silver and Gold subscribers get 10%, 20% and 30% off these prices.
Use it from code, n8n, Make, Zapier or an AI agent
Run the Actor and download the dataset in one call (JSON by default; add &format=csv or xlsx):
curl -X POST "https://api.apify.com/v2/acts/chorelet~prediction-markets-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"platforms": ["polymarket", "kalshi"], "status": "active", "sort": "volume24h", "maxMarketsPerPlatform": 200, "minVolume": 0}'
Python:
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("chorelet/prediction-markets-scraper").call(run_input={"platforms": ["polymarket", "kalshi"], "status": "active", "sort": "volume24h", "maxMarketsPerPlatform": 200, "minVolume": 0})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
- n8n, Make, Zapier — use the Apify node/module: run the Actor, then "get dataset items".
- Google Sheets, Slack, webhooks — add an integration on the run's Integrations tab.
- AI agents — the Actor is available as a tool through the Apify MCP server; the dataset schema describes every field for the model.
- Schedules — run it hourly, daily or weekly from the Schedules tab.
FAQ
Are prices real-time?
They are read at run time from each exchange's public API — schedule the Actor for a time series or alerts.
Can I search for a topic?
Yes — keywords matches question, event title, tags, category and rules; polymarketTags and kalshiCategories narrow further.
How are Kalshi prices expressed?
As probabilities 0–1 (yesPrice) and percentages (probability), the same as Polymarket, so rows are directly comparable.
Can I get resolved markets?
Yes — status: closed (or all) returns settled markets with their final prices.
What does a run cost?
$2 per 1,000 markets. The free plan's $5 a month covers about 2,500 markets.
Support
Questions, missing fields or a source that changed? Open an issue on the Issues tab or write to support@chorelet.app — problems are usually fixed within a day, and the Actor is checked every morning by an automated test run. If the Actor saved you time, a short review on its Store page helps other people find it.