Polymarket Scraper — Odds, Volume & Liquidity API avatar

Polymarket Scraper — Odds, Volume & Liquidity API

Pricing

$5.00 / 1,000 market scrapeds

Go to Apify Store
Polymarket Scraper — Odds, Volume & Liquidity API

Polymarket Scraper — Odds, Volume & Liquidity API

Scrape Polymarket prediction markets with parsed odds, implied probability, bid/ask spread, volume and liquidity. Outcomes and prices come back as real arrays and numbers, not JSON-encoded strings.

Pricing

$5.00 / 1,000 market scrapeds

Rating

0.0

(0)

Developer

Abhinav Gupta

Abhinav Gupta

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

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. outcomes is an array, outcomePrices is 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.
  • topOutcome and topOutcomePrice — 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.

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.
  • impliedProbability is null for markets that are not Yes/No, by design. Use topOutcome and topOutcomePrice for those.