---
title: "Get Market Leaderboard"
method: GET
path: "/v2/polymarket/leaderboard/market/{condition_id}"
tags: ["polymarket", "smart-wallet"]
---

# Get Market Leaderboard

`GET /v2/polymarket/leaderboard/market/{condition_id}`

## Request

- Base URL: `https://api.predexon.com`
- URL: `https://api.predexon.com/v2/polymarket/leaderboard/market/{condition_id}`
- Auth: API key in header `x-api-key`

Get leaderboard for a specific market.

Shows wallet rankings for trading performance within a single market.

## Path parameters

- `condition_id` string, required: Market condition ID

## Query parameters

- `window` '1d' | '7d' | '30d' | 'all_time': Time window for rolling metrics.
- `sort_by` 'realized_pnl' | 'total_pnl' | 'volume' | 'roi' | 'profit_factor' | 'win_rate' | 'trades': Sort options for leaderboard.
- `order` 'asc' | 'desc': Sort order direction enum.
- `min_total_pnl` number, nullable: Minimum total PnL in this market (USD, net of fees)
- `max_total_pnl` number, nullable: Maximum total PnL in this market (USD, net of fees)
- `min_trades` integer, nullable: Minimum trades in this market
- `max_trades` integer, nullable: Maximum trades in this market
- `min_volume` number, nullable: Minimum volume in this market
- `max_volume` number, nullable: Maximum volume in this market
- `min_avg_buy_price` number, nullable: Minimum avg buy price (0-1)
- `max_avg_buy_price` number, nullable: Maximum avg buy price (0-1)
- `min_avg_sell_price` number, nullable: Minimum avg sell price (0-1)
- `max_avg_sell_price` number, nullable: Maximum avg sell price (0-1)
- `min_entry_edge` number, nullable: Minimum entry edge (avg_sell - avg_buy)
- `max_entry_edge` number, nullable: Maximum entry edge (avg_sell - avg_buy)
- `limit` integer: Results per page
- `pagination_key` string, nullable: Cursor for pagination

## Response `200`

Successful Response

- MarketLeaderboardResponse: Response for per-market leaderboard endpoint.
  - `condition_id` string, required: Market condition ID
  - `window` '1d' | '7d' | '30d' | 'all_time', required: Time window for rolling metrics.
  - `sort_by` 'realized_pnl' | 'total_pnl' | 'volume' | 'roi' | 'profit_factor' | 'win_rate' | 'trades', required: Sort options for leaderboard.
  - `entries` LeaderboardEntry[], required: Leaderboard entries
    - `rank` integer, required: Position in leaderboard (1-indexed)
    - `user` string, required: Wallet address
    - `metrics` WindowMetrics, required: Metrics for a specific time window.
      - `realized_pnl` number, required: Realized profit/loss in USD (from closed positions)
      - `total_pnl` number, nullable: Total PnL in USD (realized + unrealized - net fees)
      - `volume` number, required: Trading volume in USD
      - `roi` number, required: Return on investment (decimal, e.g., 0.5 = 50%)
      - `trades` integer, required: Number of trades
      - `wins` integer, required: Number of winning positions closed
      - `losses` integer, required: Number of losing positions closed
      - `win_rate` number, required: Win rate (decimal, e.g., 0.6 = 60%)
      - `profit_factor` number, required: Profit factor (gross profit / gross loss)
      - `positions_closed` integer, required: Number of positions closed
      - `avg_buy_price` number, nullable: Volume-weighted average buy price (0-1)
      - `avg_sell_price` number, nullable: Volume-weighted average sell price (0-1)
      - `fees_paid` number: Taker fees paid in USD
      - `fees_refunded` number: DEPRECATED: always 0. Refunds are already netted into fees_paid.
    - `trading_styles` TradingStyleFlags, required: Multi-label trading style classification.
      - `is_whale` boolean, required: Large position trader (avg trade > $1000)
      - `is_market_maker` boolean, required: Balanced buy/sell + frequent trading
      - `is_active_trader` boolean, required: High trade frequency (>4 trades/position)
      - `is_buy_and_hold` boolean, required: Long holding periods (<=2 trades/position)
      - `is_degen` boolean, required: High-risk pattern (win rate < 35%, 50+ closes)
      - `is_high_conviction` boolean, required: Buys at high YES prices (>=0.80)
      - `is_contrarian` boolean, required: Takes unpopular sides (<=0.25)
      - `is_value_hunter` boolean, required: Enters at uncertain odds (0.35-0.55)
      - `primary_style` string, required: Primary trading style classification
    - `entry_edge` number, nullable: Price edge (avg_sell - avg_buy), only for all_time
    - `first_trade_at` integer, nullable: Unix timestamp of first trade
  - `pagination` CursorPagination, required: Cursor-based pagination for endpoints that don't support offset.
    - `limit` integer, required: Requested limit
    - `count` integer, required: Number of items in current response
    - `pagination_key` string, nullable: Base64-encoded cursor for next page
    - `has_more` boolean, required: Whether there are more items available

## Other responses

- `400`: Bad Request
- `404`: Not Found
- `422`: Validation Error
- `503`: Service Unavailable

---

[API](https://skmtc.dev/predexon/apis/predexon-api.md) - [All operations](https://skmtc.dev/predexon/apis/predexon-api/llms.txt) - [OpenAPI document](https://skmtc.dev/predexon/apis/predexon-api/revisions/b30fe81532b4?raw)
