Retrieve per-outcome-token lifetime PnL for a trader. Includes open/closed state, win/loss outcome, redemption payouts, and share quantities. Filter by status and won/lost to segment portfolio views.
Documentation Index
Fetch the complete documentation index at: https://docs.struct.to/llms.txt
Use this file to discover all available pages before exploring further.
Trader wallet address
Required. Filter by position status Position status filter for open/closed positions.
open, closed Filter by outcome: true (won), false (lost), only for status=closed
Search by market title
Sort field (default: realized_pnl_usd)
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, total_fees, first_trade_at, last_trade_at, current_value, realized_pnl_pct, title Sort direction: asc, desc (default: desc)
asc, desc Results limit (default: 10, max: 200)
Pagination offset
Filter by market condition ID (or use market_slug)
Filter by market slug (alternative to condition_id)
Filter by specific outcome token (position ID)
Minimum shares balance to include. Status filtering already treats balances below 0.01 shares as dust.
Position-level PnL entries for this trader. Each entry is a specific outcome token with open/closed state, avg_entry_price, avg_exit_price, and redemption info.
TRUE = won, FALSE = lost, NULL = open or sold before resolution
Payout on redemption (non-zero only if won)
VWAP price paid per share across all buys (0–1)
VWAP price received per share across all sells (0–1)
Last traded price for this outcome (0–1). NULL if market_outcomes has no price yet.
Current shares held: balance / 1e6.
Estimated current USD value of held shares: (balance / 1e6) * current_price. Only meaningful for open positions (balance above dust threshold).
Realized PnL as a percentage of total spend: (realized_pnl_usd / total_buy_usd) * 100. NULL when total_buy_usd = 0.