GET /positions/pnl
Per-position P&L decomposition
Per-position P&L decomposition.
operationId: fetchPositionsPnl
Not reachable through CCXT. Unrealised PnL breakdown. CCXT carries PnL inside the position shape, so this has no separate method.
Authentication: hmacAuth.
Each open position's P&L split into price, funding and fee components. One entry per open position; an account with none gets an empty array.
Read the sign note on PositionPnl.funding_pnl before using it alongside /positions. The two operations report the same funding cash flow with opposite signs, deliberately.
Served from indexer-local projections, so it does not touch the engine and is safe to poll independently of /positions.
Responses
401
— (no schema declared)
—
429
— (no schema declared)
—
Example
curl -X GET 'https://exchange.nexus.xyz/api/exchange/positions/pnl' \
-H 'X-API-Key: nx_7f3a1b...' \
-H 'X-Timestamp: 1776033911836' \
-H 'X-Signature: <hmac-sha256>'import requests
headers = {
"X-API-Key": "nx_7f3a1b...",
"X-Timestamp": "1776033911836",
"X-Signature": "<hmac-sha256>"
}
response = requests.get("https://exchange.nexus.xyz/api/exchange/positions/pnl", headers=headers)
response.raise_for_status()
print(response.json())const response = await fetch("https://exchange.nexus.xyz/api/exchange/positions/pnl", {
method: "GET",
headers: {
"X-API-Key": "nx_7f3a1b...",
"X-Timestamp": "1776033911836",
"X-Signature": "<hmac-sha256>"
},
});
if (!response.ok) throw new Error(`${response.status} ${await response.text()}`);
console.log(await response.json());X-Signature is a placeholder: it is derived from this specific request. See Authentication for the canonical string and the HMAC rule.
Generated from eng/apps/exchange/api/openapi.json (spec 0.9.36). Do not edit by hand — regenerate with python3 product/docs/tools/api-reference/generate.py. Hand-authored context lives in the Guides pages.
Last updated

