Polymarket Scraper | Odds, Events & Profiles
Pricing
from $1.10 / 1,000 results
Polymarket Scraper | Odds, Events & Profiles
Scrape Polymarket events, markets, odds, volume, tags, sports and comments. Rows include org emails (hello@ / press@) and commenter X handles. No phones or street addresses. Unofficial — not affiliated with Polymarket.
Pricing
from $1.10 / 1,000 results
Rating
0.0
(0)
Developer
kane liu
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
18 hours ago
Last modified
Categories
Share
Polymarket Scraper — Events, Markets, Odds, Volume & Liquidity
Scrape Polymarket prediction market data — then download structured results as Excel, CSV, or JSON.
Use this Actor as a practical Polymarket API alternative for odds monitoring, event research, category tracking, and sports/series market intelligence. Enter a mode (events, event detail, search, tags, sports, series, teams, comments, or CLOB catalog), pick a locale, and get Dataset rows with titles, slugs, prices, volume, liquidity, market URLs, org emails, and (on comments) commenter names / X handles.
- Scrape Polymarket events, markets, tags, sports, series, teams, search, comments, CLOB market catalog, order books, leaderboard, positions, trades, holders, resolutions, and perps instruments
- Filter by category / tag, series (e.g. NFL), sport, featured / active / closed, and sort order (volume, liquidity, …)
- Capture outcome prices, volume / volume24hr, liquidity, negRisk, market counts, and optional price history
- Support verified locales: en, zh, es, de, fr, pt, ru, ko, ja
- Export to Excel / CSV / JSON, or connect Make, n8n, Zapier, Python, or the Apify API
- Pay per Dataset row — Actor start + each delivered result; platform usage is included (you do not pay separate Apify compute on top)
Unofficial community Actor — not affiliated with Polymarket. Collect only publicly available metadata. You are responsible for complying with Polymarket terms and applicable law.
What does the Polymarket Scraper do?
Polymarket Scraper lets you extract structured prediction-market data from Polymarket without running your own browser farm. Give it a mode and filters, then start a run.
Under the hood, the Actor:
- Validates your input (mode, locale, tags / series / event slugs, filters)
- Calls the control-plane broker and its managed VPS worker, which reads the public Gamma API, CLOB, Data API v2, site BFF, and Perps read surfaces
- Normalizes events, markets, tags, sports, series, teams, and comments into Dataset rows
- Writes
RUN_SUMMARY(andERROR_SUMMARYon failure) to the key-value store
You run it like any other Apify Actor — schedule it, call it from the API, or plug it into automations.
What Polymarket data can I extract?
| Data | Events list | Event detail | Markets / CLOB | Tags / Sports / Series / Teams |
|---|---|---|---|---|
| Title / question / slug | ✅ | ✅ | ✅ | ✅ |
| Event / market URL | ✅ | ✅ | ✅ | — |
| Outcome prices / top outcomes | ✅* | ✅ | ✅ | — |
| Volume / volume24hr / liquidity | ✅ | ✅ | ✅ | — |
| Tags / category | ✅ | ✅ | — | ✅ |
| Neg-risk / market count | ✅ | ✅ | — | — |
| Series / sport / league | ✅** | ✅ | — | ✅ |
| Comments | — | ✅*** | — | — |
| Org emails / commenter X | ✅ | ✅ | ✅ | ✅ |
| CLOB tick / min size / conditionId | — | — | ✅**** | — |
| Price history | ✅***** | ✅***** | ✅***** | — |
*When markets are included or flattened.
**Via seriesSlug / sport filters or expand modes.
***mode=comments.
****mode=clob_markets.
*****Optional enrichPriceHistory (slower).
Why scrape Polymarket?
Polymarket is one of the largest public prediction-market platforms. Teams scrape Polymarket to:
- Monitor event odds and volume across politics, crypto, sports, and culture
- Build research datasets from category / series / sport taxonomies
- Track liquidity and featured markets for quant or content workflows
- Pull market metadata and optional price history into dashboards or agents
- Export clean rows instead of hand-copying the Polymarket UI
Compared with leaderboard-only or whale-trade Actors, this Actor focuses on events + markets + taxonomy (tags, sports, series, teams) with locale-aware titles.
More Actors like this
Need another site or vertical? Use a dedicated Actor below for structured fields. Stay on Polymarket Scraper for Polymarket events, markets, odds, tags, sports, series, and teams.
Similar intelligence & content scrapers
- Stealth Web Scraper
- Hacker News Scraper
- Reddit Scraper
- YouTube Research Scraper
- TikTok Scraper
- Facebook Ad Library Scraper
- TikTok Ads Scraper
- Google Maps Scraper
Prefer another specialized scraper?
If your target has a specialized Actor below, use that first — usually cheaper and more structured than a generic scrape.
Jobs & Freelance
- LinkedIn Jobs Scraper
- Indeed Jobs Scraper
- Upwork Jobs Scraper
- Glassdoor Scraper
- Fiverr Gigs Scraper
- Bayt Jobs Scraper
E-commerce
- Walmart Product Scraper
- Amazon Search Scraper
- Shopee Search Scraper
- Etsy Scraper
- SHEIN Product Scraper
- Temu Product Scraper
- Target Product Scraper
- Allegro Scraper
Real Estate
- Zillow & Zumper Scraper
- Realtor.com Scraper
- Apartments.com Rental Scraper
- Rightmove Scraper
- Idealista Scraper
- realestate.com.au Scraper
Travel & Stays
Social & Content
Ads Intelligence
Local & Maps
→ See the full catalog in Related Actors below, or browse apify.com/lentic_clockss.
How to use (no code required)
- Click Try for free (or Start) on this Actor page
- Leave mode on Auto, or choose one — e.g.
events,event,search,teams,clob_markets - Set filters —
tagSlug/seriesSlug/sport/locale/maxItems - Click Start — rows appear in the Dataset tab
- Download CSV / Excel / JSON, or pull via API
Example inputs
Top crypto events (Chinese locale titles where available):
{"mode": "events","locale": "zh","tagSlug": "crypto","maxItems": 20,"includeMarkets": false}
NFL series event list (Spanish locale):
{"mode": "events","locale": "es","seriesSlug": "nfl","maxItems": 20,"includeMarkets": false}
Single event with nested markets:
{"mode": "event","eventSlug": "fed-decision-in-july-181","locale": "en","includeMarkets": true}
What to fill in
mode defaults to Auto: the Actor picks the mode from the fields you fill. Pick a mode yourself to force it.
| Mode | Fill at least | If you leave it empty |
|---|---|---|
| Auto | any one field below | Example run: searches the sample query bitcoin, at most 3 rows |
event / resolutions | eventSlugs, eventIds, eventSlug or eventId | Auto picks another mode, or the run stops with INVALID_INPUT |
search | query | same as above |
comments | parentEntityId or an event slug/ID | same as above |
book | tokenId | same as above |
positions | user | same as above |
holders | user, conditionId or tokenId | same as above |
events | nothing (optional tagSlugs, tagSlug, seriesSlug, sport) | top open events by 24h volume |
series / sports / teams | nothing (optional seriesSlug / sport / league) | the full list |
markets, tags, categories, clob_markets, leaderboard, trades, perps, data_status | nothing | the full list or latest page |
With Auto, the first filled field wins in this order: event slugs/IDs → comments parent → tokenId / conditionId / user → seriesSlug → league → sport → tags → query. Fields that belong to another mode are ignored and listed in the INPUT_REPORT record of the run's key-value store, together with anything that was filled in or renamed. maxResults and limit are accepted as other names for maxItems. Unknown fields and invalid filter values (for example an unknown order) are ignored with a warning instead of failing the run.
An error starting with INVALID_INPUT: names the field to fill and never repeats what you typed.
Permissions: this Actor runs with Apify limited permissions; it only reads its own input and writes its own dataset and key-value store.
Input overview
| Field | Purpose |
|---|---|
mode | auto (default), events, event, markets, search, tags, series, sports, teams, comments, categories, clob_markets, book, leaderboard, positions, trades, holders, resolutions, perps, data_status |
tokenId / user / conditionId | Book, positions, trades, and holders identifiers |
locale | en / zh / es / de / fr / pt / ru / ko / ja |
tagSlug / tagSlugs | Category filters for event lists |
seriesSlug | Series-scoped event list (e.g. nfl) |
sport / league | Sports expand / teams filter |
eventSlug(s) / eventId(s) | Detail lookup (batch supported) |
query | Public search |
order | volume24hr, volume, liquidity, competitive, startDate, endDate |
paginationMode | keyset or offset |
includeMarkets / flattenMarkets | includeMarkets=true adds rawMarkets[] (full Gamma payload) to event rows; flattenMarkets=true emits one billed row per market |
expandEvents | Expand sports/series into events |
enrichPriceHistory | Optional CLOB prices-history |
enrichDetails | Default on. For comments, fetch commenter xUsername |
maxItems | Maximum Dataset rows for each input; default 70 |
Full field docs live in the Input tab.
How maxItems works
maxItems is the row limit for each input, not one shared limit for the whole run:
- each value in
tagSlugs,eventSlugs, oreventIdsgets its own budget; - scalar inputs such as
tagSlug,query,seriesSlug,sport,league, orparentEntityIdcount as one input; - values above 70 are continued in parts of up to 70 rows when that mode has another page;
- event, market, tag, sport, series, team, comment, catalog, and CLOB-market rows all count toward the applicable input budget.
The complete run also stops at the maximum total charge you set on Apify. Free Apify plans remain capped at 200 rows per run and 10 runs.
Output
Each Dataset item includes a recordType such as event, market, tag, series, sport, team, comment, clob_market, book, leaderboard, position, trade, holder, resolution, perps_instrument, or data_status, plus identifiers (slug, id, conditionId), titles, metrics, URLs when available, and lead/clue keys on every row.
| Lead field | What you get |
|---|---|
emails | Org contacts from the site footer: hello@polymarket.com, press@polymarket.com |
org | { name: "Polymarket" } |
web | https://polymarket.com plus org socials; on comments, commenter https://x.com/{xUsername} when present |
person | On comments: { name, role: "commenter" }. Empty on event/list rows |
phones / address / geo | Always empty — 本站无 (no tel:, no street/门牌). Reasons in leadAbsences |
leadSource / leadReveal | contact+visible for footer emails; entity+visible for commenter profiles |
enrichDetails defaults on: comments mode also calls /api/profile/userData so xUsername is filled when the user published an X handle. It enriches the same comment row and does not create separately billed rows.
flattenMarkets, expandEvents, and enrichPriceHistory default off. When flattenMarkets is enabled, every emitted market is its own billed Dataset row and counts toward that input's maxItems budget.
Honest limits
- Commenter personal email / phone / 门牌 are not on the site. Footer emails are Polymarket the company, not the commenter (
leadAbsences.emails.person). /aboutand/contactreturn 404. Help Center has no mailto.john@polymarket.comis a signup placeholder, not a lead.- Chrome search is
/{locale}/predictions?q=and can substring-match; worker search is Gamma/public-search(different ranking). Do not treat UI hits as the API contract. - No show-phone click-reveal. Event rows stay compact by default (
marketCount+ first-markettopOutcomes). SetincludeMarkets=trueto addrawMarkets[]with the full Gamma payload, orflattenMarkets=truefor one billed market row per market. CLOB/bookis in scope withmode=bookandtokenId;bids/asksare capped at 50 levels (bidsTruncated/asksTruncatedflag clipping). recordTypeandscrapedAtare injected by the Actor layer, not the worker row — downstream consumers should not treat them as Polymarket source fields.geois alwaysnull— Polymarket has no physical-location surface; reasons are inleadAbsences.geo.
Key-value artifacts:
INPUT_ECHO— normalized non-secret inputRUN_SUMMARY— status, worker source, counts, warningsERROR_SUMMARY— present on hard failures
Pricing
Pay per Dataset row (platform usage included — User pays platform usage = No):
| Event | Price |
|---|---|
Actor Start (apify-actor-start) | $0.005 per start (per GB of memory, min 1) |
result (apify-default-dataset-item) | $1.50 / 1,000 on FREE & BRONZE |
Result tier discounts (Apify paid plan tier):
| Tier | $/1,000 | per result |
|---|---|---|
| FREE* | $1.50 | $0.0015 |
| BRONZE | $1.50 | $0.0015 |
| SILVER | $1.30 | $0.0013 |
| GOLD | $1.10 | $0.0011 |
| PLATINUM | $1.00 | $0.001 |
| DIAMOND | $0.80 | $0.0008 |
*Apify Free plan users also have Actor-developer caps below.
Free Apify plan limits (Actor developer policy)
| Cap | Value |
|---|---|
| Free runs of this Actor | 10 total |
| Free results per run | 200 |
| Paying Apify users | Unlimited runs (schema max still applies) |
These limits are set by the Actor developer, not Apify Console. When the run quota is hit, the Actor finishes with RUN_SUMMARY.status=FREE_TIER_LIMIT and a clear status message (not an opaque platform error).
The 200-row free cap applies to the whole run. On paid plans, the whole-run total is bounded by your maximum total charge even when several inputs each request up to maxItems rows.
Tips for better results
- Prefer
tagSlug/seriesSlug/sportover huge unfiltered crawls - Leave
includeMarkets: falseon large lists; usemode=eventwithincludeMarkets=truefor full markets, orflattenMarkets=truefor one row per market - For series lists, use
seriesSlug(offset pagination); avoid assumingclosed=falsealways applies - Turn on
enrichPriceHistoryonly when you need time series — it is slower - Randomize acceptance inputs; do not reuse README examples as your only production query
Built-in seed catalog
The worker ships with an offline-generated seed catalog (seed_catalog.py, regenerated by worker/deploy/build_seed_catalog.py) covering:
- ~7,400 tag slugs — full Gamma
/tagspagination merged with sitemapcategories.xmltop-level slugs - ~485 sport codes — full Gamma
/sportswith each sport's tag slugs resolved viatagIds → slug - ~50 series slugs — Gamma
/seriessingle-shot - ~50 leagues — top by team count from Gamma
/teams(the endpoint returns ~48k individual athletes across 400+ leagues; we cap to the top 50 with up to 200 teams each)
Seed-driven surfaces:
mode=categoriesemits the full seed list (no extra HTTP fetch) plus the catalog metadata rowmode=tagswithfeaturedTagsOnly=truetreats the 20 sitemap top-level categories + the 10 nav slugs as featuredmode=eventsandmode=teamswarn (but still pass through) whentagSlug/tagSlugs/seriesSlug/leagueis not in the seed catalog — helps catch typos without breaking rare but valid slugs
Regenerate after Polymarket taxonomy changes: python3 deploy/build_seed_catalog.py inside worker/.
FAQ
Is this an official Polymarket API?
No. It reads publicly available Gamma / CLOB metadata through a managed worker. Not affiliated with Polymarket.
Do I need proxies?
Egress is handled on the worker side (WORKER_PROVIDES_PROXY). You do not mint Apify residential proxies from this thin Actor by default.
Can I get order-book depth?
Yes — mode=book with tokenId reads the CLOB /book endpoint (no auth). bids/asks are capped at 50 levels; bidCount/askCount always report true depth and bidsTruncated/asksTruncated flag clipping.
Can I get trader phone numbers or street addresses?
No. Polymarket guest pages have no tel: and no 门牌. You get company emails (hello@ / press@) and, in comments mode, public usernames plus X handles when published.
Which locales work?
Verified: en, zh, es, de, fr, pt, ru, ko, ja. Locale changes titles/URLs — it is not a multi-country TLD switch.
Integrations
- Apify API / client (JS, Python)
- Schedules & webhooks
- Make, Zapier, n8n
- Export Dataset to Google Sheets, S3, or warehouses
Related Actors
All 77 public Actors from [lentic_clockss]. Click a name to open the Store detail page.
Jobs & Freelance
- LinkedIn Jobs Scraper
- Bayt Jobs Scraper
- Fiverr Gigs Scraper
- Freelancer.com Scraper
- Glassdoor Scraper
- Himalayas Jobs Scraper
- Indeed Jobs Scraper
- Jobicy Remote Jobs Scraper
- RemoteOK Jobs Scraper
- SEEK Jobs Scraper
- Upwork Jobs Scraper
Real Estate
- Zillow & Zumper Scraper
- Realtor.com Scraper
- 99.co Scraper
- Realtor.com Agents Scraper
- Apartments.com Rental Scraper
- Bayut Scraper
- Craigslist Housing Scraper
- Daft.ie Scraper
- Dot Property Scraper
- FINN.no Scraper
- Funda Scraper
- Hepsiemlak Scraper
- Idealista Scraper
- Immobiliare.it Scraper
- ImmoScout24 Scraper
- Naver Land Scraper
- OpenSooq Scraper
- Otodom Scraper
- Property Finder Scraper
- PropertyGuru Scraper
- realestate.com.au Scraper
- Realtor.ca Scraper
- Rightmove Scraper
- SeLoger Scraper
- SUUMO Scraper
- Zillow Group Scraper
E-commerce
- Shopee Search Scraper
- E-commerce Scraper
- 1688 Global Product Search Scraper
- Allegro Scraper
- Amazon Search Scraper
- ASOS Product Scraper
- Cdiscount Product Scraper
- Costco Product Scraper
- Coupang Product Scraper
- Etsy Scraper
- Lazada Scraper
- MercadoLibre Scraper
- Mercari Japan Scraper
- Rakuten Japan Scraper
- SHEIN Product Scraper
- Target Product Scraper
- Temu Product Scraper
- Walmart Product Scraper
Travel & Stays
- Booking.com & Airbnb Scraper
- Agoda Scraper
- Airbnb Listings Scraper
- Booking.com Hotels Scraper
- Despegar Scraper
- Expedia Scraper
- Traveloka Scraper
- Travelstart Flights Scraper
- Trip.com Scraper
- TripAdvisor Scraper
Social & Content
Ads Intelligence
Local & Maps
General Tools
→ Browse the full profile: apify.com/lentic_clockss