Portfolio API
Portfolio resources aggregate user-owned account projections and historical
equity. Every operation requires a user-owned key with read.
Operations
| Method | Path | Required scope | Purpose |
|---|---|---|---|
GET | /v1/portfolio/overview | read | Read the aggregate portfolio dashboard projection |
GET | /v1/portfolio/holdings | read | Read broker holdings across all accounts |
GET | /v1/portfolio/holdings/{account_id} | read | Read broker holdings for one account |
GET | /v1/portfolio/history | read | Read historical equity points and summary metrics |
GET | /v1/portfolio/funding-history | read | Read normalized cross-venue funding payment history |
GET | /v1/portfolio/daily-pnl | read | Read daily total or unrealized PnL points |
GET | /v1/portfolio/summary | read | Read aggregate performance summary |
GET | /v1/portfolio/summary/{account_id} | read | Read one account's performance summary |
GET | /v1/portfolio/performance | read | Read aggregate performance detail |
GET | /v1/portfolio/performance/{account_id} | read | Read one account's performance detail |
Choosing a resource
- Use
overviewfor a current cross-account dashboard projection. - Use
holdingswhen the broker-owned spot balances, futures balances, and positions are required. - Use
historyfor a bounded equity time series and computed summary. - Use
daily-pnlfor date-range PnL points;mode=totaluses portfolio-value deltas andmode=unrealizeduses open-position unrealized-PnL deltas. - Use
summaryandperformancefor compact versus detailed analytics.
Account-specific paths enforce ownership. Date ranges and period limits are defined in OpenAPI and may be rejected when inverted or too large.
Availability semantics
Current holdings are broker-backed; historical analytics are derived from persisted snapshots. A failed account fetch is not an empty account and can make the aggregate holdings request unavailable. Preserve nullable valuation fields and freshness metadata. Never convert an unknown price, equity, or PnL to zero unless the response explicitly contains zero.