Get top holders of a market

/v4/data/prediction/markets/{id}/positions

100 credits per API call

Top holders of a market grouped by outcome token. Each top-level row in the response is one outcome (e.g. YES, NO); under it sits the list of wallets currently holding that outcome, ordered by the chosen sortBy metric. Useful for "who's on each side of this bet" leaderboards on a market-detail page.

Platform support

  • Polymarket only. Calling this endpoint against a Kalshi market id returns 400.

Filtering, sorting and pagination

  • user narrows the response to a single wallet — useful for "does this user have a position in this market" checks.
  • status filters holders by their position state: OPEN (size > 0.01), CLOSED (size ≤ 0.01), ALL (default).
  • sortBy chooses the metric used to order holders inside each outcome group: TOKENS, CASH_PNL, REALIZED_PNL, TOTAL_PNL. Combine with sortDirection (ASC or DESC).
  • Pagination is offset-based. limit and offset apply per outcome group — e.g. on a binary market with limit=50 the response carries up to 100 holders total (50 YES + 50 NO).
Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Path Params
string
required

Platform-native market identifier. Must be a Polymarket condition id; Kalshi market ids return 400.

Query Params
string

Filter the response to a single holder wallet (0x + 40 hex).

string
enum

Filter holders by position lifecycle state. Defaults to ALL.

Allowed:
string
enum

Metric used to order holders inside each outcome group. Defaults to TOTAL_PNL.

Allowed:
string
enum

Sort direction. Defaults to DESC.

Allowed:
integer
1 to 500
Defaults to 50

Maximum number of holders to return per outcome group. Defaults to 50.

integer
0 to 10000
Defaults to 0

Starting offset per outcome group. Defaults to 0.

Responses

Language
Credentials
Header
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json