Skip to main content
GET
/
v3
/
wallets
/
{address}
/
pnl
Wallet P&L
curl --request GET \
  --url https://api.polynode.dev/v3/wallets/{address}/pnl \
  --header 'x-api-key: <api-key>'
Returns P&L data for a wallet in USD. Without a period parameter, returns all-time P&L. With period, after, or before, returns realized P&L for that time window. The two modes have different counting semantics: all-time wins and losses are position counts; time-windowed wins, losses, and events are realized P&L event counts. Do not compare the counts directly.
Wallet P&L supports focused market filters such as category, tags/tag_slug, market/market_slug, event_slug, and condition_id. For leaderboard views, use one primary filter dimension per request.

Request

GET /v3/wallets/{address}/pnl

Query parameters

ParameterTypeDefaultDescription
periodstringTime window: 1d, 7d, 30d, 1y
afterintegerStart timestamp (Unix seconds). Time-windowed queries clamp values below 1 to 1.
beforeintegerEnd timestamp (Unix seconds)
categorystringFilter to one market category, case-insensitive
tagsstringComma-separated tag slugs to filter by, case-insensitive (e.g. politics,crypto, nfl, Iran)
tag_slugstringAlias for a single tags value
marketstringFilter by condition ID or market slug
market_slugstringFilter by market slug
event_slugstringFilter by parent event slug
condition_idstringFilter by market condition ID
include_unrealizedstringfalseSet to true to include current unrealized P&L alongside the realized event-window result. Only applies to time-filtered queries.
include_combosbooleanfalseAdd combo position P&L to all-time wallet P&L. If the wallet has no combo exposure, the response remains 200 with a zero combo contribution.

Examples

All-time P&L

curl https://api.polynode.dev/v3/wallets/0x56687bf447db6ffa42ffe2204a05edaa20f55839/pnl

All-time P&L including combos

curl "https://api.polynode.dev/v3/wallets/0x63613e3b96f418332d43cd2af8dc321014d15907/pnl?include_combos=true"
{
  "address": "0x63613e3b96f418332d43cd2af8dc321014d15907",
  "net_realized_pnl": 113.510513,
  "realized_pnl": 113.510513,
  "gross_profit": 184.901354,
  "gross_loss": -71.390841,
  "unrealized_pnl": 0.0,
  "total_pnl": 113.510513,
  "position_count": 21496,
  "open_positions": 1495,
  "total_volume": 129.837476,
  "include_combos": true,
  "included_position_types": ["market", "combo"],
  "combo_pnl": {
    "position_type": "combo",
    "included": true,
    "realized_pnl": 113.510513,
    "unrealized_pnl": 0.0,
    "total_pnl": 113.510513,
    "position_count": 21492,
    "open_positions": 1495
  }
}
For time-windowed or tag-filtered P&L, the response stays successful. If combo P&L cannot be safely added to that filtered view, combo_pnl.included is false and the standard market P&L fields remain unchanged.
{
  "address": "0x56687bf447db6ffa42ffe2204a05edaa20f55839",
  "net_realized_pnl": 22053845.825455,
  "gross_profit": 22057977.181649,
  "gross_loss": -4131.356194,
  "unrealized_pnl": 0.000688755,
  "total_pnl": 22053845.826143753,
  "position_count": 22,
  "open_positions": 1,
  "total_volume": 43013258.515682,
  "wins": 18,
  "losses": 4,
  "elapsed_ms": 41
}

30-day P&L

curl https://api.polynode.dev/v3/wallets/0xbddf61af533ff524d27154e589d2d7a81510c684/pnl?period=30d
{
  "address": "0xbddf61af533ff524d27154e589d2d7a81510c684",
  "realized_pnl": 1815261.28,
  "gross_profit": 1918402.27,
  "gross_loss": -103140.98,
  "wins": 33039,
  "losses": 58867,
  "events": 91906,
  "source": "realized_pnl_series",
  "period": "30d",
  "after": 1776134996,
  "before": 1778726996,
  "elapsed_ms": 5902
}

Filtered P&L

curl "https://api.polynode.dev/v3/wallets/0x952d11ebff81d6bd3185e608ed3515b94618ab8a/pnl?category=crypto"
curl "https://api.polynode.dev/v3/wallets/0x952d11ebff81d6bd3185e608ed3515b94618ab8a/pnl?tag_slug=us-election&period=30d"
curl "https://api.polynode.dev/v3/wallets/0x952d11ebff81d6bd3185e608ed3515b94618ab8a/pnl?market_slug=will-donald-trump-win-the-popular-vote-in-the-2024-presidential-election"
curl "https://api.polynode.dev/v3/wallets/0x952d11ebff81d6bd3185e608ed3515b94618ab8a/pnl?event_slug=presidential-election-popular-vote-winner-2024"

30-day P&L with unrealized

Pass include_unrealized=true to include current unrealized P&L alongside the realized event-window result.
curl https://api.polynode.dev/v3/wallets/0xbddf61af533ff524d27154e589d2d7a81510c684/pnl?period=30d&include_unrealized=true
{
  "address": "0xbddf61af533ff524d27154e589d2d7a81510c684",
  "realized_pnl": 1815261.28,
  "gross_profit": 1918402.27,
  "gross_loss": -103140.98,
  "unrealized_pnl": 14714.71,
  "total_pnl": 1829975.99,
  "open_positions_at_date": 363,
  "wins": 33039,
  "losses": 58867,
  "events": 91906,
  "source": "realized_pnl_series",
  "period": "30d",
  "after": 1776135002,
  "before": 1778727002,
  "elapsed_ms": 3803
}

Response fields (all-time)

FieldTypeDescription
net_realized_pnlnumberNet realized P&L (USD)
gross_profitnumberSum of winning positions (USD)
gross_lossnumberSum of losing positions (USD, negative)
unrealized_pnlnumberPaper P&L from open positions (USD)
total_pnlnumbernet_realized_pnl + unrealized_pnl (USD)
winsintegerWinning position count
lossesintegerLosing position count
position_countintegerTotal positions
open_positionsintegerCurrently held positions
total_volumenumberTotal volume traded (USD)
include_combosbooleanPresent when include_combos=true was requested
included_position_typesarrayPosition families included in aggregate totals
combo_pnlobjectCombo-only contribution to the aggregate response

Response fields (with period)

FieldTypeDescription
realized_pnlnumberRealized P&L in the time window (USD)
gross_profitnumberSum of winning events in the window (USD)
gross_lossnumberSum of losing events in the window (USD, negative)
winsintegerWinning event count
lossesintegerLosing event count
eventsintegerTotal P&L events in the window
periodstringThe requested period
afterintegerStart timestamp (Unix seconds)
beforeintegerEnd timestamp (Unix seconds)
sourcestringDataset label for time-windowed queries

Additional fields (with include_unrealized=true)

FieldTypeDescription
unrealized_pnlnumberCurrent unrealized P&L for open positions (USD), returned alongside the realized event-window result.
total_pnlnumberrealized_pnl + unrealized_pnl (USD)
open_positions_at_dateintegerCurrent open position count returned with the unrealized P&L estimate

Authorizations

x-api-key
string
header
required

Path Parameters

address
string
required

Wallet address

Query Parameters

period
enum<string>

Time window shortcut

Available options:
1d,
7d,
30d,
1y
after
integer

Unix timestamp lower bound

before
integer

Unix timestamp upper bound

include_unrealized
boolean
default:false

Include current unrealized P&L alongside time-windowed realized P&L

Response

Wallet P&L