Polymarket Scraper & API — Odds, Probabilities, Volume
Pricing
from $1.05 / 1,000 markets
Polymarket Scraper & API — Odds, Probabilities, Volume
Every Polymarket market in one table: implied probability, yes and no price, best bid and ask, 24h move, volume, liquidity and close date. Events with all outcomes, price history and full order books. No wallet, no API key.
Pricing
from $1.05 / 1,000 markets
Rating
5.0
(2)
Developer
Matvey
Maintained by CommunityActor stats
0
Bookmarked
16
Total users
10
Monthly active users
20 hours ago
Last modified
Categories
Share
Polymarket Scraper & API turns the whole Polymarket exchange into a table. Every market comes back with the implied probability in per cent, the yes and no price, best bid and ask, the 24-hour move, volume, resting liquidity, the close date and a link — no wallet, no API key, no browser.

Five modes: markets (one row per tradable contract), events (one row per question with every outcome and its probability), search by keyword, price history, and the order book with both sides. A run over the active markets takes a few seconds.
Tested head-to-head — 24 September 2026

The same request went to this Actor and to the five most-used Polymarket Actors on the Apify Store on the same afternoon: open Bitcoin markets, busiest first, 20 rows (a crypto tag where an Actor has no keyword search), from a fresh free account. This Actor put the day's most traded Bitcoin contracts — the daily "above $X on September 24" and "Bitcoin up or down" markets, eight of its 20 rows — at the top; of the others, one returned a single daily market and the rest none.
| This Actor | The 5 others | |
|---|---|---|
| Busiest market returned (24h volume) | $197,862 | $0 – $159,446 |
| Fields per market | 36 | 17 – 27 |
What is Polymarket Scraper?
Polymarket is the global crypto-settled prediction market: contracts that pay $1 if something happens, on elections, wars, rates, crypto prices, culture and sport. Its price is the crowd's probability, and this Actor reads all of it in one call — for traders, journalists, researchers, dashboards and AI agents that get asked "what are the odds this candidate wins".
What data does it return?
Markets
| Field | Example |
|---|---|
marketId, slug, clobTokenIds | 516729 · will-the-fed-cut-in-september |
question, shortTitle, eventTitle | Will the Fed cut rates in September? |
probability, yesPrice, noPrice | 62.0 (per cent) · 0.62 · 0.38 |
bestBid, bestAsk, spread, lastPrice | 0.61 · 0.63 · 0.02 · 0.62 |
priceChange24h | 0.04 — a move in price, so ±0.04 is four points of probability |
volume, volume24h, volume1w, liquidity | 4,120,880 · 218,400 · … · 96,300 |
status, result | open · empty until it settles |
openTime, closeTime, endDate | ISO 8601 |
category, tags, image | Economics · ["Fed Rates", "Politics"] |
outcomes | [{name: "Yes", price: 0.62, probability: 62.0}, {name: "No", …}] |
rules, url | resolution text · link to the market |
liquidity is the money resting in the order book — Polymarket's own depth figure. clobTokenIds is what the history and order-book modes need, and it comes back on every row.
Events
One row per question with outcomes sorted most likely first, favourite and favouriteProbability, outcomeCount, total volume and liquidity, and a ready summary sentence. This is the shape for "who will win": one row for the whole race with every candidate and their probability, instead of one contract per candidate.
Price history and order book
History returns one row per point with time, price and probability — a week at fine resolution by default, up to 90 days at daily granularity. The order book returns both sides with price and size per level.
How much does it cost?
Pay per row, and only for rows you actually get:
| Event | Price |
|---|---|
| Market | $0.0015 |
| Event | $0.0008 |
| Price point | $0.0002 |
| Order book snapshot | $0.001 |
Error rows are never charged. There is no browser and no proxy — one public JSON API — so platform usage on top of that is negligible.
| Job | Cost |
|---|---|
| 500 active markets | $0.75 |
| One market with 7 days of price history (≈56 points, one every 3 hours) | $0.011 |
| A daily 200-market snapshot for a month | $9.00 |
Other Polymarket Actors charge $0.001 to $0.012 per row, and the ones at the top of that range return the market list only. This one sits near the bottom of the range and adds events, history and order books.
Bulk export: what 50,000 markets actually cost
This Actor is built for bulk jobs — put hundreds of inputs into one run, or call it from the API on a schedule. There is no fee per run, no fee per page and no proxy charge: you pay for the rows you keep, and error rows are free. That is what decides the bill once you pull a whole market rather than a single market.
| Job | This Actor | Most-used Actor in this category |
|---|---|---|
| 50,000 markets across 100 runs | $75 | $600 |
Checked on the Apify Store on 24 September 2026 against the Actor with the most monthly users in this category; its per-run fee is counted in, as ours would be if we charged one. Some Actors here ask less per row — this table compares against the one buyers actually use most.
How to use it
- Choose 📋 What to get: markets, events, search, history or order book.
- Narrow with 🔍 Keyword (
fed,election,bitcoin,super bowl) and 🏷️ Category — several at once,Politics, Cryptokeeps a market matching either. - Set 💧 Minimum volume or 💧 Minimum liquidity. Polymarket lists thousands of near-empty contracts; a volume floor of 1000 keeps the ones people actually trade.
- Sort by 24-hour volume, total volume, liquidity, closing date, probability or biggest 24-hour move.
- Click Start, then export as JSON, CSV or Excel, or read the dataset through the API.

⬇️ Input
{"mode": "markets","query": "election","minVolume": 1000,"sortBy": "volume24h","maxMarkets": 200}
Events with all outcomes
{ "mode": "events", "category": "Politics", "minVolume": 5000, "maxMarkets": 50 }
Price history for specific markets
{ "mode": "history", "marketIds": ["516729"], "historyDays": 30 }
The deepest books only
{ "mode": "markets", "minLiquidity": 50000, "sortBy": "liquidity" }
⬆️ Output
{"type": "market","platform": "polymarket","marketId": "516729","slug": "will-the-fed-cut-in-september","question": "Will the Fed cut rates in September?","eventTitle": "Fed decision in September","category": "Economics","probability": 62,"yesPrice": 0.62,"noPrice": 0.38,"bestBid": 0.61,"bestAsk": 0.63,"spread": 0.02,"lastPrice": 0.62,"priceChange24h": 0.04,"volume": 4120880.5,"volume24h": 218400.25,"liquidity": 96300.75,"status": "open","closeTime": "2026-09-18T20:00:00Z","outcomes": [{ "name": "Yes", "price": 0.62, "probability": 62 },{ "name": "No", "price": 0.38, "probability": 38 }],"clobTokenIds": ["7147...", "1029..."],"url": "https://polymarket.com/event/will-the-fed-cut-in-september","scrapedAt": "2026-09-04T01:00:00.000Z"}
A request that fails arrives as a type: "error" row with the reason, never as a silently short list.
Use cases
Odds for a theme
Filter on election, bitcoin or fed and get every Polymarket contract on it with the probability each one implies.
Dashboards and newsletters
Sort by 24-hour move to see what repriced overnight, or by closing date for what resolves this week.
Research
Pull price history for a set of markets and study how the crowd's estimate moved against the news.
Bots and alerts
Schedule the run and alert when a probability crosses a threshold you care about.
AI agents
An agent asked "what does Polymarket say about the election" runs the search mode and reads probability straight off the rows.
🤖 For AI Agents & LLM Apps
Compact reference for agents calling this Actor through the Apify MCP server or the Apify API (lergassy/polymarket-scraper).
Purpose: returns what Polymarket currently prices for a question. Use it for "what are the odds of X", "which markets moved most today", "what does the crowd think about the election".
Minimal input:
{ "query": "election", "minVolume": 1000, "maxMarkets": 50 }
Output: one row per market — marketId, slug, question, eventTitle, category, tags, probability (per cent, the number to quote), yesPrice, noPrice, bestBid, bestAsk, spread, lastPrice, priceChange24h, volume, volume24h, liquidity, status, openTime, closeTime, outcomes, clobTokenIds, rules, url, scrapedAt. Event mode returns outcomes sorted by probability with favourite and a summary sentence; history mode one row per price point; order-book mode one row per market with both sides.
Behaviors an agent should know:
probabilityis the field to quote, in per cent.yesPriceis the same number as a price between 0 and 1, because one contract pays $1 if the event happens.priceChange24his a change in price, so 0.04 means four percentage points of probability.- Polymarket lists thousands of near-empty markets. Always pass
minVolume(1000 is a good floor) or the answer fills with noise. - Depth here is
liquidity, in dollars resting in the book. Polymarket publishes no open-interest figure at all. - Filters are applied by this Actor:
querymatches the question, event title and tags;categorymatches Polymarket tags. - Read
rulesbefore treating a market as the bet you have in mind — the resolution wording decides what actually pays. - History and order books need the market's
clobTokenIds, which come from the markets mode; passing a baremarketIdswithout having read the market first will not resolve a token. - The API is public: no wallet, no key, no proxy.
Polymarket API without a wallet
Polymarket's Gamma and CLOB endpoints are open but awkward: prices arrive as strings, outcomes as encoded arrays, and paging past the end answers with an HTTP 422 that is not an error. This Actor handles all of it and returns one stable row shape.
❓ FAQ
Is this financial advice or a trading tool?
No. It reads public market data and returns it as a table. It places no orders and holds no positions. Polymarket is restricted in some jurisdictions.
Is the probability the true chance of the event?
It is what the market pays, which is the crowd's price after fees and risk appetite. Treat it as a market price, not a forecast from a model.
How fresh are the numbers?
Live at the moment of the run. Schedule the Actor to build a time series of your own.
Do I need a wallet or an account?
No. The endpoints used here are public and read-only.
Why is there no open-interest column?
Because Polymarket does not publish one. Liquidity — money resting in the order book — is its depth measure.
Can I use it with the Apify API or an MCP server?
Yes. It runs from the API and the official clients, and AI agents reach it through the Apify MCP server without extra setup.
Your feedback
Missing a field, or a market type you want covered? Open an issue on the Issues tab — every one gets answered.
You might also like
| Actor | What it does |
|---|---|
| Prediction Markets API | Kalshi and Polymarket in one table |
| Kalshi Scraper & API | The same shape for Kalshi |
| Sports Betting Odds API | Bookmaker lines, arbitrage and value bets |
| Sports Scores & Schedules API | Live scores and schedules for 33 leagues |
Also known as
People look for this Actor as a Polymarket API, a Polymarket scraper, prediction market data, Polymarket odds, implied probability data, event contracts and election odds.
Use via API
Run this Actor from your own code or pipeline. Get your token in Apify Console → Settings → API & Integrations. Every input field below has the same name as in the JSON tab of the input form.
Python
from apify_client import ApifyClientclient = ApifyClient("<YOUR_API_TOKEN>")run = client.actor("lergassy/polymarket-scraper").call(run_input={"mode": "markets","query": "election","sortBy": "volume24h","maxMarkets": 50,"includeClosed": False})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });const run = await client.actor('lergassy/polymarket-scraper').call({"mode": "markets","query": "election","sortBy": "volume24h","maxMarkets": 50,"includeClosed": false});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
cURL (runs the Actor and returns the results in one call)
curl -X POST "https://api.apify.com/v2/acts/lergassy~polymarket-scraper/run-sync-get-dataset-items?token=<YOUR_API_TOKEN>" \-H "Content-Type: application/json" \-d '{"mode": "markets", "query": "election", "sortBy": "volume24h", "maxMarkets": 50, "includeClosed": false}'