Skip to main content
GET
/
polymarket
/
trader
/
pnl
/
{address}
/
markets
Get trader market PnL
curl --request GET \
  --url https://api.struct.to/v1/polymarket/trader/pnl/{address}/markets
[
  {
    "realized_pnl_usd": 123,
    "total_volume_usd": 123,
    "buy_volume_usd": 123,
    "sell_volume_usd": 123,
    "redemption_volume_usd": 123,
    "merge_volume_usd": 123,
    "total_fees": 123,
    "total_buys": 1,
    "total_sells": 1,
    "total_shares_bought": 123,
    "total_shares_sold": 123,
    "buy_count": 1,
    "sell_count": 1,
    "redeem_count": 1,
    "merge_count": 1,
    "split_count": 1,
    "converted_count": 1,
    "converted_shares_gained": 123,
    "converted_shares_lost": 123,
    "outcomes_traded": 1,
    "resolved": true,
    "last_block": 1,
    "condition_id": "<string>",
    "event_slug": "<string>",
    "market_slug": "<string>",
    "title": "<string>",
    "image_url": "<string>",
    "question": "<string>",
    "trader": {
      "address": "<string>",
      "verified_badge": true,
      "name": "<string>",
      "pseudonym": "<string>",
      "profile_image": "<string>",
      "x_username": "<string>"
    },
    "total_pnl_usd": 123,
    "unrealized_pnl_usd": 123,
    "realized_pnl_pct": 123,
    "total_pnl_pct": 123,
    "convert_collateral_usd": 123,
    "total_splits": 1,
    "split_volume_usd": 123,
    "won": true,
    "first_trade_at": 123,
    "last_trade_at": 123,
    "snapshot_ts": 123
  }
]

Path Parameters

address
string
required

Trader wallet address

Query Parameters

timeframe
enum<string>

Default: lifetime

Available options:
1d,
7d,
30d,
lifetime
sort_by
enum<string>

Default: realized_pnl_usd Sort field for per-trader market PnL results.

Available options:
realized_pnl_usd,
total_pnl_usd,
unrealized_pnl_usd,
total_volume_usd,
buy_volume_usd,
sell_volume_usd,
redemption_volume_usd,
merge_volume_usd,
split_volume_usd,
total_fees,
total_buys,
total_sells,
total_splits,
total_shares_bought,
total_shares_sold,
redeem_count,
merge_count,
split_count,
outcomes_traded,
first_trade_at,
last_trade_at,
last_block
sort_direction
enum<string>

Default: desc

Available options:
asc,
desc
limit
integer<int32>

Default 50, max 500

offset
integer<int32>

Max 2500. Takes precedence over pagination_key.

pagination_key
string

Cursor from a previous response

condition_id
string

Filter to a single market

event_slug
string

Filter to markets inside this event

Response

Per-market PnL rows

realized_pnl_usd
number<double>
required

Realized PnL in USD.

total_volume_usd
number<double>
required

Total volume in USD.

buy_volume_usd
number<double>
required

Buy volume in USD.

sell_volume_usd
number<double>
required

Sell volume in USD.

redemption_volume_usd
number<double>
required

Redemption volume in USD.

merge_volume_usd
number<double>
required

Merge volume in USD.

total_fees
number<double>
required

Total fees.

total_buys
integer<int64>
required

Total buys.

Required range: x >= 0
total_sells
integer<int64>
required

Total sells.

Required range: x >= 0
total_shares_bought
number<double>
required

Total shares bought.

total_shares_sold
number<double>
required

Total shares sold.

buy_count
integer<int64>
required

Buy count.

Required range: x >= 0
sell_count
integer<int64>
required

Sell count.

Required range: x >= 0
redeem_count
integer<int64>
required

Redeem count.

Required range: x >= 0
merge_count
integer<int64>
required

Merge count.

Required range: x >= 0
split_count
integer<int64>
required

Split count.

Required range: x >= 0
converted_count
integer<int64>
required

Converted count.

Required range: x >= 0
converted_shares_gained
number<double>
required

Converted shares gained.

converted_shares_lost
number<double>
required

Converted shares lost.

outcomes_traded
integer<int64>
required

Outcomes traded.

Required range: x >= 0
resolved
boolean
required

Resolved.

last_block
integer<int64>
required

Last block.

Required range: x >= 0
condition_id
string | null

Condition ID.

event_slug
string | null

Event slug.

market_slug
string | null

Market slug.

title
string | null

Title.

image_url
string | null

Image URL.

question
string | null

Question.

trader
object

Trader wallet or profile.

total_pnl_usd
number<double>

Total PnL in USD.

unrealized_pnl_usd
number<double>

Unrealized PnL in USD.

realized_pnl_pct
number<double> | null

Realized PnL percent.

total_pnl_pct
number<double> | null

Total PnL percent.

convert_collateral_usd
number<double>

Convert collateral in USD.

total_splits
integer<int64>

Number of split transactions in the selected timeframe.

Required range: x >= 0
split_volume_usd
number<double>

USD collateral split into outcome tokens in the selected timeframe.

won
boolean | null

Won.

first_trade_at
integer<int64> | null

First trade at timestamp.

last_trade_at
integer<int64> | null

Last trade at timestamp.

snapshot_ts
integer<int64> | null

Snapshot timestamp.

Last modified on June 17, 2026