---
title: "Get My Accounts Summary"
method: GET
path: "/v1/me/accounts/summary"
---

# Get My Accounts Summary

`GET /v1/me/accounts/summary`

## Request

- Base URL: `https://api.quantradin.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.quantradin.com/v1/me/accounts/summary`
- Auth: none declared

Return the full AccountState for EVERY desk the caller owns, in ONE call.

`closed_limit` / `closed_before` page the closed-trade table exactly as
GET /v1/me/accounts/{id} does, and the cap is PER DESK — a global one
would let the busiest desk eat every other desk's rows and render them
empty. Omitted, every closed trade comes back, which is what every
existing client already reads.

This is the cockpit's batch read: the page needs each desk's headline,
deployments, and open/closed positions to draw its stats, equity curve,
verdict mix and per-desk cards. Previously it listed desks then fetched
GET /v1/me/accounts/{id} once PER desk (an N+1 that stormed the connection
pool — Sentry JAVASCRIPT-NEXTJS-4). Here every desk is assembled from a
handful of batched IN/GROUP BY queries (equity, deployments, open + closed
positions), so the round-trips are constant, not O(desks).

Each element is byte-identical to what GET /v1/me/accounts/{id} returns for
that desk. Owner-scoped exactly like /v1/me/accounts: db.list_user_accounts
filters on the resolved uid, so a principal only ever sees their OWN desks.

Auth: the shared resolver (session cookie / X-Vega-Key / account key pair) —
401 when unauthenticated, and a suspended caller fails closed in the resolver.
Note: this route MUST stay registered before /v1/me/accounts/{account_id} so
the literal path 'summary' is not parsed as an int account id (422).

## Query parameters

- `closed_limit` integer, nullable
- `closed_before` integer, nullable

## Headers

- `x-vega-key` string, nullable

## Response `200`

Successful Response

- AccountState[]
  - `account` AccountSummary, required: One row in GET /v1/accounts — a paper account's headline P&L + counts. Every figure is SIMULATED paper P&L at real quote prices (zero real money).
    - `id` integer, required
    - `name` string, nullable
    - `starting_cash` number, required
    - `equity` number, required
    - `realized` number, required
    - `unrealized` number, required
    - `n_open` integer, required
    - `n_closed` integer, required
    - `n_deployments` integer, required
    - `max_usd_per_trade` number, nullable
    - `max_open_usd` number, nullable
    - `max_sector_frac` number, nullable
    - `max_daily_loss_usd` number, nullable
    - `trading_halted` boolean
    - `trading_halt_reason` string, nullable
    - `trading_halted_by` string, nullable
    - `max_gross_exposure` number, nullable
    - `max_net_exposure` number, nullable
    - `max_positions_per_symbol` integer, nullable
    - `max_correlation` number, nullable
    - `correlation_window_sessions` integer, nullable
    - `desk_position_stop_pct` number, nullable
  - `deployments` object[], required
  - `positions` object, required
  - `equity` object, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/quantradin/apis/vega-api.md) · [All operations](https://skmtc.dev/quantradin/apis/vega-api/llms.txt) · [OpenAPI document](https://skmtc.dev/quantradin/apis/vega-api/revisions/47add154ef38?raw)
