Polymarket Leaderboard Scraper
Pricing
from $1.49 / 1,000 polymarket leaderboard profiles
Polymarket Leaderboard Scraper
Scrape Polymarket leaderboard rankings with full trader profiles. Extract wallet addresses, usernames, profit/loss, volume, positions, recent trades, bios, and social links. Filter by time range, category, and ranking type.
Pricing
from $1.49 / 1,000 polymarket leaderboard profiles
Rating
0.0
(0)
Developer
ParseBird
Actor stats
1
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Polymarket Leaderboard Scraper
Scrape the Polymarket leaderboard and get full trader profiles with wallet addresses, profit/loss, volume, open positions, and recent trades. Filter by time range, category, and ranking type. Fast API-based scraping — no browser needed.
| Extract Polymarket's top traders with wallet addresses, P&L, volume, open positions, and trade history — powered by public APIs for maximum speed and reliability. |
Copy to your AI assistant
Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.
parsebird/polymarket-scraper on Apify. Call: ApifyClient("TOKEN").actor("parsebird/polymarket-scraper").call(run_input={...}), then client.dataset(run["defaultDatasetId"]).list_items().items for results. Key inputs: timeRange (string, "DAY"/"WEEK"/"MONTH"/"ALL", default "MONTH"), category (string, "OVERALL"/"POLITICS"/"SPORTS"/"CRYPTO"/"FINANCE"/"CULTURE"/"MENTIONS"/"WEATHER"/"ECONOMICS"/"TECH", default "OVERALL"), leaderboardType (string, "PNL"/"VOL", default "PNL"), maxResults (integer, 1-1000, default 20), includePositions (boolean, default true), includeActivity (boolean, default true). Full actor spec: fetch build via GET https://api.apify.com/v2/acts/parsebird~polymarket-scraper (Bearer TOKEN). Get token: https://console.apify.com/account/integrations
What does Polymarket Leaderboard Scraper do?
This Actor scrapes Polymarket's leaderboard rankings and enriches each trader with detailed profile data. It uses Polymarket's public REST APIs directly — no browser needed — making it fast, reliable, and cost-effective.
For each trader on the leaderboard, the scraper collects:
- Leaderboard data — rank, wallet address, username, profile image, P&L, volume, verified badge, X (Twitter) handle
- Profile enrichment — display name, bio, join date, profile URL
- Portfolio value — total current positions value
- Open positions (optional) — market title, outcome, size, avg price, current value, cash P&L, percent P&L
- Recent trades (optional) — last 10 trades with market title, outcome, side, size, price, USDC size, timestamp
Why scrape Polymarket?
- Trading intelligence — Track the top-performing traders on the world's largest prediction market and analyze their strategies
- Portfolio analysis — Study what positions the best traders hold, their entry prices, and current P&L
- Market research — Identify trending markets by seeing where top traders are placing bets
- Wallet tracking — Get wallet addresses of top traders for on-chain analysis and copy-trading
- Social discovery — Find X (Twitter) handles and profiles of influential prediction market traders
- Data enrichment — Feed trader data into your own analytics platform, dashboard, or trading tools
- Academic research — Study prediction market behavior, trader performance, and market efficiency
How to use
- Go to the Polymarket Leaderboard Scraper page on Apify Store
- Click Try for free
- Configure your input:
- Time Range — Today, This Week, This Month, or All Time
- Category — All Categories, Politics, Sports, Crypto, Finance, Culture, etc.
- Leaderboard Type — Rank by Profit/Loss or Volume
- Max Results — How many traders to scrape (1–1000)
- Include Positions — Fetch current open positions for each trader
- Include Recent Trades — Fetch last 10 trades for each trader
- 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 |
|---|---|---|---|
timeRange | enum | MONTH | Leaderboard time period: DAY (today), WEEK, MONTH, ALL |
category | enum | OVERALL | Market category: OVERALL, POLITICS, SPORTS, CRYPTO, FINANCE, CULTURE, MENTIONS, WEATHER, ECONOMICS, TECH |
leaderboardType | enum | PNL | Rank by profit/loss (PNL) or trading volume (VOL) |
maxResults | integer | 20 | Number of traders to scrape (1–1000) |
includePositions | boolean | true | Fetch current open positions for each trader |
includeActivity | boolean | true | Fetch last 10 trades for each trader |
Output data
Each result represents one trader with the following fields:
| Field | Type | Description |
|---|---|---|
rank | number | Leaderboard position |
walletAddress | string | Trader's proxy wallet address |
username | string | Polymarket username |
displayName | string | Display name from profile |
profileImage | string | Profile image URL |
xUsername | string | X (Twitter) handle |
verifiedBadge | boolean | Whether the trader is verified |
profitLoss | number | Profit/loss for the selected time period |
volume | number | Trading volume for the selected time period |
positionsValue | number | Total current portfolio value |
bio | string | Profile bio text |
joinedAt | string | Account creation date |
profileUrl | string | Full Polymarket profile URL |
positions | array | Current open positions (if enabled) |
recentTrades | array | Last 10 trades (if enabled) |
scrapedAt | string | ISO timestamp of when the data was scraped |
Positions array fields
| Field | Type | Description |
|---|---|---|
title | string | Market question title |
outcome | string | Position outcome (Yes/No) |
size | number | Position size |
avgPrice | number | Average entry price |
currentValue | number | Current position value |
cashPnl | number | Cash profit/loss |
percentPnl | number | Percentage profit/loss |
curPrice | number | Current market price |
eventSlug | string | Market event slug |
Recent trades array fields
| Field | Type | Description |
|---|---|---|
title | string | Market question title |
outcome | string | Trade outcome (Yes/No) |
side | string | Trade side (BUY/SELL) |
size | number | Trade size |
price | number | Trade price |
usdcSize | number | Trade value in USDC |
timestamp | string | Trade timestamp |
eventSlug | string | Market event slug |
Example output
{"rank": 1,"walletAddress": "0x1234...abcd","username": "toptrader","displayName": "Top Trader","profileImage": "https://polymarket-upload.s3.us-east-2.amazonaws.com/...","xUsername": "toptrader_x","verifiedBadge": true,"profitLoss": 125000.50,"volume": 500000.00,"positionsValue": 75000.00,"bio": "Full-time prediction market trader","joinedAt": "2023-06-15T12:00:00.000Z","profileUrl": "https://polymarket.com/@toptrader","positions": [{"title": "Will Bitcoin hit $100k by end of 2026?","outcome": "Yes","size": 1000,"avgPrice": 0.65,"currentValue": 750.00,"cashPnl": 100.00,"percentPnl": 15.38,"curPrice": 0.75,"eventSlug": "bitcoin-100k-2026"}],"recentTrades": [{"title": "US Presidential Election 2028 Winner","outcome": "Yes","side": "BUY","size": 500,"price": 0.42,"usdcSize": 210.00,"timestamp": "2026-03-27T14:30:00.000Z","eventSlug": "us-presidential-election-2028"}],"scrapedAt": "2026-03-28T10:00:00.000Z"}
Use with the Apify API
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("parsebird/polymarket-scraper").call(run_input={"timeRange": "WEEK","category": "POLITICS","leaderboardType": "PNL","maxResults": 50,"includePositions": True,"includeActivity": True,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(f"#{item['rank']} {item.get('username', 'N/A')} — P&L: ${item.get('profitLoss', 0):,.2f}")
Pricing
This Actor uses Pay-per-event pricing:
| Event | Cost | Rate |
|---|---|---|
pm-leaderboard-profile | $0.00149 | $1.49 per 1,000 traders |
Each trader profile scraped incurs one charge — this includes leaderboard rank, profile enrichment, positions, and activity data.
Cost examples:
- 20 traders (default): $0.03
- 100 traders: $0.15
- 500 traders: $0.75
- 1,000 traders: $1.49
You only pay for the traders actually returned.
Tips and best practices
- Start small — Set
maxResultsto 10–20 for your first run to verify the output format meets your needs. - Disable enrichment for speed — Set
includePositionsandincludeActivitytofalseif you only need basic leaderboard data. This significantly reduces API calls and run time. - Time range matters — The
DAYtime range may return fewer traders thanALL. AdjustmaxResultsaccordingly. - Rate limits — The scraper respects Polymarket's API rate limits (1,000 req/10s general, 150 req/10s for positions). Concurrency is capped internally.
- No browser needed — This Actor uses Polymarket's public REST APIs directly, so it's fast and doesn't require Playwright or residential proxies.
- Scheduling — Set up daily or weekly runs to track leaderboard changes and trader performance over time.
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 leaderboard data is based on their public APIs, which may have slight delays compared to real-time on-chain data.
- The
positionsendpoint has a stricter rate limit (150 req/10s). For large scrapes (500+ traders), the scraper automatically throttles to stay within limits. - Some traders may not have profile data (bio, display name, X handle) if they haven't set up their Polymarket profile.
- Portfolio value reflects the current snapshot and may change rapidly during active trading hours.