---
title: "Portfolio Summary"
method: GET
path: "/v1/deployments/portfolio/summary"
tags: ["deployments"]
---

# Portfolio Summary

`GET /v1/deployments/portfolio/summary`

## Request

- Base URL: `https://api.usekeel.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.usekeel.io/v1/deployments/portfolio/summary`
- Auth: none declared

Aggregate stats across the org's deployments of ONE money class.

Paper Trading v2, S01 §3.10 (R-71, PT2-28): the totals sum exactly the
class named, an absent parameter meaning ``real`` (the pre-paper meaning
every shipped ``keel-trade`` wheel relies on), and the response echoes the
class it summed. No request sums two classes into one number (GOAL
invariant 3). The account is LEFT JOINed under the lists' rule, so a
deployment whose account row does not exist stays in the ``real`` total.

## Query parameters

- `capital_class` 'real' | 'practice': Money class to sum: real or practice. Absent means real; a total is summed per class, so all is refused (422).

## Headers

- `Authorization` string, nullable
- `X-Org-Id` string, nullable
- `X-Keel-Performance-Contract` 'account_performance.v1'

## Response `200`

Successful Response

- union
  - PortfolioSummaryResponse
    - `capital_class` string
    - `total_realized_pnl` number, required
    - `total_funding` number, required
    - `total_fees` number, required
    - `total_account_value` number
    - `total_unrealized_pnl` number, nullable
    - `active_count` integer, required
    - `total_count` integer, required
    - `deployments` DeploymentSummary[], required
      - `deployment_id` string, required
      - `strategy_id` string, required
      - `name` string, required
      - `status` string, required
      - `total_pnl` number, nullable
      - `position_count` integer, nullable
      - `schedule` string, nullable
      - `deployed_at` string, nullable
      - `deployed_version_string` string, nullable
  - PerformanceView
    - `contract_version` 'account_performance.v1'
    - `scope` union, required
      - AccountScope
        - `kind` 'account'
        - `scope_id` string, required
        - `account_id` string, required
        - `deployment_id` string, required
        - `reporting_interval_id` string, required
        - `start` string, date-time, required
        - `end` string, date-time, nullable, required
      - PortfolioScope
        - `kind` 'portfolio'
        - `scope_id` string, required
        - `scope_hash` string, required
        - `accounts` AccountScope[], required
          - `kind` 'account'
          - `scope_id` string, required
          - `account_id` string, required
          - `deployment_id` string, required
          - `reporting_interval_id` string, required
          - `start` string, date-time, required
          - `end` string, date-time, nullable, required
        - `basis_components` BasisComponent[], required
          - `account_id` string, required
          - `reporting_interval_id` string, required
          - `basis_id` string, required
          - `binding_revision` integer, required
        - `population` 'current_active_accounts'
    - `basis_id` string, nullable, required
    - `basis_binding_revision` integer, nullable, required
    - `basis_components` BasisComponent[], required
      - `account_id` string, required
      - `reporting_interval_id` string, required
      - `basis_id` string, required
      - `binding_revision` integer, required
    - `numeraire` 'USDC'
    - `method_id` string, required
    - `policy_sha256` string, required
    - `return_quality` 'valuation_linked' | 'estimated' | 'unavailable', required
    - `exact_twr_pct` string, nullable, required
    - `estimated_return_pct` string, nullable, required
    - `estimated_interval_count` integer, required
    - `first_estimated_at` string, date-time, nullable, required
    - `generated_at` string, date-time, required
    - `revision_token` string, required
    - `value_quality` 'current' | 'stale' | 'unavailable', required
    - `performance_quality` 'complete' | 'pending' | 'partial' | 'unavailable', required
    - `reason_codes` string[], required
    - `baseline` Baseline, required
      - `observation_ref` union, required
        - AccountReference
          - `kind` 'account_observation'
          - `observation_id` string, required
          - `verdict_revision` integer, required
          - `observed_at_lower` string, date-time, required
          - `observed_at_upper` string, date-time, required
          - `source_cutoff_sha256` string, required
          - `comparator_id` string, required
          - `comparator_version` string, required
          - `flow_inclusion_quality` 'complete' | 'pending' | 'held', required
        - PortfolioFrame
          - `kind` 'portfolio_frame'
          - `frame_id` string, required
          - `ordinal` integer, required
          - `constituents` FrameConstituent[], required
            - `account_id` string, required
            - `reporting_interval_id` string, required
            - `basis_id` string, required
            - `binding_revision` integer, required
            - `opening_observation_id` string, required
            - `closing_observation_id` string, required
            - `common_boundary_proof_ref` string, required
            - `observation_id` string, required
            - `verdict_revision` integer, required
            - `observed_at` string, date-time, required
            - `observed_at_lower` string, date-time, required
            - `observed_at_upper` string, date-time, required
            - `source_cutoff_sha256` string, required
            - `comparator_id` string, required
            - `comparator_version` string, required
            - `flow_inclusion_quality` 'complete' | 'pending' | 'held', required
            - `absorbed_from` string, date-time, required
            - `absorbed_through` string, date-time, required
            - `absorbed_principal` string, nullable, required
            - `membership_capital` string, nullable, required
          - `oldest_observed_at` string, date-time, required
          - `newest_observed_at` string, date-time, required
      - `observed_at` string, date-time, required
      - `value` string, required
    - `semantic_revisions` SemanticRevision[], required
      - `account_id` string, required
      - `basis_id` string, required
      - `revision` integer, required
    - `coverage` ClassifiedCoverage, required
      - `classified_through` string, date-time, nullable, required
      - `revision_refs` AccountBasisCoverageReference[], required
        - `kind` 'coverage'
        - `account_id` string, required
        - `basis_id` string, required
        - `source_class` string, required
        - `measure_role` 'account_nav' | 'perps_performance' | 'fee_capital', nullable
        - `performance_scope_id` string, nullable
        - `window_start` string, date-time, required
        - `window_end` string, date-time, required
        - `revision` integer, required
      - `interval_start` string, date-time, required
      - `interval_end` string, date-time, required
      - `unresolved_count` integer, required
      - `complete` boolean, required
    - `points` PerformancePoint[], required
      - `observed_at` string, date-time, required
      - `observation_ref` union, required
        - AccountReference
          - `kind` 'account_observation'
          - `observation_id` string, required
          - `verdict_revision` integer, required
          - `observed_at_lower` string, date-time, required
          - `observed_at_upper` string, date-time, required
          - `source_cutoff_sha256` string, required
          - `comparator_id` string, required
          - `comparator_version` string, required
          - `flow_inclusion_quality` 'complete' | 'pending' | 'held', required
        - PortfolioFrame
          - `kind` 'portfolio_frame'
          - `frame_id` string, required
          - `ordinal` integer, required
          - `constituents` FrameConstituent[], required
            - `account_id` string, required
            - `reporting_interval_id` string, required
            - `basis_id` string, required
            - `binding_revision` integer, required
            - `opening_observation_id` string, required
            - `closing_observation_id` string, required
            - `common_boundary_proof_ref` string, required
            - `observation_id` string, required
            - `verdict_revision` integer, required
            - `observed_at` string, date-time, required
            - `observed_at_lower` string, date-time, required
            - `observed_at_upper` string, date-time, required
            - `source_cutoff_sha256` string, required
            - `comparator_id` string, required
            - `comparator_version` string, required
            - `flow_inclusion_quality` 'complete' | 'pending' | 'held', required
            - `absorbed_from` string, date-time, required
            - `absorbed_through` string, date-time, required
            - `absorbed_principal` string, nullable, required
            - `membership_capital` string, nullable, required
          - `oldest_observed_at` string, date-time, required
          - `newest_observed_at` string, date-time, required
      - `value` string, required
      - `pnl` string, nullable, required
      - `wealth` string, nullable, required
      - `return_pct` string, nullable, required
      - `return_quality` 'valuation_linked' | 'estimated' | 'unavailable', required
      - `factor_kind` 'no_flow' | 'flow_boundary' | 'modified_dietz' | 'unavailable', required
      - `exact_twr_pct` string, nullable, required
      - `estimated_return_pct` string, nullable, required
      - `estimated_interval_count` integer, required
      - `flow` string, nullable, required
      - `validity` 'complete' | 'pending' | 'held' | 'unavailable', required
      - `segment_id` string, required
      - `perps_performance` PerpsPerformanceView, required
        - `performance_basis_id` 'perps_usdc_performance.v1'
        - `performance_scope_id` 'hyperliquid.main_perps.v1'
        - `scope_hash` string, required
        - `interval_start` string, date-time, required
        - `interval_end` string, date-time, required
        - `pnl` string, nullable, required
        - `quality` 'complete' | 'pending' | 'held' | 'unavailable', required
        - `reason_codes` string[], required
        - `input_revision_token` string, required
        - `evidence_manifest_ref` string, nullable, required
        - `return_pct` string, nullable, required
        - `return_quality` 'exact' | 'estimated' | 'unavailable', required
        - `exact_twr_pct` string, nullable, required
        - `estimated_return_pct` string, nullable, required
        - `return_method_id` string, nullable, required
        - `return_equivalence_proof_ref` string, nullable, required
    - `performance_tip` PerformanceTip, required
      - `observed_at` string, date-time, required
      - `observation_ref` union, required
        - AccountReference
          - `kind` 'account_observation'
          - `observation_id` string, required
          - `verdict_revision` integer, required
          - `observed_at_lower` string, date-time, required
          - `observed_at_upper` string, date-time, required
          - `source_cutoff_sha256` string, required
          - `comparator_id` string, required
          - `comparator_version` string, required
          - `flow_inclusion_quality` 'complete' | 'pending' | 'held', required
        - PortfolioFrame
          - `kind` 'portfolio_frame'
          - `frame_id` string, required
          - `ordinal` integer, required
          - `constituents` FrameConstituent[], required
            - `account_id` string, required
            - `reporting_interval_id` string, required
            - `basis_id` string, required
            - `binding_revision` integer, required
            - `opening_observation_id` string, required
            - `closing_observation_id` string, required
            - `common_boundary_proof_ref` string, required
            - `observation_id` string, required
            - `verdict_revision` integer, required
            - `observed_at` string, date-time, required
            - `observed_at_lower` string, date-time, required
            - `observed_at_upper` string, date-time, required
            - `source_cutoff_sha256` string, required
            - `comparator_id` string, required
            - `comparator_version` string, required
            - `flow_inclusion_quality` 'complete' | 'pending' | 'held', required
            - `absorbed_from` string, date-time, required
            - `absorbed_through` string, date-time, required
            - `absorbed_principal` string, nullable, required
            - `membership_capital` string, nullable, required
          - `oldest_observed_at` string, date-time, required
          - `newest_observed_at` string, date-time, required
      - `value` string, required
      - `pnl` string, nullable, required
      - `wealth` string, nullable, required
      - `return_pct` string, nullable, required
      - `return_quality` 'valuation_linked' | 'estimated' | 'unavailable', required
      - `factor_kind` 'no_flow' | 'flow_boundary' | 'modified_dietz' | 'unavailable', required
      - `exact_twr_pct` string, nullable, required
      - `estimated_return_pct` string, nullable, required
      - `estimated_interval_count` integer, required
      - `flow` string, nullable, required
      - `validity` 'complete' | 'pending' | 'held' | 'unavailable', required
      - `segment_id` string, required
      - `perps_performance` PerpsPerformanceView, required
        - `performance_basis_id` 'perps_usdc_performance.v1'
        - `performance_scope_id` 'hyperliquid.main_perps.v1'
        - `scope_hash` string, required
        - `interval_start` string, date-time, required
        - `interval_end` string, date-time, required
        - `pnl` string, nullable, required
        - `quality` 'complete' | 'pending' | 'held' | 'unavailable', required
        - `reason_codes` string[], required
        - `input_revision_token` string, required
        - `evidence_manifest_ref` string, nullable, required
        - `return_pct` string, nullable, required
        - `return_quality` 'exact' | 'estimated' | 'unavailable', required
        - `exact_twr_pct` string, nullable, required
        - `estimated_return_pct` string, nullable, required
        - `return_method_id` string, nullable, required
        - `return_equivalence_proof_ref` string, nullable, required
      - `revision_token` string, required
      - `interval_start` string, date-time, required
      - `covered_through` string, date-time, required
      - `complete` true
    - `quote` Quote, required
      - `value` string, required
      - `basis_id` string, required
      - `representation_id` string, required
      - `observed_at` string, date-time, required
      - `observed_interval_start` string, date-time, required
      - `observed_interval_end` string, date-time, required
      - `quality` 'current' | 'stale' | 'unavailable', required
      - `reason_codes` string[], required
    - `portfolio_context` PortfolioContext, required
      - `scope_hash` string, required
      - `constituent_revision_refs` object[], required
      - `oldest_observed_at` string, date-time, nullable, required
      - `newest_observed_at` string, date-time, nullable, required
      - `asof_value` string, nullable, required
      - `asof_value_quality` 'current' | 'stale' | 'unavailable', required
      - `return_boundary_status` 'aligned' | 'unaligned' | 'unavailable', required
    - `perps_performance` PerpsPerformanceView, required
      - `performance_basis_id` 'perps_usdc_performance.v1'
      - `performance_scope_id` 'hyperliquid.main_perps.v1'
      - `scope_hash` string, required
      - `interval_start` string, date-time, required
      - `interval_end` string, date-time, required
      - `pnl` string, nullable, required
      - `quality` 'complete' | 'pending' | 'held' | 'unavailable', required
      - `reason_codes` string[], required
      - `input_revision_token` string, required
      - `evidence_manifest_ref` string, nullable, required
      - `return_pct` string, nullable, required
      - `return_quality` 'exact' | 'estimated' | 'unavailable', required
      - `exact_twr_pct` string, nullable, required
      - `estimated_return_pct` string, nullable, required
      - `return_method_id` string, nullable, required
      - `return_equivalence_proof_ref` string, nullable, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/usekeel/apis/keel-api.md) · [All operations](https://skmtc.dev/usekeel/apis/keel-api/llms.txt) · [OpenAPI document](https://skmtc.dev/usekeel/apis/keel-api/revisions/3191ca10b0ab?raw)
