Polymarket Markets Scraper
Pricing
Pay per event
Polymarket Markets Scraper
📈 Extract Polymarket prediction markets, odds, volume, liquidity, outcomes, tags, events, status, and dates from the public Gamma API.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Extract Polymarket prediction markets, odds, prices, volume, liquidity, tags, events, and resolution dates from the public Polymarket Gamma API.
Use this actor to build market monitors, trading research dashboards, news alerts, quant datasets, and content calendars around live prediction-market questions.
What does Polymarket Markets Scraper do?
Polymarket Markets Scraper collects one row per Polymarket market.
It reads the public Gamma API.
It does not require a Polymarket login.
It does not open a browser.
It returns normalized fields that are ready for spreadsheets, BI tools, databases, and automated workflows.
Typical output includes the market question, market URL, status flags, outcomes, outcome prices, CLOB token IDs, volume, liquidity, best bid, best ask, last trade price, dates, tags, events, images, and the raw API object when requested.
Who is it for?
Prediction-market traders
Track markets that match a topic.
Monitor odds and liquidity.
Build watchlists for active questions.
Export candidate markets into trading notebooks.
Quant researchers
Collect repeatable market snapshots.
Combine odds with news, social, or macro datasets.
Study volume, liquidity, and market status over time.
News and finance teams
Find public market questions around elections, crypto, companies, sports, and policy.
Use odds as a signal for editorial planning.
Feed market changes into dashboards or alerts.
Content and SEO teams
Discover trending prediction questions.
Create topic briefs from live market data.
Generate pages, newsletters, or market roundups from structured rows.
Why use this actor?
✅ No login is required for the default public-data workflow.
✅ HTTP-only collection keeps runs fast and inexpensive.
✅ One dataset row per market makes exports easy to use.
✅ Outcome prices are parsed into arrays and normalized detail objects.
✅ Direct market URLs, market IDs, and slugs are supported.
✅ Raw Gamma API objects can be included for advanced analysis.
✅ Pay-per-result pricing is predictable for scheduled monitoring.
Data you can extract
| Field | Description |
|---|---|
marketId | Gamma API market ID |
conditionId | Prediction market condition ID |
questionId | Question identifier when available |
question | Market question text |
url | Polymarket market URL |
slug | Polymarket market slug |
active | Whether the market is active |
closed | Whether the market is closed |
outcomes | Outcome names such as Yes and No |
outcomePrices | Current outcome prices from the API |
outcomeDetails | Outcome, price, and CLOB token ID objects |
volume | Market volume |
liquidity | Market liquidity |
bestBid | Best bid price |
bestAsk | Best ask price |
lastTradePrice | Latest trade price |
endDate | Market end date |
tags | Tags returned by Polymarket |
events | Related event summaries |
rawData | Optional full source record |
How much does it cost to scrape Polymarket markets?
This actor uses pay-per-event pricing.
You pay a small start fee per run.
You then pay per market row saved to the dataset.
The default input collects 100 markets, which is suitable for a first test and for scheduled monitoring.
Because the actor uses the public API and no browser, compute cost is low.
For large monitoring jobs, increase maxItems and keep includeRawData off unless you need the full source object.
Input options
Maximum markets
Set maxItems to the number of market rows you want.
The default is 100.
The maximum is 10,000.
Market status
Choose active markets, closed markets, or all markets.
Active markets are the default because they are most useful for monitoring.
Search text
Use search to filter by words in question text, descriptions, slugs, tags, categories, and event titles.
Examples:
bitcoinelectionfedtrumpnba
Category or tag filter
Use category when you want a broad topic filter such as Crypto, Politics, Sports, or Elections.
The actor applies this defensively over the normalized market text because Polymarket API category fields can vary by market.
Exact markets
Use marketUrls, marketIds, or marketSlugs for exact watchlists.
This is useful when you already know which markets you need to track.
Advanced limits
Use maxPages and pageSize to control API pagination.
Most users can keep the defaults.
Example input
{"maxItems": 100,"status": "active","search": "bitcoin","includeRawData": false}
Example output
{"marketId": "540817","question": "New Rihanna Album before GTA VI?","url": "https://polymarket.com/market/new-rhianna-album-before-gta-vi-926","active": true,"closed": false,"outcomes": ["Yes", "No"],"outcomePrices": [0.12, 0.88],"volume": 12345.67,"liquidity": 891.23,"bestBid": 0.11,"bestAsk": 0.13,"endDate": "2026-01-01T00:00:00Z","scrapedAt": "2026-07-09T00:00:00.000Z"}
How to scrape active Polymarket markets
-
Open the actor on Apify.
-
Keep
statusset toactive. -
Set
maxItemsto the number of markets you need. -
Optionally enter a search keyword such as
bitcoinorelection. -
Click Start.
-
Export the dataset as JSON, CSV, Excel, or via API.
How to monitor exact market URLs
Paste market URLs into marketUrls.
Set maxItems to at least the number of URLs.
Run the actor on a schedule.
Connect the dataset to your alerting or database workflow.
Integrations
Google Sheets
Export the dataset as CSV or connect via the Apify Google Sheets integration.
Use it for watchlists, market snapshots, and editorial planning sheets.
Databases
Send output to PostgreSQL, BigQuery, Snowflake, or any destination supported by Apify integrations.
Use marketId and scrapedAt for time-series snapshots.
Dashboards
Connect runs to Looker Studio, Metabase, Grafana, or a custom dashboard.
Track liquidity, price changes, and active market counts.
Alerts
Use scheduled runs with webhooks.
Trigger alerts when new matching markets appear or when odds cross a threshold in your downstream workflow.
API usage
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/polymarket-markets-scraper').call({maxItems: 100,status: 'active',search: 'bitcoin'});console.log(run.defaultDatasetId);
Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_APIFY_TOKEN')run = client.actor('automation-lab/polymarket-markets-scraper').call(run_input={'maxItems': 100,'status': 'active','search': 'bitcoin',})print(run['defaultDatasetId'])
cURL
curl -X POST 'https://api.apify.com/v2/acts/automation-lab~polymarket-markets-scraper/runs?token=YOUR_APIFY_TOKEN' \-H 'Content-Type: application/json' \-d '{"maxItems":100,"status":"active","search":"bitcoin"}'
MCP usage
You can use this actor from Claude through Apify MCP.
MCP endpoint:
https://mcp.apify.com/?tools=automation-lab/polymarket-markets-scraper
Claude Code setup:
$claude mcp add apify-polymarket --url "https://mcp.apify.com/?tools=automation-lab/polymarket-markets-scraper"
Claude Desktop JSON config:
{"mcpServers": {"apify-polymarket": {"url": "https://mcp.apify.com/?tools=automation-lab/polymarket-markets-scraper"}}}
Example prompts:
- "Scrape 100 active Polymarket markets about bitcoin and summarize the highest-liquidity questions."
- "Collect active election markets and return a table of question, odds, volume, and end date."
- "Monitor these Polymarket URLs and tell me which outcomes are priced above 70%."
Tips for better results
Keep the first run small.
Use exact market URLs for critical watchlists.
Use broad search terms for discovery.
Set includeRawData only when you need source-specific fields not exposed in the normalized schema.
Schedule repeat runs when you need changes over time.
Use marketId and conditionId as durable join keys.
Common workflows
Active crypto market monitor
Set status to active.
Set search to bitcoin or crypto.
Run hourly.
Track outcomePrices, volume, and liquidity downstream.
Election question tracker
Set search to election.
Export question, URL, outcomes, prices, and end date.
Use the output for editorial monitoring.
Exact portfolio watchlist
Paste known market URLs.
Run on a schedule.
Compare each run to the previous dataset in your own database.
Reliability notes
The actor uses Polymarket's public Gamma API.
The API is public and currently reachable without authentication.
Public API fields can change.
The actor therefore preserves key raw arrays and can include the full raw record when requested.
If Polymarket changes a field name, the raw object can help you adapt downstream processing quickly.
Limitations
This actor does not place trades.
It does not access private account data.
It does not scrape user portfolios.
It does not guarantee real-time order book depth.
It returns the public API snapshot available at run time.
Legality and legal compliance
Polymarket market data is public, but you are responsible for using exported data lawfully.
Respect applicable laws, platform terms, and trading rules.
Do not use the actor to make automated trading decisions without appropriate review.
Troubleshooting
I got fewer rows than maxItems
Your filters may be narrow.
Try removing search or category, or increase maxPages.
Exact URL inputs can also produce fewer rows if some URLs no longer resolve to public markets.
Outcome prices look like decimals
Polymarket represents prices as probabilities between 0 and 1.
For percentages, multiply by 100 in your spreadsheet or database.
I need a field not in the table
Set includeRawData to true.
The dataset will include the full Gamma API market object for each row.
Related scrapers
Explore other Automation Lab finance and market-data actors on Apify:
- https://apify.com/automation-lab/google-news-scraper
- https://apify.com/automation-lab/website-contact-finder
- https://apify.com/automation-lab/rss-feed-scraper
FAQ
Does it need proxies?
No. The default implementation calls the public Gamma API directly.
Does it need a Polymarket account?
No. The actor collects public market data only.
Can I run it on a schedule?
Yes. Scheduled runs are useful for monitoring prices, volume, liquidity, and new markets.
Can I export to CSV?
Yes. Apify datasets support CSV, JSON, Excel, XML, RSS, and API access.
Can I collect closed markets?
Yes. Set status to closed.
Can I collect both active and closed markets?
Yes. Set status to all.
Is this official Polymarket software?
No. It is an independent Apify actor that reads public Polymarket data.