Skip to main content
GET
/
polymarket
/
market
/
position
/
top-traders
Get top traders for a position
curl --request GET \
  --url https://api.struct.to/v1/polymarket/market/position/top-traders
[
  {
    "position_id": "<string>",
    "condition_id": "<string>",
    "market_slug": "<string>",
    "event_slug": "<string>",
    "category": "<string>",
    "title": "<string>",
    "question": "<string>",
    "image_url": "<string>",
    "trader": {
      "address": "<string>",
      "verified_badge": true,
      "name": "<string>",
      "pseudonym": "<string>",
      "profile_image": "<string>",
      "x_username": "<string>"
    },
    "outcome": "<string>",
    "outcome_index": 123,
    "won": true,
    "total_buys": 123,
    "total_sells": 123,
    "converted_count": 123,
    "converted_shares_gained": 123,
    "converted_shares_lost": 123,
    "total_shares_bought": 123,
    "total_shares_sold": 123,
    "total_buy_usd": 123,
    "total_sell_usd": 123,
    "redemption_usd": 123,
    "merge_usd": 123,
    "convert_collateral_usd": 123,
    "avg_entry_price": 123,
    "avg_exit_price": 123,
    "avg_price": 123,
    "realized_pnl_usd": 123,
    "total_fees": 123,
    "first_trade_at": 123,
    "last_trade_at": 123,
    "current_price": 123,
    "last_traded_price": 123,
    "current_shares_balance": 123,
    "current_value": 123,
    "realized_pnl_pct": 123,
    "total_pnl_pct": 123,
    "end_date": 123,
    "is_neg_risk": true,
    "redeemable": true,
    "mergeable": true
  }
]

Query Parameters

position_id
string
required

Outcome-token ID

sort_by
enum<string>

Default: realized_pnl_usd Union of every sort_by value accepted by the positions endpoint across both status=open and status=closed. Note that some options are only meaningful for one status — for example current_value / current_price / redeemable / mergeable only apply to open positions, while redemption_usd only applies to closed ones. See PositionOpenPnlSortBy and PositionClosedPnlSortBy for the exact per-status whitelists.

Available options:
realized_pnl_usd,
total_buy_usd,
total_sell_usd,
redemption_usd,
total_buys,
total_sells,
total_shares_bought,
total_shares_sold,
avg_entry_price,
avg_exit_price,
avg_price,
total_fees,
first_trade_at,
last_trade_at,
current_value,
realized_pnl_pct,
total_pnl_pct,
current_price,
current_shares_balance,
merge_count,
split_count,
title,
end_date,
is_neg_risk,
redeemable,
mergeable
sort_direction
enum<string>

Default: desc

Available options:
asc,
desc
limit
integer<int32>

Default 50, max 200

offset
integer<int32>

Max 2500. Takes precedence over pagination_key.

pagination_key
string

Cursor from a previous response

Response

Top traders for the position

position_id
string | null
condition_id
string | null
market_slug
string | null
event_slug
string | null
category
string | null

Market category slug — mirror of PositionRollup.category_id resolved server-side. Enables ?category=<slug> filtering on the positions endpoint.

title
string | null
question
string | null
image_url
string | null
trader
object
outcome
string | null
outcome_index
integer<int32> | null
won
boolean | null
total_buys
integer<int64> | null
total_sells
integer<int64> | null
converted_count
integer<int64> | null
converted_shares_gained
number<double> | null
converted_shares_lost
number<double> | null
total_shares_bought
number<double> | null
total_shares_sold
number<double> | null
total_buy_usd
number<double> | null
total_sell_usd
number<double> | null
redemption_usd
number<double> | null
merge_usd
number<double> | null

USD value from merge activity.

convert_collateral_usd
number<double> | null
avg_entry_price
number<double> | null
avg_exit_price
number<double> | null
avg_price
number<double> | null

Volume-weighted average trade price across buys and sells.

realized_pnl_usd
number<double> | null
total_fees
number<double> | null
first_trade_at
integer<int64> | null
last_trade_at
integer<int64> | null
current_price
number<double> | null
last_traded_price
number<double> | null
current_shares_balance
number<double> | null
current_value
number<double> | null
realized_pnl_pct
number<double> | null
total_pnl_pct
number<double> | null
end_date
integer<int64> | null
is_neg_risk
boolean | null
redeemable
boolean | null
mergeable
boolean | null
Last modified on June 13, 2026