↑ ↓ move · Enter open · Esc close

REST API / Polymarket / Market Top Holders

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.

GET/v2/polymarket/market/{condition_id}/top-holders

Parameters

offsetinteger

Zero-based offset. Use pagination.next_offset to advance. Pagination covers the top 20 holders per outcome; total_count counts this window.

condition_idstring (path)required

Market condition ID - must match ^0x[0-9a-f]{64}$.

sidestring

Optional. Filter by outcome side: 'yes' or 'no'. Omit for all holders.

min_sharesnumber

Optional. Only return holders with at least this many shares.

include_countboolean

Optional. When true, include total_count of matching holders. Default false.

limitinteger

Optional. Rows returned, ranked by size. 1–100, default 100.

Response

condition_idstring

Market condition ID (echoes the path).

titlestring

Market title (null if not resolved).

market_slugstring

Market slug for URL construction (null if not resolved).

sidestring

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

total_countinteger

Total holders matching the filters - only present when include_count=true.

entriesarray

Top holder rows, ranked by current position size (shares), descending.

Show 18 fields
rankinteger

Position in the list (1-indexed).

userstring

Holder wallet (Polymarket proxy wallet).

token_idstring

Outcome token ID held.

position_sharesnumber

Shares currently held (normalized).

position_value_usdnumber

Estimated current value of the position (shares × current price). Null if a price is momentarily unavailable.

sidestring

Outcome side of the position (Yes / No / outcome label).

outcome_indexinteger

Outcome index (0 for Yes/first outcome, 1 for No/second).

avg_pricenumber

Average entry price. Not yet computed - returned as null (see _meta.unavailable_fields).

realized_pnlnumber

Realized PnL (USD). Not yet computed - returned as null.

unrealized_pnlnumber

Unrealized PnL (USD). Not yet computed - returned as null.

total_pnlnumber

Total PnL (USD). Not yet computed - returned as null.

trade_countinteger

Number of trades. Not yet computed - returned as null.

first_trade_atinteger

Unix timestamp of first trade. Not yet computed - returned as null.

last_trade_atinteger

Unix timestamp of last trade. Not yet computed - returned as null.

pseudonymstring

Holder display pseudonym, if public.

namestring

Holder display name, if set.

profile_imagestring

Holder profile image URL, if set.

verifiedboolean

Whether the holder is a verified account.

paginationobject

Result window metadata.

Show 6 fields
limitinteger

Requested page size.

countinteger

Number of entries returned.

pagination_keystring

Reserved (null). Use next_offset with the offset query parameter.

offsetinteger

Current offset into the ranked holder window.

next_offsetinteger | null

Pass as offset for the next page; null at the end.

has_moreboolean

True when another page exists in the top-20-per-outcome window. Rankings can change after the 30-second cache refresh.

_metaobject

Source, cache, and field-availability metadata.

Show 4 fields
sourcestring

Data source identifier.

cache_secondsinteger

Cache window in seconds.

unavailable_fieldsarray

Fields returned as null because they require per-wallet cost-basis accounting not yet computed by this endpoint.

notestring

Plain-language explanation of which fields are exact vs. not yet available.

Full API response