Market Top Holders (Polymarket)
Top position holders in a single Polymarket market, ranked by current position size. Filter by outcome with side=yes|no. Each holder includes shares held and estimated current position value; per-wallet cost-basis PnL fields are not yet computed and are returned as null.
/v2/polymarket/market/{condition_id}/top-holdersParameters
offsetintegerZero-based offset. Use pagination.next_offset to advance. Pagination covers the top 20 holders per outcome; total_count counts this window.
condition_idstring (path)requiredMarket condition ID - must match ^0x[0-9a-f]{64}$.
sidestringOptional. Filter by outcome side: 'yes' or 'no'. Omit for all holders.
min_sharesnumberOptional. Only return holders with at least this many shares.
include_countbooleanOptional. When true, include total_count of matching holders. Default false.
limitintegerOptional. Rows returned, ranked by size. 1–100, default 100.
Response
condition_idstringMarket condition ID (echoes the path).
titlestringMarket title (null if not resolved).
market_slugstringMarket slug for URL construction (null if not resolved).
sidestringOutcome side filter applied ('yes', 'no', or null for all).
total_countintegerTotal holders matching the filters - only present when include_count=true.
entriesarrayTop holder rows, ranked by current position size (shares), descending.
Show 18 fields
rankintegerPosition in the list (1-indexed).
userstringHolder wallet (Polymarket proxy wallet).
token_idstringOutcome token ID held.
position_sharesnumberShares currently held (normalized).
position_value_usdnumberEstimated current value of the position (shares × current price). Null if a price is momentarily unavailable.
sidestringOutcome side of the position (Yes / No / outcome label).
outcome_indexintegerOutcome index (0 for Yes/first outcome, 1 for No/second).
avg_pricenumberAverage entry price. Not yet computed - returned as null (see _meta.unavailable_fields).
realized_pnlnumberRealized PnL (USD). Not yet computed - returned as null.
unrealized_pnlnumberUnrealized PnL (USD). Not yet computed - returned as null.
total_pnlnumberTotal PnL (USD). Not yet computed - returned as null.
trade_countintegerNumber of trades. Not yet computed - returned as null.
first_trade_atintegerUnix timestamp of first trade. Not yet computed - returned as null.
last_trade_atintegerUnix timestamp of last trade. Not yet computed - returned as null.
pseudonymstringHolder display pseudonym, if public.
namestringHolder display name, if set.
profile_imagestringHolder profile image URL, if set.
verifiedbooleanWhether the holder is a verified account.
paginationobjectResult window metadata.
Show 6 fields
limitintegerRequested page size.
countintegerNumber of entries returned.
pagination_keystringReserved (null). Use next_offset with the offset query parameter.
offsetintegerCurrent offset into the ranked holder window.
next_offsetinteger | nullPass as offset for the next page; null at the end.
has_morebooleanTrue when another page exists in the top-20-per-outcome window. Rankings can change after the 30-second cache refresh.
_metaobjectSource, cache, and field-availability metadata.
Show 4 fields
sourcestringData source identifier.
cache_secondsintegerCache window in seconds.
unavailable_fieldsarrayFields returned as null because they require per-wallet cost-basis accounting not yet computed by this endpoint.
notestringPlain-language explanation of which fields are exact vs. not yet available.