Skip to main content
GET
/
v2
/
polymarket
/
market
/
{condition_id}
/
top-holders
Get Market Top Holders
curl --request GET \
  --url https://api.predexon.com/v2/polymarket/market/{condition_id}/top-holders \
  --header 'x-api-key: <api-key>'
{
  "condition_id": "<string>",
  "entries": [
    {
      "rank": 123,
      "user": "<string>",
      "token_id": "<string>",
      "position_shares": 123,
      "position_value_usd": 123,
      "side": "<string>",
      "outcome_index": 123,
      "avg_price": 123,
      "realized_pnl": 123,
      "unrealized_pnl": 123,
      "total_pnl": 123,
      "trade_count": 123,
      "first_trade_at": 123,
      "last_trade_at": 123
    }
  ],
  "pagination": {
    "limit": 123,
    "count": 123,
    "has_more": true,
    "pagination_key": "<string>"
  },
  "title": "<string>",
  "market_slug": "<string>",
  "side": "<string>",
  "total_count": 123
}
Get the largest position holders in any market. Use the side parameter to filter by Yes or No holders and see their position value, entry price, and PnL.
Requires Dev or Pro tier. This endpoint is not available on the Free tier.
Rolling total PnL accuracy timeline - Total PnL (realized + unrealized - net fees) uses rolling windows that need time to accumulate full data:
  • All-time total PnL: accurate immediately (February 10, 2026)
  • 1-day rolling total PnL: fully accurate starting February 11, 2026
  • 7-day rolling total PnL: fully accurate starting February 17, 2026
  • 30-day rolling total PnL: fully accurate starting March 12, 2026
ConstraintValue
limit1–100 (default 100)

Authorizations

x-api-key
string
header
required

Path Parameters

condition_id
string
required

Market condition ID

Query Parameters

side
string | null

Filter by position side: 'yes' or 'no'

Pattern: ^(yes|no)$
min_shares
number | null

Minimum shares held (normalized)

Required range: x >= 0
min_trades
integer | null

Minimum number of trades

Required range: x >= 1
include_count
boolean
default:false

Include total holder count (slower query)

limit
integer
default:100

Results per page

Required range: 1 <= x <= 100
pagination_key
string | null

Cursor for pagination

Response

Successful Response

Response for market top holders endpoint.

condition_id
string
required

Market condition ID

entries
TopHolderEntry · object[]
required

Top holder entries

pagination
CursorPagination · object
required

Pagination info

title
string | null

Market title

market_slug
string | null

Market slug

side
string | null

Position side filter applied ('yes', 'no', or null for all)

total_count
integer | null

Total number of holders matching filters (only if include_count=true)