Skip to main content
GET
curl
The response body shown here is a static example, not live data. After you click Send, your live result appears in a separate panel headed 200 OK. The panel under the status-code tabs is a fixed sample from the spec — its field values (fees, prices, sizes, IDs, timestamps) are placeholders. Use Send, or call the endpoint, for current values.
Returns bundled account-equity and PnL time series for the requested address across preset ranges (24h, 7d, 30d, all-time) and per product (total/perp; spot when launched). The response carries every range in one payload so the frontend can switch tabs without an extra round-trip. Each range exposes its bucket resolution (“1h” or “1d”) and two parallel point series: accountEquityHistory (absolute equity) and pnlHistory (period profit and loss, rebased so each timeframe starts at 0). Data points are [timestamp_us, "decimal_value"] tuples. Values are stringified to preserve precision; clients should treat them as decimals, not floats. No authentication header is required.

Query Parameters

address
string
required

Master Ethereum address for this API key (must match address from POST /createApiKey for the same key). Required on REST for account-scoped reads and for place/cancel. Invalid hex → 400; mismatch with key → 403.

20-byte EVM address as hex: optional 0x or 0X prefix and exactly 40 hexadecimal digits. API responses normalize to lowercase af after 0x.

Pattern: ^(0x|0X)?[0-9a-fA-F]{40}$
accountIndex
integer
default:0

Subaccount index (0–9) to scope the request to. Defaults to 0 (the primary account). Values above 9 → 400.

Required range: 0 <= x <= 9

Response

Portfolio history bundle.

address
string
required

0x-prefixed 40-character hex Ethereum address echoed from the request.

Example:

"0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb"

accountIndex
integer
required

Subaccount index echoed from the request (0-9).

Required range: 0 <= x <= 9
generatedAt
integer<int64>
required

Server clock at response time (epoch microseconds).

lifetimeVolume
string
required

Subaccount cumulative filled notional in USD, decimal-stringified from quote_quantums. Sourced from the same counter that drives rate-limit replenishment; best-effort — "0" if the read fails or the subaccount has no fills yet.

Example:

"1234567.89"

data
tuple[]
required

Ordered series tuples. With both total* and perp* populated, today the array carries 8 entries (4 ranges × 2 products); when spot ships a third product joins as spot*.