Get trader position PnL
Per-position PnL for a trader. status is required — every position lookup is scoped to either currently-open positions or closed/resolved ones. sort_by and search can only be combined with a status; the per-status sort-by whitelists are exposed as PositionOpenPnlSortBy and PositionClosedPnlSortBy.
Path Parameters
Trader wallet address
Query Parameters
Required. open for positions still holding shares, closed for positions that have been fully exited or resolved.
open, closed Only valid with status=closed. true to include profitable closed positions, false for closed positions with zero or negative realized PnL.
Case-insensitive substring match on the market title. Scoped to the chosen status — results never cross the open/closed boundary.
Sort field. Default: total_pnl_usd. status=open accepts: realized_pnl_usd, total_pnl_usd, unrealized_pnl_usd, merge_usd, convert_collateral_usd, converted_count, converted_shares_gained, converted_shares_lost, last_traded_price, total_buy_usd, total_sell_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, title, current_price, current_shares_balance, merge_count, split_count, end_date, is_neg_risk, redeemable, mergeable. status=closed accepts: realized_pnl_usd, total_pnl_usd, unrealized_pnl_usd, merge_usd, convert_collateral_usd, converted_count, converted_shares_gained, converted_shares_lost, last_traded_price, 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, realized_pnl_pct, total_pnl_pct, title, merge_count, split_count, end_date, is_neg_risk.
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.
realized_pnl_usd, total_pnl_usd, unrealized_pnl_usd, merge_usd, convert_collateral_usd, converted_count, converted_shares_gained, converted_shares_lost, last_traded_price, 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 Default: desc
asc, desc Default 10, max 200
Max 3500. Takes precedence over pagination_key.
Cursor from a previous response
Filter to a single market
Filter by market slug
Filter to a single outcome token
Minimum shares balance to include
Filter positions to a single market category. Combinable with sort_by.
Polymarket UI category.
Politics, Sports, Crypto, Finance, Culture, Mentions, Weather, Economics, Tech Response
Per-position PnL rows
Position ID.
Condition ID.
Market slug.
Event slug.
Category.
Title.
Question.
Image URL.
Trader wallet or profile.
Outcome.
Outcome index.
Won.
Total buys.
Total sells.
Converted count.
Converted shares gained.
Converted shares lost.
Total shares bought.
Total shares sold.
Total buy in USD.
Total sell in USD.
Redemption in USD.
USD value from merge activity.
Convert collateral in USD.
Average entry price.
Average exit price.
Volume-weighted average trade price across buys and sells.
Realized PnL in USD.
Total PnL in USD.
Unrealized PnL in USD.
Total fees.
First trade at timestamp.
Last trade at timestamp.
Current price.
Last traded price.
Current shares balance.
Current value.
Realized PnL percent.
Total PnL percent.
End date timestamp.
Whether neg risk is true.
Redeemable.
Mergeable.