Polymarket Prediction Markets — Odds & Volume by Category
Pricing
from $1.50 / 1,000 results
Polymarket Prediction Markets — Odds & Volume by Category
Track Polymarket prediction markets by category (politics, sports, crypto, business and more). For each market get the question, outcomes, live probabilities, volume, liquidity, best bid/ask and end date — plus the parent event. Fast, structured, no key.
Polymarket Scraper — Prediction Market Odds, Probabilities & Volume by Category
Track Polymarket prediction markets by category — with live probabilities, volume, liquidity, best bid/ask and resolution dates. Pick a category (Politics, Crypto, Sports, Business…) and pull every market as a clean row: the question, all outcomes, the favorite and its implied probability, and the parent event. Structured JSON/CSV/Excel in seconds — no API key.
What This Actor Does
The Polymarket Scraper turns any Polymarket category into a structured odds dataset. Choose a category and it returns each market with:
- Market — the question, outcomes, and direct market link
- Probabilities — the implied probability of each outcome, plus the favorite outcome and its probability (works for Yes/No and multi-outcome markets), and the Yes probability for binary markets
- Liquidity & price — total volume, liquidity, best bid, best ask and the bid/ask spread
- Timing & status — start date, resolution (end) date, active/closed flags
- Parent event — event title, event URL, and event-level volume & liquidity
Filter by category (Politics, Crypto, Sports, Business, Science, Tech, Geopolitics, Economy, World, Elections — or All), by status (active/open vs. all), and sort by 24h volume, total volume, liquidity or newest.
Built for prediction-market tracking
Prediction markets are a real-time, money-weighted forecast. This Actor lets you capture that signal at scale — by category — so you can monitor how the crowd is pricing outcomes, track probability moves over time, and compare markets across topics. Pairs naturally with a Kalshi tracker for cross-venue analysis.
Why Use This Instead of the Raw Data
- Prices and outcomes come back encoded as JSON strings (e.g.
"[\"Yes\",\"No\"]","[\"0.62\",\"0.38\"]"), a classic footgun — this Actor parses them into real arrays and a clean probability. - Categories aren't obvious: you have to resolve a category to its internal tag before you can filter — handled for you.
- Markets are nested inside events; this Actor flattens them to one tidy row per market while keeping the parent-event context.
- It computes the favorite outcome, implied probability and spread, and paginates the full category for you.
You get an analysis-ready table instead of a pile of stringified fields.
Quick Start
Run it in the console (no code)
- Open the Actor and click Try for free.
- Pick a Category (e.g. Politics, Crypto, Sports) — or All categories.
- Choose Market status (Active/open or All) and a Sort by (24h volume is a good default).
- Set Max markets and click Start.
- Export as JSON, CSV, Excel, or HTML, or push to Google Sheets, a webhook or a database.
Run it via API (Python)
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run_input = {"category": "politics","status": "active","sortBy": "volume24hr","maxItems": 200,}run = client.actor("YOUR_USERNAME/polymarket-scraper").call(run_input=run_input)for m in client.dataset(run["defaultDatasetId"]).iterate_items():print(m["question"], "→", m["topOutcome"], m["topProbability"], "% vol", m["volume"])
Track a category's top markets by probability (Python)
run_input = {"category": "crypto", "status": "active", "sortBy": "volume24hr", "maxItems": 100}run = client.actor("YOUR_USERNAME/polymarket-scraper").call(run_input=run_input)rows = list(client.dataset(run["defaultDatasetId"]).iterate_items())# highest-conviction markets (favorite most likely)rows.sort(key=lambda m: (m.get("topProbability") or 0), reverse=True)for m in rows[:10]:print(f'{m["topProbability"]}% {m["topOutcome"]:>4} {m["question"]}')
Run it via API (Node.js)
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('YOUR_USERNAME/polymarket-scraper').call({category: 'sports',status: 'active',maxItems: 150,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items.length, 'markets');
Input Parameters
| Field | Type | Description |
|---|---|---|
category | select | all, politics, sports, crypto, pop-culture, business, science, tech, economy, geopolitics, world, elections. |
status | select | active (open markets trading now) or all (include resolved/closed). |
sortBy | select | volume24hr, volume, liquidity, or newest. |
maxItems | integer | Maximum markets to return. Default 100. |
proxyConfiguration | object | Optional. Use a US proxy if the public data is geo-restricted from your region (see note below). |
Output
Each market is one dataset record. Example:
{"marketId": "253591","question": "Will Bitcoin reach $100,000 in September?","category": "Crypto","marketUrl": "https://polymarket.com/event/will-bitcoin-reach-100000-in-september/...","outcomes": ["Yes", "No"],"outcomePrices": [0.38, 0.62],"topOutcome": "No","topProbability": 62,"yesProbability": 38,"volume": 3590173.08,"liquidity": 154200.5,"bestBid": 0.37,"bestAsk": 0.39,"spread": 0.02,"lastTradePrice": 0.38,"oneDayPriceChange": -0.03,"active": true,"closed": false,"endDate": "2026-09-30T12:00:00Z","eventTitle": "Bitcoin price in September","eventUrl": "https://polymarket.com/event/bitcoin-price-in-september","eventVolume": 12904331.5,"scrapedAt": "2026-09-23T18:50:00.000Z"}
Field reference
| Field | Meaning |
|---|---|
question, marketUrl, category | Market question, link, and category |
outcomes, outcomePrices | Outcome names and their implied probabilities (parsed) |
topOutcome, topProbability | The favorite outcome and its probability (binary + multi-outcome) |
yesProbability | Yes probability for binary Yes/No markets |
volume, liquidity, bestBid, bestAsk, spread, lastTradePrice, oneDayPriceChange | Market size and pricing |
active, closed, startDate, endDate | Status and timing |
eventTitle, eventUrl, eventVolume, eventVolume24hr, eventLiquidity | Parent event context |
scrapedAt | Scrape timestamp |
Use Cases
1. Category odds tracking
Snapshot every Politics (or Crypto, Sports…) market with its live probability and volume. Schedule it to build a probability time series and watch sentiment shift.
2. Cross-venue comparison (Polymarket ↔ Kalshi)
Pull the same topics from Polymarket and Kalshi and compare implied probabilities — the basis for spread and divergence analysis.
3. Signal & sentiment research
Prediction markets are a money-weighted forecast. Aggregate by category to gauge crowd sentiment on elections, macro, crypto and sports.
4. Dashboards & alerts
Feed a dashboard or alerting pipeline: flag big 24h probability moves, new high-volume markets, or markets nearing resolution.
5. Content & newsletters
Populate "what the market thinks" widgets and newsletters with live, structured odds by category.
6. Quant & backtesting datasets
Assemble clean, structured market data (probabilities, volume, liquidity, resolution) for research and backtests.
Categories
Filter to any of: Politics, Sports, Crypto, Pop Culture, Business, Science, Tech, Economy, Geopolitics, World, Elections — or All to sweep everything. Each maps to Polymarket's own category system, so results match what you see on the site.
Frequently Asked Questions
Do I need an account or API key? No. The Actor reads publicly available market data — no login or key.
How are probabilities calculated?
They come straight from the market's outcome prices (a price of 0.62 = a 62% implied probability). The Actor parses the encoded price arrays and also surfaces the favorite outcome and its probability.
Does it handle multi-outcome markets?
Yes. topOutcome/topProbability work for both binary Yes/No and multi-outcome markets; yesProbability is provided for binary markets.
Can I get resolved (closed) markets too?
Yes — set status to all.
I'm getting no data / connection errors from my region. Polymarket is geo-restricted in some countries. If the public data is blocked from your location, enable the proxy option with a US configuration and it will work.
How fresh are the numbers? Prices reflect the latest available market data at scrape time. For sub-second order-book depth, Polymarket's order-book layer updates more frequently than the summary data.
What export formats are supported? JSON, CSV, Excel, HTML, or via API — plus Google Sheets, webhooks, Make, and Zapier.
Legal & Responsible Use
This Actor collects only publicly available prediction-market information for research, analytics and informational use. It is not financial, investment, betting, or trading advice. Prediction markets and their availability are regulated differently across jurisdictions — you are responsible for complying with the laws that apply to you. Please:
- Respect Polymarket's Terms of Service and robots directives.
- Do not use the data for unlawful purposes.
- Use reasonable request volumes and scheduling.
This project is an independent tool and is not affiliated with, endorsed by, or sponsored by Polymarket.