Get Balance
Get balance, unrealized PnL, and total value for an allowed wallet.
With no wallet_id, this preserves the documented API-wallet default
for both API-key and Bearer authentication. An explicit wallet id uses
the same ownership-checked wallet resolution as the sibling account read
endpoints; missing and foreign ids are indistinguishable 404 responses.
Per-user 5-second cache (override via BALANCE_CACHE_TTL_S env; set to
0 to disable). Trade writes bust the cache via
app.api_v1._user_cache.bust_balance_cache.
Authorizations
Issue from /v1/keys (or admin-issued for enterprise tier).
Headers
Query Parameters
An integer wallet id you own. Omit to read the API wallet. A missing or foreign wallet returns 404 WALLET_NOT_FOUND.
Response
Successful Response
Spendable cash in the wallet (the API wallet unless wallet_id is given). Cash reserved by resting BUY orders is not included.
Always USD.
Total P&L of the wallet against its starting balance: total_value - starting_balance. Despite the name, this is not the P&L of open positions alone: realized gains and losses and fees already paid are in it too. For open-position P&L, add up unrealized_pnl from GET /v1/account/positions?status=OPEN (null for a position with no live price).
Wallet equity: balance + cash reserved by resting BUY orders + mark-to-market value of open positions and of shares reserved by resting SELL orders. Placing or cancelling a resting order does not change it.
The wallet's P&L baseline. For the API wallet this is the tier-dependent paper seed (Free $100, Pro $10,000, Pro+ $25,000).