Polymarket Market Scraper avatar

Polymarket Market Scraper

Pricing

from $1.49 / 1,000 polymarket market data

Go to Apify Store
Polymarket Market Scraper

Polymarket Market Scraper

Scrape Polymarket prediction markets with prices, volume, liquidity, and outcomes. Filter by category, status, keyword, and minimum volume. Sort by volume, liquidity, newest, or closing soon.

Pricing

from $1.49 / 1,000 polymarket market data

Rating

0.0

(0)

Developer

ParseBird

ParseBird

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

2

Monthly active users

2 days ago

Last modified

Share

Polymarket Market Scraper

Scrape Polymarket prediction markets with real-time prices, volume, liquidity, and outcomes. Filter by category, status, keyword, and minimum volume. Sort by volume, liquidity, newest, or closing soon. Fast API-based scraping — no browser needed.

Extract Polymarket prediction market data — questions, outcome prices, volume, liquidity, bid/ask spreads, and price changes — powered by public APIs for maximum speed and reliability.

ParseBird Polymarket Suite   •  Prediction market data at scale
 Leaderboard
Top traders, wallets, P&L, positions
 Markets
➤ You are here
 Rewards
Daily reward rates, spreads, competitiveness

Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.

parsebird/polymarket-market-scraper on Apify. Call: ApifyClient("TOKEN").actor("parsebird/polymarket-market-scraper").call(run_input={...}), then client.dataset(run["defaultDatasetId"]).list_items().items for results. Key inputs: category (string, ""/"politics"/"sports"/"crypto"/"pop-culture"/"finance"/"science"/"tech"/"ai", default ""), status (string, "active"/"closed"/"all", default "active"), minVolume (number, default 0), maxResults (integer, 1-5000, default 100), keyword (string, default ""), sortBy (string, "volume"/"liquidity"/"newest"/"closingSoon", default "volume"). Full actor spec: fetch build via GET https://api.apify.com/v2/acts/parsebird~polymarket-market-scraper (Bearer TOKEN). Get token: https://console.apify.com/account/integrations

What does Polymarket Market Scraper do?

This Actor scrapes Polymarket's prediction markets via their public events API. It fetches market data including questions, outcome prices, trading volume, liquidity, bid/ask spreads, and price changes — all without a browser.

For each market, the scraper collects:

  • Market data — question, outcomes, outcome prices, last trade price, bid/ask spread
  • Volume metrics — total volume, 24h volume
  • Liquidity — current market liquidity
  • Price changes — 1-day price change
  • Status — active/closed, end date
  • Event context — parent event title, slug, market URL

Why scrape Polymarket?

  • Market research — Track prediction market prices and volumes across politics, sports, crypto, and more
  • Trading signals — Monitor price movements, volume spikes, and liquidity changes
  • Data analysis — Build datasets of prediction market data for research, modeling, or dashboards
  • Event tracking — Find markets closing soon or newly created markets
  • Keyword monitoring — Search for specific topics (e.g., "bitcoin", "election", "AI") across all markets
  • Portfolio tools — Feed market data into trading tools, spreadsheets, or analytics platforms

How to use

  1. Go to the Polymarket Market Scraper page on Apify Store
  2. Click Try for free
  3. Configure your input:
    • Category — All, Politics, Sports, Crypto, Pop Culture, Finance, Science, Tech, AI
    • Status — Active (trading), Closed (resolved), or All
    • Minimum Volume — Filter out low-volume markets
    • Max Results — How many markets to return (1–5,000)
    • Keyword — Search for specific topics
    • Sort By — Volume, Liquidity, Newest, or Closing Soon
  4. Click Start and wait for the run to finish
  5. Download your data in JSON, CSV, Excel, or connect via API

Input parameters

ParameterTypeDefaultDescription
categoryenum"" (all)Market category: Politics, Sports, Crypto, Pop Culture, Finance, Science, Tech, AI
statusenumactiveMarket status: active, closed, all
minVolumenumber0Minimum total volume in USD
maxResultsinteger100Maximum markets to return (1–5,000)
keywordstring""Search for specific topics (case-insensitive)
sortByenumvolumeSort by: volume, liquidity, newest, closingSoon

Output data

Each result represents one prediction market:

FieldTypeDescription
questionstringMarket question
outcomesarrayOutcome labels (e.g., ["Yes", "No"])
outcomePricesarrayOutcome prices (e.g., [0.55, 0.45])
volumenumberTotal trading volume (USD)
volume24hrnumber24-hour trading volume
liquiditynumberCurrent market liquidity
bestBidnumberBest bid price
bestAsknumberBest ask price
lastTradePricenumberLast trade price
spreadnumberBid-ask spread
oneDayPriceChangenumber24-hour price change
activebooleanWhether the market is actively trading
closedbooleanWhether the market is closed/resolved
endDatestringMarket resolution deadline
descriptionstringResolution criteria (truncated to 500 chars)
eventTitlestringParent event title
eventSlugstringParent event slug
slugstringMarket slug
marketUrlstringFull Polymarket URL
scrapedAtstringISO timestamp of when the data was scraped

Example output

{
"eventTitle": "Presidential Election Winner 2028",
"eventSlug": "presidential-election-winner-2028",
"question": "Will JD Vance win the 2028 US Presidential Election?",
"outcomes": ["Yes", "No"],
"outcomePrices": [0.32, 0.68],
"volume": 15000000.50,
"volume24hr": 250000.00,
"liquidity": 500000.00,
"bestBid": 0.31,
"bestAsk": 0.33,
"lastTradePrice": 0.32,
"spread": 0.02,
"oneDayPriceChange": -0.03,
"active": true,
"closed": false,
"endDate": "2028-11-05T00:00:00Z",
"description": "This market will resolve to 'Yes' if JD Vance wins the 2028 US Presidential Election...",
"slug": "will-jd-vance-win-2028-presidential-election",
"marketUrl": "https://polymarket.com/event/presidential-election-winner-2028",
"scrapedAt": "2026-04-12T10:00:00.000Z"
}

Use with the Apify API

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("parsebird/polymarket-market-scraper").call(run_input={
"category": "politics",
"status": "active",
"minVolume": 100000,
"maxResults": 50,
"sortBy": "volume",
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
prices = item.get("outcomePrices", [])
yes_price = prices[0] if prices else "N/A"
print(f"{item['question'][:60]} — YES: {yes_price} — Vol: ${item['volume']:,.0f}")

Pricing

This Actor uses Pay-per-event pricing:

EventCostRate
pm-market-data$0.00149$1.49 per 1,000 markets

Each market returned incurs one charge.

Cost examples:

  • 100 markets (default): $0.15
  • 500 markets: $0.75
  • 1,000 markets: $1.49
  • 5,000 markets: $7.45

You only pay for the markets actually returned.

Tips and best practices

  • Start with defaults — Run with default settings to see the most popular markets by volume.
  • Use keyword search — The keyword filter searches event titles, market questions, and descriptions. Great for finding specific topics.
  • Filter by volume — Set minVolume to filter out illiquid or inactive markets. A good starting point is $10,000+.
  • Closing soon — Use sortBy: closingSoon to find markets about to resolve — useful for time-sensitive trading.
  • Category browsing — Use category to focus on specific verticals like politics, sports, or crypto.
  • Schedule regular runs — Set up hourly or daily runs to track price and volume changes over time.
  • No browser needed — This Actor uses Polymarket's public REST APIs directly, so it's fast and doesn't require Playwright or residential proxies.

Integrations

Connect this Actor to your workflow:

  • Google Sheets — Export results directly
  • Webhooks — Trigger actions when new data arrives
  • API — Access data programmatically via the Apify API
  • Zapier / Make — Automate downstream workflows

Limitations

  • Polymarket's events API caps pages at 500 events. For very large scrapes (5,000+ markets), the Actor paginates automatically.
  • Keyword search is client-side (the API doesn't support server-side text search), so it may take longer when searching across all categories.
  • Some markets may have null values for bestBid, bestAsk, or spread if the order book is empty.
  • Market descriptions are truncated to 500 characters to keep output manageable.
  • Volume and liquidity data reflects the current snapshot and may change rapidly.