Wallet Positions (Polymarket)
Open positions for a Polymarket wallet with realized vs. unrealized PnL split explicitly. Realized PnL is net of taker fees (deducted at fill time); unrealized is mark-to-market on open size and pre-fee. See the response field documentation for authoritative definitions.
/v2/wallet/{addr}/positionsParameters
addrstring (path)requiredWallet address - must match ^0x[a-fA-F0-9]{40}$. Lowercased before lookup. Use the Polymarket proxy wallet address; the base/EOA address returns no results. Get it from /v2/wallet/{addr}/identity (proxy_wallet).
limitintegerOptional. Page size, default 100, max 200.
offsetintegerOptional. Page offset, default 0. Use offset += limit to walk pages.
Response
walletstringWallet address (lowercased).
limitintegerPage size returned (max 200).
offsetintegerPage offset.
countintegerNumber of positions returned in this page.
has_morebooleanTrue when count == limit, indicating another page may exist. Use offset += limit to fetch the next page.
positionsarrayPer-position rows. Realized vs unrealized PnL is split explicitly - see _meta.field_definitions for exact semantics.
Show 20 fields
proxy_walletstringPolymarket proxy wallet.
condition_idstringMarket condition ID.
assetstringOutcome token ID (CTF ERC-1155).
outcomestringHuman outcome label (e.g. "Yes").
outcome_indexintegerOutcome index in the market.
sizenumberOpen share count.
avg_pricenumberVWAP entry price across all fills for the open size.
cost_basisnumberUSDC paid to acquire the open size (avg_price * size). Excludes already-realized portions and excludes taker fees.
mark_pricenumberCurrent mid-market price used to mark the open position.
current_valuenumbermark_price * size - paper value of the open position.
realized_pnlnumberPnL locked in from sells/redemptions/conversions. Already net of taker fees Polymarket charged at fill time. Will not change as the market moves.
unrealized_pnlnumberMark-to-market PnL on the open size only. Moves tick-by-tick. Pre-fee - fees would only be incurred on eventual close.
total_pnlnumberrealized_pnl + unrealized_pnl.
percent_pnlnumberPercentage return on the position.
redeemablebooleanMarket resolved and the position can be redeemed for USDC.
negative_riskbooleanNegRisk (multi-outcome) market flag.
titlestringMarket title (display).
slugstringMarket slug.
iconstringMarket icon URL.
event_slugstringParent event slug.
_metaobjectSource, cache, and authoritative field definitions.
Show 4 fields
sourcestringData source identifier.
cache_secondsintegerCache window in seconds.
field_definitionsobjectPer-field semantic definitions for realized_pnl, unrealized_pnl, total_pnl, mark_price, cost_basis.
fees_notestringHow taker fees are reflected in the PnL fields.