Polymarket Scraper — Odds, Volume & Liquidity API
Pricing
from $4.00 / 1,000 market scrapeds
Polymarket Scraper — Odds, Volume & Liquidity API
Screen Polymarket prediction markets by price movement or time to close, or fetch specific markets by slug or condition ID. Implied probability, favoured outcome, bid/ask spread, volume and liquidity come back as real numbers and arrays - not the JSON-encoded strings the source returns.
Pricing
from $4.00 / 1,000 market scrapeds
Rating
0.0
(0)
Developer
Abhinav Gupta
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
14 days ago
Last modified
Categories
Share
Polymarket Scraper — odds, volume and liquidity in one clean schema
Scrape Polymarket prediction markets with the numbers already parsed: implied probability, the favoured outcome, bid/ask spread, 24-hour and lifetime volume, and resting liquidity.
Why this one
Polymarket's API returns several fields as JSON-encoded strings inside JSON.
outcomes arrives as '["Yes", "No"]' and outcomePrices as
'["0.0065", "0.9935"]'. Prices and volumes arrive as strings too. Every buyer
ends up writing the same unwrapping code before they can do anything.
This does it once:
- Real arrays and real numbers.
outcomesis an array,outcomePricesis an array of numbers, volumes are numbers you can sort on. impliedProbability— the Yes price as a percentage, which is the number most people actually want and no field gives you directly.topOutcomeandtopOutcomePrice— the favourite and its price, for any market. About a third of markets are not Yes/No (Fritz vs Nakashima), so a Yes-only field is blank for them. These are populated on every row.- A working
url. Built from the parent event slug, which the market object only carries in a nested array. - Stable columns. Missing values are
null, never absent, so CSV exports line up and downstream code does not break.
Screening, not just listing
The two questions a trader actually asks are "what is moving" and "what closes soon". Both are now filters rather than something you post-process:
minPriceChangePctkeeps markets that have moved at least N percentage points across any available window. Direction is ignored — a market down 8 points passes a threshold of 5 — because a screen is about magnitude and the signed values are on the row anyway.priceChangePctcarries the largest absolute move; the source has day, week and month windows, and despite the naming there is no hourly one.maxMinutesUntilEndkeeps markets closing within a window.minutesUntilEndis on every row. Markets with no end date are excluded rather than treated as closing now — plenty have none, and the obvious implementation quietly sweeps them all into "closing soon".
Direct lookup. marketSlugs fetches specific markets by slug, one request
each, without walking the catalogue to filter it down. conditionIds does the
same by on-chain id, though that one has no server-side filter so it pages.
Input
{"status": "active","searchQuery": "fed","orderBy": "volume24hr","minVolume": 1000,"minLiquidity": 0,"maxItems": 500}
status is active, closed or all. orderBy is volume24hr, volume,
liquidity or none. searchQuery matches the question and the event title.
Output
One row per market:
{"marketId": "559651","question": "Will the Fed decrease interest rates by 25 bps after the September meeting?","url": "https://polymarket.com/event/fed-decision-in-september/fed-decrease-25-bps","eventTitle": "Fed decision in September","outcomes": ["Yes", "No"],"outcomePrices": [0.0105, 0.9895],"topOutcome": "No","topOutcomePrice": 0.9895,"yesPrice": 0.0105,"noPrice": 0.9895,"impliedProbability": 1.05,"bestBid": 0.01, "bestAsk": 0.011, "spread": 0.001,"volumeTotal": 48211900.4, "volume24hr": 1458896.2, "liquidity": 402113.9,"startDate": "2026-07-30T00:00:00.000Z","endDate": "2026-09-17T00:00:00.000Z","active": true, "closed": false, "acceptingOrders": true,"conditionId": "0x7d0a...","clobTokenIds": ["27146...", "33212..."]}
clobTokenIds are included so you can go straight to the CLOB order book for a
specific outcome without a second lookup.
A RUN_SUMMARY record reports how many markets were scanned, matched and delivered.
Who this is for
- Traders and quants tracking odds movement, spreads and liquidity
- Researchers studying prediction-market accuracy against real outcomes
- Journalists and analysts citing market-implied odds on elections, rates or sport
- Arbitrage against other venues, using bid/ask rather than last trade
Notes
- Reads Polymarket's public Gamma API. No login, no cookies, no CAPTCHA solving, no proxies.
- Prices are point-in-time. Schedule the Actor if you want a series.
impliedProbabilityis null for markets that are not Yes/No, by design. UsetopOutcomeandtopOutcomePricefor those.