Skip to main content
/v2/user/portfolio-state returns everything you need to display a trader’s full account state in a single response: perp positions, spot balances, open orders, and account abstraction mode.

When to use this

  • User profile pages in a trading dashboard — show perp PnL, spot holdings, and open orders without chaining multiple calls
  • Copy trading dashboards fetching the complete state of every leader you track
  • Login flows that need to populate a user’s full account in one request
  • Risk monitors pulling a complete picture of an account in a single round-trip
Instead of making 4 separate requests to clearinghouseState, spotClearinghouseState, openOrders, and userAbstraction, you make one.

Single user

Query parameters

Example response

Response fields

Any sub-field may be null if that part of the user’s state is empty or the underlying query failed.

Batch — up to 2,500 wallets per request

For copy trading platforms and multi-user dashboards, use the batch variant to pull many wallets at once.

Request body

Response

Keyed by wallet address. Each value has the same shape as the single-user endpoint.

Dry-run mode

Pass "dry": true to get a response with the correct shape but stub values. Useful for building and testing your parser without generating real load.
Dry response:

Limits

If you need more than 2,500 at a time, use /v2/batch/clearinghouse-states which supports up to 10,000 (perp positions only, no spot or open orders).