Polymarket Market Scraper
Pricing
from $1.49 / 1,000 polymarket market data
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
Actor stats
1
Bookmarked
2
Total users
2
Monthly active users
2 days ago
Last modified
Categories
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 | ||
|
Top traders, wallets, P&L, positions |
➤ You are here |
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
- Go to the Polymarket Market Scraper page on Apify Store
- Click Try for free
- 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
- Click Start and wait for the run to finish
- Download your data in JSON, CSV, Excel, or connect via API
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
category | enum | "" (all) | Market category: Politics, Sports, Crypto, Pop Culture, Finance, Science, Tech, AI |
status | enum | active | Market status: active, closed, all |
minVolume | number | 0 | Minimum total volume in USD |
maxResults | integer | 100 | Maximum markets to return (1–5,000) |
keyword | string | "" | Search for specific topics (case-insensitive) |
sortBy | enum | volume | Sort by: volume, liquidity, newest, closingSoon |
Output data
Each result represents one prediction market:
| Field | Type | Description |
|---|---|---|
question | string | Market question |
outcomes | array | Outcome labels (e.g., ["Yes", "No"]) |
outcomePrices | array | Outcome prices (e.g., [0.55, 0.45]) |
volume | number | Total trading volume (USD) |
volume24hr | number | 24-hour trading volume |
liquidity | number | Current market liquidity |
bestBid | number | Best bid price |
bestAsk | number | Best ask price |
lastTradePrice | number | Last trade price |
spread | number | Bid-ask spread |
oneDayPriceChange | number | 24-hour price change |
active | boolean | Whether the market is actively trading |
closed | boolean | Whether the market is closed/resolved |
endDate | string | Market resolution deadline |
description | string | Resolution criteria (truncated to 500 chars) |
eventTitle | string | Parent event title |
eventSlug | string | Parent event slug |
slug | string | Market slug |
marketUrl | string | Full Polymarket URL |
scrapedAt | string | ISO 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 ApifyClientclient = 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:
| Event | Cost | Rate |
|---|---|---|
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
keywordfilter searches event titles, market questions, and descriptions. Great for finding specific topics. - Filter by volume — Set
minVolumeto filter out illiquid or inactive markets. A good starting point is $10,000+. - Closing soon — Use
sortBy: closingSoonto find markets about to resolve — useful for time-sensitive trading. - Category browsing — Use
categoryto 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
nullvalues forbestBid,bestAsk, orspreadif 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.