---
title: "Consolidated portfolio (balance, stats, counts, summary)"
method: GET
path: "/v1/portfolio"
tags: ["User"]
---

# Consolidated portfolio (balance, stats, counts, summary)

`GET /v1/portfolio`

Returns the user's full portfolio in a single batched query: vault balance,
trading stats, RFQ status counts, and active-bet summary. Balance is null
when the user has no vault (never traded).

## Response `200`

OK

- object
  - `data` PortfolioData — Consolidated portfolio response from GET /v1/portfolio.
    - `balance` PortfolioBalance — Caller's vault balance (DB-cached, no RPC). Null only when the caller has no vault row at all. For dual-role accounts the bettor-side vault is preferred and the maker-side row is used as a fallback (same rules as `GET /v1/vault`).
      - `gross_balance` number
      - `locked_collateral` number
      - `free_balance` number
      - `vault_pda` string
      - `vault_token_account` string
    - `stats` UserStats
      - `total_parlays` integer
      - `wins` integer
      - `losses` integer
      - `total_wagered` number
      - `realized_pnl` number
      - `updated_at` string, date-time, nullable — Null when the user has never settled a trade (no rfq.user_stats row yet).
    - `counts` RfqCounts
      - `open` integer
      - `quoted` integer
      - `accepted` integer
      - `confirmed` integer
      - `executed` integer — Positions on-chain but not yet resolved. Distinct from total_settled — settled means market resolution + payout distributed.
      - `total_settled` integer
      - `total_cancelled` integer
      - `total_expired` integer
      - `total_failed` integer — Parlays where the vault position errored on-chain. Derived from vault_positions.status = 'error'.
    - `summary` PortfolioSummary — Derived portfolio-level aggregates from active positions.
      - `active_count` integer — Number of active (non-terminal) RFQs
      - `active_bet_total` number — Sum of bet_amount across active RFQs
      - `portfolio_value` number — Gross vault balance (deposited USDC). Does not include unrealized P&L.

---

[API](https://skmtc.net/totalistrading/apis/totalis-rfq-api.md) · [All operations](https://skmtc.net/totalistrading/apis/totalis-rfq-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/totalistrading/totalis-rfq-api/revisions/b0adb9a590b4/schema)
