Polymarket Events Scraper
parseforge/polymarket-events-scraper
AutomationIntegrationsBusiness
Scrapes Polymarket events by tag, status, and sort order, returning each event with its markets, outcomes, prices, and liquidity as a flat row.
- Total users
- 1
- Monthly active
- 1
- Total runs
- 87
- Bookmarked
- 0
- Rating
- Not rated yet
- Last modified
- 9 days ago
Overview
Polymarket Events Scraper
Scrape Polymarket events by tag, status, or volume, up to a million per run. Every event comes with its markets, outcomes, prices, and liquidity. No API key required. Export to CSV, JSON, Excel, or XML.
Polymarket's prediction markets move fast, but pulling structured event data for analysis means wrangling paginated APIs or building your own scraper. This Actor reads the public Polymarket event feed directly, filtered by tag slug, active or closed status, and ordered by volume, liquidity, or date, and returns each match in one fixed schema.
| Who uses it | What they scrape Polymarket for |
|---|---|
| Prediction market traders | Spot high-volume events where liquidity is concentrated before placing a bet. |
| Data analysts | Build a time-series dataset of event volumes and closing prices for backtesting strategies. |
| Crypto researchers | Track which crypto-related events are attracting the most capital this week. |
| News monitors | Identify breaking-news events by sudden spikes in volume on politics or world tags. |
What it does
This Actor collects Polymarket events by tag, status, and sort order, and returns each one as a flat row with its markets and outcomes.
- ๐ท๏ธ Tag filtering: restrict to a single tag slug like sports, politics, or crypto.
- ๐ Volume and liquidity sorting: order events by the metrics that matter for trade sizing.
- โฑ๏ธ Status filters: pull only active events, only closed events, or both.
- ๐ Date ordering: sort by start date or end date to see what is new or about to resolve.
Results export to CSV, JSON, Excel, or XML, or straight from the API.
What you can do with Polymarket data
๐ Monitor volume leaders.
A trader runs the Actor daily with order=volume and active=true to see which events are attracting the most capital, then sizes positions accordingly.
๐ Research closed markets.
A data scientist sets closed=true and order=endDate to collect resolved events for a historical accuracy study of prediction market prices.
๐ Track sports markets.
A sports analyst filters by tagSlug=sports and order=liquidity to find the deepest markets for NFL and NBA events each weekend.
๐ณ๏ธ Follow political events.
A newsroom developer pulls active events with tagSlug=politics every hour to feed a live dashboard of election and policy market movements.
Why choose this scraper
| What you get | |
|---|---|
| No API key | Reads the public Polymarket feed with zero authentication. |
| Flat schema | Every event returns as one row, ready for pandas, Excel, or a database. |
| Flexible ordering | Sort by volume, liquidity, start date, or end date, ascending or descending. |
| Tag scoping | Narrow the run to a single category so you only pay for the data you need. |
How it compares
This Actor focuses on flexible event-level filtering and ordering by volume, liquidity, or date, while other Polymarket scrapers target ticker data, arbitrage scanning, or AI enrichment.
| Feature | ParseForge | Polymarket Scraper | $1 / 1k | Fast & Reliable | Polymarket + Kalshi Arbitrage Finder | Polymarket Multi-Outcome Arbitrage Scanner |
|---|---|---|---|---|
| Filter by tag slug | Yes | Not listed | Not listed | Not listed |
| Sort by volume or liquidity | Yes | Not listed | Not listed | Not listed |
| Active/closed status filter | Yes | Not listed | Not listed | Not listed |
| Arbitrage detection | Not listed | Not listed | Yes | Yes |
| Multi-outcome market scanning | Not listed | Not listed | Not listed | Yes |
| Cross-platform (Kalshi) comparison | Not listed | Not listed | Yes | Not listed |
Configure the run
Drive the Actor from a tag slug, active or closed status, and an order field, and filters run as each event is read so only matches reach your dataset. The Input tab lists every parameter.
A first run with the defaults:
{
"maxItems": 10
}
A larger pull:
{
"maxItems": 200
}
Pricing
Pay-per-result: $0.0085 per result collected. You pay only for the results written to your dataset.
| Results collected | Approximate cost |
|---|---|
| 100 results | $0.85 |
| 1,000 results | $8.50 |
| 10,000 results | $85.00 |
New Apify accounts start with $5 in free credit.
Free users
Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.
Run it
- Create a free Apify account with $5 in credit.
- Open the Polymarket Events Scraper.
- Set your inputs and any filters, then click Start.
- Export the results as CSV, Excel, JSON, or XML from the Dataset tab.
Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.
Use with AI agents (MCP)
Give an AI agent live access to Polymarket through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:
claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/polymarket-events-scraper"
Then prompt it in plain language to run the scraper and read back the results.
Troubleshooting
Why am I getting no results?
Check that your tagSlug is spelled correctly and that the active/closed filters match the events you expect. Try clearing both status checkboxes to see all events.
Why are my results missing some events?
The maxItems field caps the total returned. Increase it if you need more events, or narrow the filters to a specific tag or status to avoid hitting the limit on unrelated events.
The order I chose does not seem to be working.
Make sure the ascending checkbox is set the way you intend. The default is descending, so volume will show highest first unless you check ascending.
I got an error about the tag slug.
Tag slugs are case-sensitive and must match Polymarket's internal names exactly. Try a known slug like sports or politics first, then check the Polymarket site for the exact slug you need.
The run timed out.
Large maxItems values with broad filters can take time. Lower maxItems, add a tag filter, or increase the Actor's timeout in the run settings.
FAQ
| Question | Answer |
|---|---|
| Do I need a Polymarket account or API key? | No. The Actor reads the public event listing that Polymarket serves to web visitors, so no login or key is required. |
| What is a tag slug? | A tag slug is the short identifier Polymarket uses for categories, like sports, politics, crypto, or science. You can find them in Polymarket URLs or by browsing the site. |
| Can I get both active and closed events in one run? | Yes. Leave both the active and closed checkboxes unchecked, and the Actor will return events regardless of status. |
| How many events can I collect per run? | You set the maximum with the maxItems field, up to 1,000,000 events per run. The Actor stops when it hits that number or runs out of matching events. |
| What does the order field sort by? | You can sort by volume, liquidity, endDate, or startDate. The default is volume descending, and you can flip it to ascending with the checkbox. |
| Does this return individual market prices? | Yes. Each event row includes its nested markets and outcomes, with prices and volumes, flattened into the output schema. |
| Can I filter by multiple tags at once? | The tagSlug field accepts one slug per run. To collect multiple tags, run the Actor once per tag and merge the datasets. |
| Is this the same data I see on polymarket.com? | Yes. The Actor reads the same public feed that powers the Polymarket website, so the data matches what you see in the browser. |
| How fast is a typical run? | Speed depends on the number of events requested and Polymarket's response time, but a few hundred events usually complete in under a minute. |
| Can I schedule this to run automatically? | Yes. Use Apify's scheduler to run the Actor every hour, day, or week, and push the results to a dataset, database, or webhook. |
Related actors
Browse the full ParseForge collection for more scrapers.
๐ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.
โ ๏ธ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by Polymarket. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.
Input
| Field | Type | What it does | Default |
|---|---|---|---|
| maxItems | integer | Maximum number of events to collect per run. | 10 |
| active | boolean | Restrict to active events. | not set |
| closed | boolean | Restrict to closed events. | not set |
| tagSlug | string | Filter events by tag slug (e.g. sports, politics, crypto). | not set |
| order | string (4 options) | Field used to order the events. | volume |
| ascending | boolean | Order ascending instead of descending. | not set |
Pricing
from $7.50 per 1,000 results
| Charged for | What it is | Price each |
|---|---|---|
| result | Single result in the default dataset. | $0.0075 to $0.0085 |
Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.
API
One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.
curl -X POST "https://api.apify.com/v2/acts/parseforge~polymarket-events-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"helloWorld": 123
}' Examples
Input that runs as-is.
{
"helloWorld": 123
} Reviews
No reviews yet. Be the first.
Issues
We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.
Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.
