# Polymarket Top Wallets & PnL Leaderboard Scraper (`logiover/polymarket-top-wallets-leaderboard`) Actor

Top-performing Polymarket wallets by PnL, ROI, winrate, volume across politics, crypto, sports, Trump categories. Per-wallet stats: pseudonym, profile image, win rate, avg bet, txs, last active, smart-money tags. Plus optional 24h overview with wallet age, total value, realized profit.

- **URL**: https://apify.com/logiover/polymarket-top-wallets-leaderboard.md
- **Developed by:** [Logiover](https://apify.com/logiover) (community)
- **Categories:** Automation, Lead generation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.50 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Polymarket Top Wallets & PnL Leaderboard — Politics, Crypto, Sports Smart-Money Traders

![Polymarket Top Wallets & PnL Leaderboard Scraper](https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/GjS6nQ8qauOdq9KGy-actor-CGEwG2lwy6yoIC84i-seRcxAiGXB-polymarket1671006384460.png)

**The definitive Polymarket leaderboard scraper.** Pulls future.news's curated **top traders** across every Polymarket category — politics, sports, crypto, Trump-tagged, more — ranked by PnL, ROI, win rate, average bet, and volume. Each wallet comes back with full leaderboard stats, smart-money tags, and (optionally) a per-wallet 24h deep-dive (wallet age, total value, 24h realized profit, 24h buys/sells).

> Per run, fetch up to **~1,000 unique top-Polymarket-traders** with rich PnL telemetry. The Polymarket equivalent of an on-chain whale leaderboard.

---

### 🚀 What this actor does

Polymarket is the largest prediction-market platform — and unlike a normal exchange, its leaderboard tells you who's making money betting on real-world outcomes (presidential elections, sports finals, crypto price moves, geopolitical events). future.news aggregates Polymarket trader data and exposes a clean public leaderboard API.

This actor calls:

- **`/events/api/smart-wallet/list?interval={1d|7d|30d|all}`** — top ~200 smart wallets across all categories.
- **`/events/api/top100/list?interval=&category={id}`** — top 100 for each category.
- (Optional) **`/pf/api/v1/wallet/{addr}/overview`** — per-wallet 24h deep-dive.

Pass an array of intervals × category IDs to merge into one dedup'd leaderboard.

---

### 💡 Use cases

- **Polymarket alpha-following dashboards** — see who's crushing it and copy their bets.
- **Election forecasting** — track which politics-category top wallets are accumulating which positions.
- **Prediction-market analytics SaaS** — power your own leaderboard / wallet-profile product.
- **Sports betting research** — find the winning sports-category wallets, study their patterns.
- **Crypto-only Polymarket** — `category: ["21"]` to isolate crypto-only bettors.
- **AI training** — labelled top-trader datasets for prediction-market ML models.
- **Influencer reality check** — public Twitter accounts boasting wins; verify against future.news's leaderboard.
- **Trump betting tracker** — the `top100_21` and Trump-tagged categories are popular speculative segments.

---

### 🏷 Categories

Polymarket category IDs that the leaderboard supports (the actor accepts any ID):

| ID | Category |
|----|----------|
| `1` | Sports |
| `2` | Politics |
| `21` | Crypto |
| `100265` | Trump-tagged / news |
| (other) | future.news exposes additional category IDs over time. |

Run `?category=` against future.news / explore the network panel to find more.

---

### ⏱ Intervals

| Interval | Meaning |
|---------|---------|
| `1d` | Last 24 hours of bets |
| `7d` | Last 7 days |
| `30d` | Last 30 days |
| `all` | All-time leaderboard |

Each (interval × category) is one API call. Default config (`1` smart-wallet × `3` categories × `1` interval) = 4 calls → ~500 unique wallets after dedup.

---

### ⚙️ Input configuration

| Field | Type | Default | Description |
|-------|------|---------|-------------|
| `intervals` | `string[]` | `["7d"]` | `1d`, `7d`, `30d`, `all` |
| `includeSmartWallet` | `boolean` | `true` | Fetch the broad smart-wallet list. |
| `categories` | `string[]` | `["1","2","21"]` | Polymarket category IDs. |
| `includeWalletOverview` | `boolean` | `false` | Per-wallet deep-dive (slow but rich). |
| `maxOverviewLookups` | `integer` | `100` | Cap overview calls. |
| `minPnl` | `number` | `0` | USD PnL threshold. |
| `minRoi` | `number` | `0` | ROI threshold (0-1). |
| `minWinRate` | `number` | `0` | Win-rate threshold (0-1). |
| `minVolumeUsd` | `number` | `0` | Volume threshold. |
| `minTxs` | `integer` | `0` | Transaction count threshold. |
| `tagFilter` | `string[]` | `[]` | Keep wallets with these tags only. |
| `deduplicate` | `boolean` | `true` | Merge wallets surfaced by multiple calls. |
| `useProxy` | `boolean` | `true` | |
| `proxyConfiguration` | `object` | residential | |
| `maxConcurrency` | `integer` | `5` | |

---

### 📦 Output fields

#### Leaderboard fields (always present)
| Field | Description |
|-------|-------------|
| `wallet` | Wallet address. |
| `name` | Display name. |
| `pseudonym` | Auto-generated pseudonym. |
| `profileImage` | Profile image URL. |
| `pnl` | USD profit. |
| `roi` | Return on invested cash (0-1). |
| `assetCash` | USD invested. |
| `winRate` | 0-1. |
| `avgBet` | Average bet size. |
| `volume` | Total USD volume. |
| `buys`, `sells`, `txs` | Bet counts. |
| `lastActive` | ISO timestamp of last bet. |
| `walletTag` | Array (e.g. `smart_money`, `top100_21`). |
| `appearedIn` | Which (kind/interval/category) rankings surfaced this wallet. |
| `polymarketUrl` | Convenience link to the Polymarket profile. |
| `futureNewsUrl` | Convenience link to the future.news profile. |
| `scrapedAt` | |

#### Per-wallet overview (when `includeWalletOverview: true`)
| Field | Description |
|-------|-------------|
| `walletAge` | Account age (epoch ms — divide by 1000 for seconds, then convert). |
| `totalValue` | Current portfolio value. |
| `totalProfit`, `totalProfitPnl` | Lifetime profit + PnL ratio. |
| `cashBal` | USD cash balance. |
| `realizedProfit24h`, `realizedProfit24hPnl` | 24h realized profit + PnL. |
| `buy24h`, `sell24h` | 24h bet counts. |
| `boughtCost24h`, `soldIncome24h` | 24h cash flow. |

---

### 🧪 Example output

```json
{
  "wallet": "0xd8d83d7a90aeef514406cc16ec224cb02440bcbe",
  "name": "dicksucks",
  "pseudonym": "Accurate-Downtown",
  "profileImage": "",
  "pnl": 11879.12,
  "roi": 0.14,
  "assetCash": 6718.92,
  "winRate": 0.52,
  "avgBet": 15.19,
  "volume": 181087.58,
  "buys": 5572,
  "sells": 433,
  "txs": 6005,
  "lastActive": "2026-05-15T09:50:17.000Z",
  "walletTag": ["smart_money", "top100_21"],
  "appearedIn": ["smart_wallet/7d", "top100/7d/cat21"],
  "polymarketUrl": "https://polymarket.com/profile/0xd8d83d7a90aeef514406cc16ec224cb02440bcbe",
  "futureNewsUrl": "https://future.news/wallet/0xd8d83d7a90aeef514406cc16ec224cb02440bcbe",
  "scrapedAt": "2026-05-15T12:00:00.000Z"
}
````

***

### 🧰 Recipes

#### 1. Daily top-trader snapshot

```json
{
  "intervals": ["1d", "7d", "30d"],
  "includeSmartWallet": true,
  "categories": ["1", "2", "21"],
  "minPnl": 100,
  "minTxs": 5
}
```

\~600-1000 wallets per day. Schedule daily for a longitudinal leaderboard archive.

#### 2. Crypto-only top traders

```json
{
  "intervals": ["7d"],
  "includeSmartWallet": false,
  "categories": ["21"],
  "minTxs": 10
}
```

#### 3. Highest-conviction win-rate (Trump tag)

```json
{
  "intervals": ["all"],
  "categories": ["100265"],
  "minWinRate": 0.65,
  "minTxs": 20
}
```

#### 4. Whales only

```json
{
  "intervals": ["30d"],
  "includeSmartWallet": true,
  "categories": ["1", "2", "21"],
  "minVolumeUsd": 100000,
  "includeWalletOverview": true,
  "maxOverviewLookups": 200
}
```

#### 5. Tag-based hunt

```json
{
  "intervals": ["all"],
  "tagFilter": ["smart_money"]
}
```

***

### 🛡️ Under the hood

- **Endpoints** —
  - `GET https://future.news/events/api/smart-wallet/list?interval={interval}`
  - `GET https://future.news/events/api/top100/list?interval={interval}&category={id}`
  - `GET https://future.news/pf/api/v1/wallet/{addr}/overview`
- **Auth** — none. Cloudflare-fronted, fingerprint-gated.
- **Proxy** — Apify Residential default.
- **Retries** — 5 attempts with exponential backoff on 403 / 429 / 5xx.
- **Deduplication** — merge wallets returned by multiple rankings; track `appearedIn`.

***

### ⚡ Performance

| Configuration | Wallets | Time | Cost |
|--------------|---------|------|------|
| 1 interval × 3 categories + smart wallet | ~500 | <30s | <$0.01 |
| 3 intervals × 5 categories + smart wallet | ~1500 | ~2 min | ~$0.04 |
| Above + overview lookups (200) | ~1500 | ~5 min | ~$0.10 |

***

### 📅 Recommended schedules

- **Daily leaderboard refresh** — once per day for snapshot archive.
- **Live alpha follow** — every 1-2 hours (use `intervals: ["1d"]`).
- **Weekly research** — once per week with all intervals + overview.

***

### ❓ FAQ

#### What's the difference between smart-wallet and top100?

**Smart-wallet** is future.news's broad meta-leaderboard (~200 wallets). **Top100** is the per-category top-100. Wallets appear in both — `deduplicate: true` merges them.

#### How are categories numbered?

Polymarket category IDs. `1` = Sports, `2` = Politics, `21` = Crypto. Others are visible by clicking categories on future.news.

#### What's `top100_21` in `walletTag`?

"This wallet is in the top-100 for category 21 (Crypto)." Tags update as ranks change.

#### Why is `pnl` negative for some "top" wallets?

Top by VOLUME or TXS can include unprofitable but extremely active traders. Add `minPnl: 0` to filter to net winners.

#### How fresh is the data?

future.news recomputes leaderboards every ~5 minutes.

#### What's `walletAge`?

Account age in epoch ms (creation timestamp).

#### Can I get a wallet's full betting history?

Not via this actor — this scrapes the leaderboard. For per-wallet detail use the **Polymarket Events, Live Odds & AI Analysis** actor or future.news's wallet pages.

#### Does it include sports betting?

Yes — `category: ["1"]` for sports specifically.

#### Why is `winRate` 0.99 for some wallets?

Sometimes a wallet has just one resolved market. Add `minTxs: 20` to filter for statistically meaningful winrates.

#### Is the data real-time?

Refreshed ~5 minutes by future.news. The actor returns whatever's current at call time.

#### How do I track a wallet over time?

Pass it into the **GMGN Wallet Portfolio & PnL Tracker** for on-chain (USDC etc.) flow, or schedule this actor daily and diff.

#### What if Polymarket's leaderboard structure changes?

The actor normalizes future.news's response. If they change schema, an update ships within 24-48 hours.

***

### 🔗 Related actors

- **Polymarket Events, Live Odds & AI Analysis** — every active prediction market with odds, sports scores, AI analysis, Twitter signals.
- **GMGN Smart Money Wallet Leaderboard** — on-chain crypto trader equivalent.
- **GMGN Wallet Portfolio & PnL Tracker** — for on-chain wallet PnL.

***

### 🆘 Support

Bug? Want a new category supported? Open an issue on the actor's Apify page.

# Actor input Schema

## `intervals` (type: `array`):

Lookback windows for ranking. `1d` = past 24h, `7d` = past week, `30d` = past 30 days, `all` = all-time leaderboard.

## `includeSmartWallet` (type: `boolean`):

Fetch the overall smart-wallet leaderboard (~200 wallets per interval).

## `categories` (type: `array`):

Polymarket category IDs to also fetch the top-100 leaderboard for. Common: 1 = Sports, 2 = Politics, 21 = Crypto, 100265 = Trump-tagged. Each category × interval is a separate call.

## `includeWalletOverview` (type: `boolean`):

For each unique wallet returned by the leaderboard calls, also fetch the per-wallet `/pf/api/v1/wallet/{addr}/overview` endpoint with wallet age, total value, 24h profit, 24h buys / sells, etc.

## `maxOverviewLookups` (type: `integer`):

Cap on per-wallet overview calls when `includeWalletOverview` is ON. Higher = more rows; 0 = lookup every unique wallet.

## `minPnl` (type: `number`):

Drop wallets whose leaderboard PnL is below this.

## `minRoi` (type: `number`):

Drop wallets whose ROI is below this (e.g. 0.05 = 5%).

## `minWinRate` (type: `number`):

Drop rows with a win rate below this (0-1). E.g. 0.5 = 50%.

## `minVolumeUsd` (type: `number`):

Drop rows whose USD volume is below this threshold. Default 0 = no filter.

## `minTxs` (type: `integer`):

Drop rows with fewer transactions than this — filters out lucky one-shot wallets.

## `tagFilter` (type: `array`):

Keep only wallets carrying these tags (e.g. `smart_money`, `top100_21`). Empty = all.

## `deduplicate` (type: `boolean`):

When ON, a wallet returned by multiple (interval, category) calls is emitted once with the merged `appearedIn` list.

## `useProxy` (type: `boolean`):

Route requests through Apify Proxy. Strongly recommended ON — residential proxy is the most reliable way to bypass Cloudflare rate limits.

## `proxyConfiguration` (type: `object`):

Apify Proxy configuration. Residential proxy group is recommended for the highest success rate against Cloudflare.

## `maxConcurrency` (type: `integer`):

Maximum number of API calls running in parallel. Higher = faster runs but more chance of hitting rate limits. 3-5 is safe.

## Actor input object example

```json
{
  "intervals": [
    "1d",
    "7d",
    "30d",
    "all"
  ],
  "includeSmartWallet": true,
  "categories": [
    "1",
    "2",
    "21",
    "100265",
    "126",
    "78",
    "309"
  ],
  "includeWalletOverview": false,
  "maxOverviewLookups": 5000,
  "minPnl": 0,
  "minRoi": 0,
  "minWinRate": 0,
  "minVolumeUsd": 0,
  "minTxs": 0,
  "tagFilter": [],
  "deduplicate": false,
  "useProxy": true,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  },
  "maxConcurrency": 5
}
```

# Actor output Schema

## `wallet` (type: `string`):

Wallet address

## `name` (type: `string`):

Display name

## `pseudonym` (type: `string`):

Polymarket auto-generated pseudonym

## `profileImage` (type: `string`):

Profile image URL

## `pnl` (type: `string`):

Profit in USD

## `roi` (type: `string`):

Return on invested cash (0-1)

## `assetCash` (type: `string`):

Cash invested

## `winRate` (type: `string`):

Win rate 0-1

## `avgBet` (type: `string`):

Average bet size

## `volume` (type: `string`):

Total USD volume

## `buys` (type: `string`):

Buy count

## `sells` (type: `string`):

Sell count

## `txs` (type: `string`):

Total transaction count

## `lastActive` (type: `string`):

ISO timestamp of last bet

## `walletTag` (type: `string`):

Polymarket smart-money tags

## `appearedIn` (type: `string`):

Which rankings surfaced this wallet

## `walletAge` (type: `string`):

Account age epoch ms (overview rows)

## `totalValue` (type: `string`):

Current portfolio value USD

## `totalProfit` (type: `string`):

Lifetime USD profit

## `totalProfitPnl` (type: `string`):

Total profit ratio

## `cashBal` (type: `string`):

USD cash balance

## `realizedProfit24h` (type: `string`):

Realized USD profit last 24h

## `realizedProfit24hPnl` (type: `string`):

Realized PnL ratio last 24h

## `buy24h` (type: `string`):

24h buy count

## `sell24h` (type: `string`):

24h sell count

## `boughtCost24h` (type: `string`):

24h bought cost USD

## `soldIncome24h` (type: `string`):

24h sold income USD

## `polymarketUrl` (type: `string`):

Polymarket profile link

## `futureNewsUrl` (type: `string`):

future.news profile link

## `scrapedAt` (type: `string`):

Scrape timestamp

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("logiover/polymarket-top-wallets-leaderboard").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("logiover/polymarket-top-wallets-leaderboard").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call logiover/polymarket-top-wallets-leaderboard --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=logiover/polymarket-top-wallets-leaderboard",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Polymarket Top Wallets & PnL Leaderboard Scraper",
        "description": "Top-performing Polymarket wallets by PnL, ROI, winrate, volume across politics, crypto, sports, Trump categories. Per-wallet stats: pseudonym, profile image, win rate, avg bet, txs, last active, smart-money tags. Plus optional 24h overview with wallet age, total value, realized profit.",
        "version": "1.0",
        "x-build-id": "BvhMModRwAtlxHqI2"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/logiover~polymarket-top-wallets-leaderboard/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-logiover-polymarket-top-wallets-leaderboard",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/logiover~polymarket-top-wallets-leaderboard/runs": {
            "post": {
                "operationId": "runs-sync-logiover-polymarket-top-wallets-leaderboard",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/logiover~polymarket-top-wallets-leaderboard/run-sync": {
            "post": {
                "operationId": "run-sync-logiover-polymarket-top-wallets-leaderboard",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "intervals": {
                        "title": "Lookback Intervals",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Lookback windows for ranking. `1d` = past 24h, `7d` = past week, `30d` = past 30 days, `all` = all-time leaderboard.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "1d",
                                "7d",
                                "30d",
                                "all"
                            ],
                            "enumTitles": [
                                "24 hours",
                                "7 days",
                                "30 days",
                                "All time"
                            ]
                        },
                        "default": [
                            "1d",
                            "7d",
                            "30d",
                            "all"
                        ]
                    },
                    "includeSmartWallet": {
                        "title": "Include Smart-Wallet Top 200",
                        "type": "boolean",
                        "description": "Fetch the overall smart-wallet leaderboard (~200 wallets per interval).",
                        "default": true
                    },
                    "categories": {
                        "title": "Category IDs (top100 leaderboards)",
                        "type": "array",
                        "description": "Polymarket category IDs to also fetch the top-100 leaderboard for. Common: 1 = Sports, 2 = Politics, 21 = Crypto, 100265 = Trump-tagged. Each category × interval is a separate call.",
                        "default": [
                            "1",
                            "2",
                            "21",
                            "100265",
                            "126",
                            "78",
                            "309"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "includeWalletOverview": {
                        "title": "Include Per-Wallet 24h Overview",
                        "type": "boolean",
                        "description": "For each unique wallet returned by the leaderboard calls, also fetch the per-wallet `/pf/api/v1/wallet/{addr}/overview` endpoint with wallet age, total value, 24h profit, 24h buys / sells, etc.",
                        "default": false
                    },
                    "maxOverviewLookups": {
                        "title": "Max Overview Lookups",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Cap on per-wallet overview calls when `includeWalletOverview` is ON. Higher = more rows; 0 = lookup every unique wallet.",
                        "default": 5000
                    },
                    "minPnl": {
                        "title": "Minimum PnL (USD)",
                        "type": "number",
                        "description": "Drop wallets whose leaderboard PnL is below this.",
                        "default": 0
                    },
                    "minRoi": {
                        "title": "Minimum ROI (0-1)",
                        "type": "number",
                        "description": "Drop wallets whose ROI is below this (e.g. 0.05 = 5%).",
                        "default": 0
                    },
                    "minWinRate": {
                        "title": "Minimum Win Rate (0-1)",
                        "type": "number",
                        "description": "Drop rows with a win rate below this (0-1). E.g. 0.5 = 50%.",
                        "default": 0
                    },
                    "minVolumeUsd": {
                        "title": "Minimum Volume (USD)",
                        "type": "number",
                        "description": "Drop rows whose USD volume is below this threshold. Default 0 = no filter.",
                        "default": 0
                    },
                    "minTxs": {
                        "title": "Minimum Transactions",
                        "type": "integer",
                        "description": "Drop rows with fewer transactions than this — filters out lucky one-shot wallets.",
                        "default": 0
                    },
                    "tagFilter": {
                        "title": "Tag Filter",
                        "type": "array",
                        "description": "Keep only wallets carrying these tags (e.g. `smart_money`, `top100_21`). Empty = all.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "deduplicate": {
                        "title": "Deduplicate Wallets",
                        "type": "boolean",
                        "description": "When ON, a wallet returned by multiple (interval, category) calls is emitted once with the merged `appearedIn` list.",
                        "default": false
                    },
                    "useProxy": {
                        "title": "Use Apify Proxy",
                        "type": "boolean",
                        "description": "Route requests through Apify Proxy. Strongly recommended ON — residential proxy is the most reliable way to bypass Cloudflare rate limits.",
                        "default": true
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Apify Proxy configuration. Residential proxy group is recommended for the highest success rate against Cloudflare.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ]
                        }
                    },
                    "maxConcurrency": {
                        "title": "Max Concurrent Requests",
                        "minimum": 1,
                        "maximum": 20,
                        "type": "integer",
                        "description": "Maximum number of API calls running in parallel. Higher = faster runs but more chance of hitting rate limits. 3-5 is safe.",
                        "default": 5
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
