Polymarket Scraper — Markets, Odds & Prices API avatar

Polymarket Scraper — Markets, Odds & Prices API

Pricing

from $2.00 / 1,000 market returneds

Go to Apify Store
Polymarket Scraper — Markets, Odds & Prices API

Polymarket Scraper — Markets, Odds & Prices API

Search Polymarket markets by keyword or tag, get top markets by volume, live outcome prices, 1h/24h/7d price changes, liquidity and end dates. Clean JSON per market. No API key required.

Pricing

from $2.00 / 1,000 market returneds

Rating

0.0

(0)

Developer

Samat Makatov

Samat Makatov

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

3 hours ago

Last modified

Share

Polymarket Scraper — Markets, Odds, Order Books & Price History

Structured Polymarket data for analysts, traders, researchers and AI agents: search markets or whole events by keyword, category or tag, filter by volume / liquidity / price / end date, and optionally attach the live CLOB order book and price history for each market. Clean JSON per market or per event, straight from Polymarket's public Gamma and CLOB APIs.

No API key, no proxy, no browser. Made by Yadroo.

Use cases

  • Odds dashboard — pull the top events by 24h volume (mode=events) and show the leading outcome of each with one call.
  • Movers alertsortBy=change24h + minAbsChange24h on a schedule to catch markets that moved ≥ 5 points in a day.
  • Watchlist monitoring — pass slugs / eventSlugs of the markets you care about; add includeOrderBook for depth and spread.
  • Research datasetsstatus=closed with endDateFrom/endDateTo to collect resolved markets and their outcomes for calibration studies.
  • Macro / event riskcategory=economy or tag=fed-rates to feed rate-decision probabilities into a model or a report.
  • New-market discoverysortBy=newest with onlyNew=true to get only markets created since the previous run.

Input

FieldTypeDefaultNotes
modemarkets | eventsmarketsOne row per Yes/No market, or one row per event with nested markets.
querystringKeywords (AND, case-insensitive) in question / event title. Active markets use Polymarket's own search; closed ones are scanned locally (≤ 5,000).
queriesstring[]Several keyword phrases, kept when any matches (words inside a phrase are AND-ed). Max 20.
categoryenumCurated tag shortcut, see Reference. Overrides tag/tagId.
categoriesenum[]Several curated categories in one run; results merged and deduped by id.
tagstringAny tag slug (e.g. fed-rates, cpi-release, champions-league).
tagIdstringNumeric Gamma tag id.
tagIdsstring[]Several numeric Gamma tag ids, fanned out like categories. Max 20 tag scopes in total.
statusactive | closed | allactiveClosed rows include resolvedOutcome when detectable.
includeClosedbooleanfalseLegacy alias for status=all.
slugs / ids / conditionIds / eventSlugsstring[]Exact lookups; skip search entirely.
sortByenumvolume24hrvolume24hr, volume, volume7d, liquidity, endDate, startDate, newest, change24h, competitive.
maxItems (limit)integer 1–100025Rows to return.
minVolume24h, minLiquidity, minTotalVolumeinteger USDThreshold filters.
minAbsChange24hstring 0–1Minimum absolute 24h Yes-price move, e.g. "0.05".
minAbsChange7dstring 0–1Minimum absolute 7-day Yes-price move (markets mode).
minAbsChange30dstring 0–1Minimum absolute 30-day Yes-price move (markets mode).
yesPriceMin, yesPriceMaxstring 0–10 / 1Price band filter (drop near-certain markets).
endDateFrom, endDateTodateEnd-date window (ISO).
endingWithinHoursintegerShortcut: endDateTo = now + N h.
excludeEndingWithinMinutesintegerDrop markets closing in the next N minutes (too late to trade).
excludeNegRiskbooleanfalseSkip multi-outcome (neg-risk) markets.
includeOrderBook / orderBookDepthboolean / 1–50false / 5CLOB book for the Yes token: best bid/ask, mid, spread, depth in USD, top levels.
includePriceHistory / historyInterval / historyFidelityMinutesboolean / enum / 1–1440false / 1w / 60Yes-price time series (1h, 6h, 1d, 1w, 1m, max) with first/last/min/max/change.
includeDescriptionbooleantrueSet false to drop the resolution-rules text.
fieldsstring[]Keep only these top-level fields (id, fetchedAt always kept).
onlyNewbooleanfalseReturn only ids not pushed by previous runs (state in KV store yadroo-polymarket-seen).

Reference

category values (curated tag shortcuts)

categorytag idcategorytag idcategorytag id
politics2sports1crypto21
finance120geopolitics100265economy100328
elections144pop-culture596world101970
tech1401science74business107
ai439weather84earnings1013
games100639esports64middle-east154
trump126bitcoin235ethereum39
nfl450nba745mlb100381
soccer100350tennis864ufc279

Polymarket has ~10,000 tags; any of them works via tag (slug) or tagId. Find slugs in polymarket.com URLs or via https://gamma-api.polymarket.com/tags?limit=100&offset=0 (paginate by 100) and /tags/slug/{slug}. Frequently useful: fed-rates, fomc, cpi-release, jobs-report, us-presidential-election, global-elections, crypto-prices, hit-price, champions-league, oil, israel, iran, russia, ukraine.

Sort keys

sortByGamma orderDirection
volume24hrvolume24hrdesc
volumevolumeNumdesc
volume7dvolume1wkdesc
liquidityliquidityNumdesc
endDateendDateasc (ending soonest)
startDatestartDatedesc
newestcreatedAtdesc
change24honeDayPriceChangedesc
competitivecompetitivedesc (closest to 50/50 first)

Examples

Top 25 markets right now (default)

{}

Odds table of the biggest economy events

{ "mode": "events", "category": "economy", "maxItems": 20, "minVolume24h": 10000 }

Daily movers alert (≥ 5 points, real volume, not already decided)

{ "sortBy": "change24h", "minAbsChange24h": "0.05", "minVolume24h": 5000, "yesPriceMin": "0.05", "yesPriceMax": "0.95", "maxItems": 50 }

Multi-topic news desk: macro + crypto keywords across two categories, weekly movers only

{ "categories": ["economy", "crypto"], "queries": ["Fed", "CPI", "Bitcoin"], "minAbsChange7d": "0.1", "minVolume24h": 1000, "excludeEndingWithinMinutes": 60, "maxItems": 50 }

Watchlist with depth and one-week history

{ "eventSlugs": ["fed-decision-in-september-762"], "includeOrderBook": true, "orderBookDepth": 10, "includePriceHistory": true, "historyInterval": "1w", "historyFidelityMinutes": 60 }

Resolved markets of Q3 2026 for a calibration study

{ "status": "closed", "endDateFrom": "2026-07-01", "endDateTo": "2026-09-30", "sortBy": "volume", "maxItems": 1000, "includeDescription": false, "fields": ["question", "yesPrice", "resolvedOutcome", "volumeTotal", "endDate", "url"] }

Everything ending in the next 48 hours with ≥ $50k liquidity

{ "endingWithinHours": 48, "minLiquidity": 50000, "sortBy": "endDate", "maxItems": 200 }

Output

One item per market (mode=markets), trimmed:

{
"id": "2252244",
"question": "Will there be no change in Fed interest rates after the September 2026 meeting?",
"slug": "will-there-be-no-change-in-fed-interest-rates-after-the-september-2026-meeting-615",
"url": "https://polymarket.com/market/will-there-be-no-change-in-fed-…",
"groupItemTitle": "No change",
"event": { "id": "481717", "title": "Fed Decision in September?", "slug": "fed-decision-in-september-762", "url": "https://polymarket.com/event/fed-decision-in-september-762" },
"tags": ["fomc", "economic-policy", "fed-rates", "jerome-powell"],
"category": "economy",
"outcomes": [{ "name": "Yes", "price": 0.205, "tokenId": "5615…3721" }, { "name": "No", "price": 0.795, "tokenId": "9705…3724" }],
"yesPrice": 0.205, "noPrice": 0.795, "impliedProbability": 20.5,
"lastTradePrice": 0.2, "bestBid": 0.2, "bestAsk": 0.21, "spread": 0.01,
"change1h": null, "change24h": 0.01, "change7d": -0.29, "change30d": -0.5,
"volume24h": 2811872.76, "volume7d": 13555778.82, "volume30d": 29740350.19, "volumeTotal": 36597423.05,
"liquidity": 1069021.85, "competitive": 0.92,
"startDate": "2026-05-13T21:23:13Z", "endDate": "2026-09-16T00:00:00Z", "createdAt": "2026-05-13T17:23:05Z", "hoursToEnd": 72.4,
"active": true, "closed": false, "archived": false, "acceptingOrders": true, "negRisk": true,
"resolved": false, "resolvedOutcome": null,
"conditionId": "0xa3b3…ec9a", "questionId": "0x128d…4c902", "clobTokenIds": ["5615…3721", "9705…3724"],
"orderBook": { "bestBid": 0.2, "bestAsk": 0.21, "mid": 0.205, "spread": 0.01, "bidDepthUsd": 342747.01, "askDepthUsd": 512004.3, "bids": [{ "price": 0.2, "size": 120500 }], "asks": [{ "price": 0.21, "size": 98000 }], "tickSize": 0.01, "minOrderSize": 5, "timestamp": "2026-09-12T23:35:16.000Z" },
"priceHistory": { "interval": "1w", "fidelityMinutes": 60, "first": 0.495, "last": 0.205, "min": 0.19, "max": 0.51, "change": -0.29, "points": [{ "t": "2026-09-05T23:20:24.000Z", "p": 0.495 }] },
"description": "The FED interest rates are defined in this market by…",
"sourceUrl": "https://gamma-api.polymarket.com/markets/2252244",
"fetchedAt": "2026-09-12T23:35:14.991Z"
}
FieldMeaning
yesPrice / noPriceCurrent outcome prices (0–1 = probability). impliedProbability = Yes in %.
bestBid / bestAsk / spreadTop of book as reported by Gamma; orderBook holds the live CLOB snapshot when requested.
change1h/24h/7d/30dYes-price change in probability points.
volume24h/7d/30d/Total, liquidityUSD.
competitive0–1, higher = closer to a coin-flip with two-sided interest.
hoursToEndHours until endDate at fetch time (negative once past).
negRiskMarket is part of a multi-outcome (neg-risk) event.
resolved / resolvedOutcomeFor closed markets: winning outcome when one price is ≥ 0.99.
clobTokenIds / conditionId / questionIdIdentifiers for the CLOB / on-chain layers.
priceHistory.points[]{t: ISO time, p: price} for the Yes token.

mode=events rows: id, title, slug, url, ticker, tags, category, seriesSlug, startDate, endDate, hoursToEnd, volume24h, volume7d, volumeTotal, liquidity, openInterest, competitive, commentCount, active, closed, negRisk, marketCount, topOutcome {title, yesPrice}, markets[] {id, question, groupItemTitle, slug, yesPrice, noPrice, volume24h, liquidity, closed}, resolutionSource, image, description, sourceUrl, fetchedAt.

Use it from code / agents

Apify API (curl)

curl -X POST "https://api.apify.com/v2/acts/yadroo~polymarket-markets/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"mode":"events","category":"economy","maxItems":10}'

JavaScript (apify-client)

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('yadroo/polymarket-markets').call({ query: 'Fed', includeOrderBook: true, maxItems: 5 });
const { items } = await client.dataset(run.defaultDatasetId).listItems();

Python (apify-client)

from apify_client import ApifyClient
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("yadroo/polymarket-markets").call(run_input={"sortBy": "change24h", "minAbsChange24h": "0.05", "maxItems": 20})
items = client.dataset(run["defaultDatasetId"]).list_items().items

MCP — add https://mcp.apify.com to your agent (Claude, Cursor, etc.) and call the yadroo/polymarket-markets tool with the same JSON input; the input schema is self-describing for the model.

Pricing

Pay per event: $0.001 per run start + $0.002 per item (market or event row). Typical runs: default top-25 ≈ $0.051; a 200-market movers scan ≈ $0.401; a 1,000-row research pull ≈ $2.001. Enrichment (order book / history) adds no per-item charge but makes runs slower — keep maxItems modest when enabled.

Limits & FAQ

  • Freshness — live at fetch time; Gamma's volume24hr/price-change fields refresh roughly every minute. fetchedAt is on every row.
  • Rate limits — the actor paces itself (≤ 100 rows per request, ~8 req/s, exponential backoff on 429/5xx). Polymarket's public APIs are not aggressively limited, but 1,000-row runs with both enrichments take a few minutes.
  • Keyword search on closed markets scans up to 5,000 sorted markets locally; add a tag/category or a date window to narrow it. Polymarket's search only indexes active events.
  • Missing category — assigned only when one of the curated tags is attached to the event; tags always lists what Polymarket attached.
  • Errors — invalid input (unknown category, sortBy, bad price band) fails immediately with an explicit message; unreachable API fails after 4 retries instead of looping. Missing slugs are logged as warnings, not errors.
  • Roadmap — trades/holders per market, event-level price history, webhooks-ready diff output.

Made by Yadroo. Related actors: kalshi-markets (US-regulated prediction markets), crypto-sentiment, coingecko-markets, google-news-search.