Prediction Hunt/ API
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

Query Parameters

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 Schema

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.

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.

limitinteger

Requested page size.

countinteger

Number of entries returned.

pagination_keystring

Reserved for cursor pagination (currently null — results are a single ranked page).

has_moreboolean

True when more holders exist beyond the returned page.

_metaobject

Source, cache, and field-availability metadata.

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.

Error Responses

All errors return the same envelope. The code field is stable and programmatically branchable; error and message are human-readable. errors[] is present only on validation failures with field-level detail. See the full error code reference →

successboolean

Always `false` on error responses.

errorstring

Short, human-readable title (e.g. 'Invalid API Key.').

messagestring

Human-readable explanation for the error. Safe to surface in UIs.

codestring

Stable, hierarchical machine-readable code (e.g. 'validation.invalid_enum'). Use for programmatic handling.

doc_urlstring

Link to this code's entry in the Error Reference.

errorsobject[]

Optional. Present only on validation failures with field-level detail.

fieldstring

Name of the offending parameter.

codestring

Field-level machine code.

messagestring

Human-readable explanation.

Authentication

API Key

To secure your requests, we strongly recommend passing your API key via the X-API-Key header. This prevents sensitive keys from being exposed in access logs or browser history.

Request HeaderX-API-Key: pmx_test_5e8f...

Rate Limits

API rate limits are enforced based on the tier associated with your API key. Limits are tracked on two dimensions: requests per second and requests per month. Each completed request counts toward the global monthly quota. Separate endpoint-group monthly limits (matched markets, arbitrage, EV) only advance when the response body has success: true.

Usage is returned on responses via headers such as:

Response Headers (global)X-RateLimit-Limit-Second: 10X-RateLimit-Remaining-Second: 9X-RateLimit-Limit-Month: 1000X-RateLimit-Remaining-Month: 842Example (endpoint-group, when applicable)X-RateLimit-Limit-Arb-Month: 500X-RateLimit-Remaining-Arb-Month: 412

If you exceed a rate limit, the API returns a 429 status with a Retry-After header indicating when you can resume.

Request

Live API Key

Demo Mode
Verified

Parameters

Condition IDRequired

Response

Click EXECUTE to send a request →