Skip to main content
GET
/
polymarket
/
trader
/
leaderboard
Get trader leaderboard
curl --request GET \
  --url https://api.struct.to/v1/polymarket/trader/leaderboard
[
  {
    "trader": {
      "address": "<string>",
      "name": "<string>",
      "pseudonym": "<string>",
      "profile_image": "<string>",
      "x_username": "<string>",
      "verified_badge": true
    },
    "rank": 123,
    "pnl": 123,
    "events_traded": 123,
    "markets_traded": 123,
    "markets_won": 123,
    "markets_lost": 123,
    "market_win_rate_pct": 123,
    "total_volume_usd": 123,
    "buy_volume_usd": 123,
    "sell_volume_usd": 123,
    "redemption_volume_usd": 123,
    "merge_volume_usd": 123,
    "total_buys": 123,
    "total_sells": 123,
    "total_redemptions": 123,
    "total_merges": 123,
    "total_trades": 123,
    "total_fees": 123,
    "avg_pnl_per_market": 123,
    "avg_pnl_per_trade": 123,
    "avg_hold_time_seconds": 123,
    "best_trade_pnl_usd": 123,
    "best_trade_condition_id": "<string>",
    "first_trade_at": 123,
    "last_trade_at": 123
  }
]

Query Parameters

timeframe
enum<string>

Aggregation window (default: lifetime)

Available options:
1d,
7d,
30d,
lifetime
sort_by
enum<string>

Order by: pnl or volume (default: pnl). Case-insensitive. Sort key for the trader leaderboard (GET /polymarket/trader/leaderboard).

Available options:
pnl,
volume
limit
integer<int64>

Rows per page, 1..=50 (default: 20)

offset
integer<int64>

Offset for pagination (default: 0)

category
enum<string>

Market category filter. Case-insensitive. Default: overall. Market category filter for the trader leaderboard. Mirrors common::gamma::categories::Category plus overall (= all).

Available options:
overall,
politics,
sports,
crypto,
finance,
culture,
mentions,
weather,
economics,
tech

Response

Leaderboard rows with full trader metrics.

trader
object
required

Trader profile info - backwards compatibility

rank
integer<int64> | null
pnl
number<double> | null
events_traded
integer<int64> | null
markets_traded
integer<int64> | null
markets_won
integer<int64> | null
markets_lost
integer<int64> | null
market_win_rate_pct
number<double> | null
total_volume_usd
number<double> | null
buy_volume_usd
number<double> | null
sell_volume_usd
number<double> | null
redemption_volume_usd
number<double> | null
merge_volume_usd
number<double> | null
total_buys
integer<int64> | null
total_sells
integer<int64> | null
total_redemptions
integer<int64> | null
total_merges
integer<int64> | null
total_trades
integer<int64> | null
total_fees
number<double> | null
avg_pnl_per_market
number<double> | null
avg_pnl_per_trade
number<double> | null
avg_hold_time_seconds
number<double> | null
best_trade_pnl_usd
number<double> | null
best_trade_condition_id
string | null
first_trade_at
integer<int64> | null
last_trade_at
integer<int64> | null
Last modified on April 25, 2026