Uphold Portfolio API

Portfolio.

Operations 9

GET /core/portfolio Get overview #
GET /core/portfolio/performance Get performance #
GET /core/portfolio/historical-balance Get historical balance #
GET /core/portfolio/assets/{asset}/performance Get asset performance #
POST /core/portfolio/assets/_mget/performance Get many assets performance #
GET /core/portfolio/assets/{asset}/historical-balance Get asset historical balance #
GET /core/portfolio/accounts/{accountId}/performance Get account performance #
POST /core/portfolio/accounts/_mget/performance Get many accounts performance #
GET /core/portfolio/accounts/{accountId}/historical-balance Get account historical balance #

Documentation

Specifications

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/uphold-portfolio-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

uphold-portfolio-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 0.1.0
  title: Core Portfolio API
  description: The Core API provides essential building blocks that empower businesses to embed financial services into their applications.
  contact:
    name: Uphold API Team
    email: developers@uphold.com
    url: https://developer.uphold.com
servers:
- url: https://api.enterprise.sandbox.uphold.com
  description: Sandbox
- url: https://api.enterprise.uphold.com
  description: Production
security:
- OAuth2: []
tags:
- name: Portfolio
  description: Portfolio.
paths:
  /core/portfolio:
    get:
      operationId: core.get-portfolio-overview
      summary: Get overview
      description: Retrieves an overview of the portfolio, including the total portfolio value and a breakdown of individual holdings.
      tags:
      - Portfolio
      x-uphold:
        security:
          OAuth2:
            subjects:
            - user:business
            - user:individual
      security:
      - OAuth2:
        - core.portfolio:read
      parameters:
      - $ref: '#/components/parameters/denomination'
      - $ref: '#/components/parameters/portfolio-include-base'
      - $ref: '#/components/parameters/x-on-behalf-of'
      - $ref: '#/components/parameters/x-uphold-user-ip'
      - $ref: '#/components/parameters/x-uphold-user-agent'
      - $ref: '#/components/parameters/x-uphold-user-origin'
      - $ref: '#/components/parameters/x-uphold-user-country'
      - $ref: '#/components/parameters/x-uphold-user-subdivision'
      - $ref: '#/components/parameters/x-uphold-user-city'
      responses:
        '200':
          $ref: '#/components/responses/get-portfolio-overview-response'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/get-portfolio-overview-not-found-response'
        '409':
          $ref: '#/components/responses/get-portfolio-overview-conflict-response'
        '429':
          $ref: '#/components/responses/too-many-requests'
  /core/portfolio/performance:
    get:
      operationId: core.get-portfolio-performance
      summary: Get performance
      description: Retrieves the performance of the portfolio, including the average cost, total invested, and unrealized gains (gains and losses).
      tags:
      - Portfolio
      x-uphold:
        security:
          OAuth2:
            subjects:
            - user:individual
      security:
      - OAuth2:
        - core.portfolio:read
      parameters:
      - $ref: '#/components/parameters/denomination'
      - $ref: '#/components/parameters/portfolio-performance-interval'
      - $ref: '#/components/parameters/x-on-behalf-of'
      - $ref: '#/components/parameters/x-uphold-user-ip'
      - $ref: '#/components/parameters/x-uphold-user-agent'
      - $ref: '#/components/parameters/x-uphold-user-origin'
      - $ref: '#/components/parameters/x-uphold-user-country'
      - $ref: '#/components/parameters/x-uphold-user-subdivision'
      - $ref: '#/components/parameters/x-uphold-user-city'
      responses:
        '200':
          $ref: '#/components/responses/get-portfolio-performance-response'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/get-portfolio-performance-not-found-response'
        '409':
          $ref: '#/components/responses/get-portfolio-performance-conflict-response'
        '429':
          $ref: '#/components/responses/too-many-requests'
  /core/portfolio/historical-balance:
    get:
      operationId: core.get-portfolio-historical-balance
      summary: Get historical balance
      description: Retrieves the historical balance of the portfolio, including the total and available balance over time.
      tags:
      - Portfolio
      x-uphold:
        security:
          OAuth2:
            subjects:
            - user:business
            - user:individual
      security:
      - OAuth2:
        - core.portfolio:read
      parameters:
      - $ref: '#/components/parameters/denomination'
      - $ref: '#/components/parameters/portfolio-historical-balance-interval'
      - $ref: '#/components/parameters/x-on-behalf-of'
      - $ref: '#/components/parameters/x-uphold-user-ip'
      - $ref: '#/components/parameters/x-uphold-user-agent'
      - $ref: '#/components/parameters/x-uphold-user-origin'
      - $ref: '#/components/parameters/x-uphold-user-country'
      - $ref: '#/components/parameters/x-uphold-user-subdivision'
      - $ref: '#/components/parameters/x-uphold-user-city'
      responses:
        '200':
          $ref: '#/components/responses/get-portfolio-historical-balance-response'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/get-portfolio-historical-balance-not-found-response'
        '409':
          $ref: '#/components/responses/get-portfolio-historical-balance-conflict-response'
        '429':
          $ref: '#/components/responses/too-many-requests'
  /core/portfolio/assets/{asset}/performance:
    get:
      operationId: core.get-portfolio-asset-performance
      summary: Get asset performance
      description: Retrieves the performance of an asset in the portfolio, including the average cost, total invested, and unrealized gains (gains and losses).
      tags:
      - Portfolio
      x-uphold:
        security:
          OAuth2:
            subjects:
            - user:individual
      security:
      - OAuth2:
        - core.portfolio:read
      parameters:
      - $ref: '#/components/parameters/asset-code'
      - $ref: '#/components/parameters/denomination'
      - $ref: '#/components/parameters/portfolio-performance-interval'
      - $ref: '#/components/parameters/x-on-behalf-of'
      - $ref: '#/components/parameters/x-uphold-user-ip'
      - $ref: '#/components/parameters/x-uphold-user-agent'
      - $ref: '#/components/parameters/x-uphold-user-origin'
      - $ref: '#/components/parameters/x-uphold-user-country'
      - $ref: '#/components/parameters/x-uphold-user-subdivision'
      - $ref: '#/components/parameters/x-uphold-user-city'
      responses:
        '200':
          $ref: '#/components/responses/get-portfolio-asset-performance-response'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/get-portfolio-asset-performance-not-found-response'
        '409':
          $ref: '#/components/responses/get-portfolio-asset-performance-conflict-response'
        '429':
          $ref: '#/components/responses/too-many-requests'
  /core/portfolio/assets/_mget/performance:
    post:
      operationId: core.get-portfolio-many-assets-performance
      summary: Get many assets performance
      description: Retrieves the performance of multiple assets in the portfolio, including the average cost, total invested, and unrealized gains (gains and losses) for each asset.
      tags:
      - Portfolio
      x-uphold:
        security:
          OAuth2:
            subjects:
            - user:individual
      security:
      - OAuth2:
        - core.portfolio:read
      parameters:
      - $ref: '#/components/parameters/denomination'
      - $ref: '#/components/parameters/portfolio-performance-interval'
      - $ref: '#/components/parameters/x-on-behalf-of'
      - $ref: '#/components/parameters/x-uphold-user-ip'
      - $ref: '#/components/parameters/x-uphold-user-agent'
      - $ref: '#/components/parameters/x-uphold-user-origin'
      - $ref: '#/components/parameters/x-uphold-user-country'
      - $ref: '#/components/parameters/x-uphold-user-subdivision'
      - $ref: '#/components/parameters/x-uphold-user-city'
      requestBody:
        $ref: '#/components/requestBodies/get-portfolio-many-assets-performance-request-body'
      responses:
        '200':
          $ref: '#/components/responses/get-portfolio-many-assets-performance-response'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/get-portfolio-many-assets-performance-not-found-response'
        '409':
          $ref: '#/components/responses/get-portfolio-many-assets-performance-conflict-response'
        '429':
          $ref: '#/components/responses/too-many-requests'
  /core/portfolio/assets/{asset}/historical-balance:
    get:
      operationId: core.get-portfolio-asset-historical-balance
      summary: Get asset historical balance
      description: Retrieves the historical balance of a specific asset in the portfolio, including the total and available balance over time.
      tags:
      - Portfolio
      x-uphold:
        security:
          OAuth2:
            subjects:
            - user:business
            - user:individual
      security:
      - OAuth2:
        - core.portfolio:read
      parameters:
      - $ref: '#/components/parameters/asset-code'
      - $ref: '#/components/parameters/denomination'
      - $ref: '#/components/parameters/portfolio-historical-balance-interval'
      - $ref: '#/components/parameters/portfolio-include-base'
      - $ref: '#/components/parameters/x-on-behalf-of'
      - $ref: '#/components/parameters/x-uphold-user-ip'
      - $ref: '#/components/parameters/x-uphold-user-agent'
      - $ref: '#/components/parameters/x-uphold-user-origin'
      - $ref: '#/components/parameters/x-uphold-user-country'
      - $ref: '#/components/parameters/x-uphold-user-subdivision'
      - $ref: '#/components/parameters/x-uphold-user-city'
      responses:
        '200':
          $ref: '#/components/responses/get-portfolio-asset-historical-balance-response'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/get-portfolio-asset-historical-balance-not-found-response'
        '409':
          $ref: '#/components/responses/get-portfolio-asset-historical-balance-conflict-response'
        '429':
          $ref: '#/components/responses/too-many-requests'
  /core/portfolio/accounts/{accountId}/performance:
    get:
      operationId: core.get-portfolio-account-performance
      summary: Get account performance
      description: Retrieves the performance of an account in the portfolio, including the average cost, total invested, and unrealized gains (gains and losses).
      tags:
      - Portfolio
      x-uphold:
        security:
          OAuth2:
            subjects:
            - user:individual
      security:
      - OAuth2:
        - core.portfolio:read
      parameters:
      - $ref: '#/components/parameters/account-id'
      - $ref: '#/components/parameters/denomination'
      - $ref: '#/components/parameters/portfolio-performance-interval'
      - $ref: '#/components/parameters/x-on-behalf-of'
      - $ref: '#/components/parameters/x-uphold-user-ip'
      - $ref: '#/components/parameters/x-uphold-user-agent'
      - $ref: '#/components/parameters/x-uphold-user-origin'
      - $ref: '#/components/parameters/x-uphold-user-country'
      - $ref: '#/components/parameters/x-uphold-user-subdivision'
      - $ref: '#/components/parameters/x-uphold-user-city'
      responses:
        '200':
          $ref: '#/components/responses/get-portfolio-account-performance-response'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/get-portfolio-account-performance-not-found-response'
        '409':
          $ref: '#/components/responses/get-portfolio-account-performance-conflict-response'
        '429':
          $ref: '#/components/responses/too-many-requests'
  /core/portfolio/accounts/_mget/performance:
    post:
      operationId: core.get-portfolio-many-accounts-performance
      summary: Get many accounts performance
      description: Retrieves the performance of multiple accounts in the portfolio, including the average cost, total invested, and unrealized gains (gains and losses) for each account.
      tags:
      - Portfolio
      x-uphold:
        security:
          OAuth2:
            subjects:
            - user:individual
      security:
      - OAuth2:
        - core.portfolio:read
      parameters:
      - $ref: '#/components/parameters/denomination'
      - $ref: '#/components/parameters/portfolio-performance-interval'
      - $ref: '#/components/parameters/x-on-behalf-of'
      - $ref: '#/components/parameters/x-uphold-user-ip'
      - $ref: '#/components/parameters/x-uphold-user-agent'
      - $ref: '#/components/parameters/x-uphold-user-origin'
      - $ref: '#/components/parameters/x-uphold-user-country'
      - $ref: '#/components/parameters/x-uphold-user-subdivision'
      - $ref: '#/components/parameters/x-uphold-user-city'
      requestBody:
        $ref: '#/components/requestBodies/get-many-accounts-request-body'
      responses:
        '200':
          $ref: '#/components/responses/get-portfolio-many-accounts-performance-response'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/get-portfolio-many-accounts-performance-not-found-response'
        '409':
          $ref: '#/components/responses/get-portfolio-many-accounts-performance-conflict-response'
        '429':
          $ref: '#/components/responses/too-many-requests'
  /core/portfolio/accounts/{accountId}/historical-balance:
    get:
      operationId: core.get-portfolio-account-historical-balance
      summary: Get account historical balance
      description: Retrieves the historical balance of a specific account, including the total and available balance over time.
      tags:
      - Portfolio
      x-uphold:
        security:
          OAuth2:
            subjects:
            - user:business
            - user:individual
      security:
      - OAuth2:
        - core.portfolio:read
      parameters:
      - $ref: '#/components/parameters/account-id'
      - $ref: '#/components/parameters/denomination'
      - $ref: '#/components/parameters/portfolio-historical-balance-interval'
      - $ref: '#/components/parameters/portfolio-include-base'
      - $ref: '#/components/parameters/x-on-behalf-of'
      - $ref: '#/components/parameters/x-uphold-user-ip'
      - $ref: '#/components/parameters/x-uphold-user-agent'
      - $ref: '#/components/parameters/x-uphold-user-origin'
      - $ref: '#/components/parameters/x-uphold-user-country'
      - $ref: '#/components/parameters/x-uphold-user-subdivision'
      - $ref: '#/components/parameters/x-uphold-user-city'
      responses:
        '200':
          $ref: '#/components/responses/get-portfolio-account-historical-balance-response'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/get-portfolio-account-historical-balance-not-found-response'
        '409':
          $ref: '#/components/responses/get-portfolio-account-historical-balance-conflict-response'
        '429':
          $ref: '#/components/responses/too-many-requests'
components:
  responses:
    get-portfolio-account-performance-not-found-response:
      description: Resource not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
          examples:
            Account Not Found:
              value:
                code: entity_not_found
                message: The account cannot be found
                details:
                  entity: account
            Denomination Asset Not Found:
              value:
                code: entity_not_found
                message: The denomination asset cannot be found
                details:
                  context: query
                  property: denomination
                  entity: asset
      headers:
        x-uphold-request-id:
          description: A unique identifier for the request that can be shared with Uphold for troubleshooting purposes.
          required: true
          schema:
            type: string
            format: uuid
          examples:
            Request ID:
              value: 9092ee4d-f0fb-42e9-8787-b668dbcec531
    get-portfolio-asset-performance-conflict-response:
      description: Business logic error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
          examples:
            Denomination Asset Not Supported:
              value:
                code: asset_not_supported
                message: The denomination asset is not supported
                details:
                  context: query
                  property: denomination
      headers:
        x-uphold-request-id:
          description: A unique identifier for the request that can be shared with Uphold for troubleshooting purposes.
          required: true
          schema:
            type: string
            format: uuid
          examples:
            Request ID:
              value: 9092ee4d-f0fb-42e9-8787-b668dbcec531
    get-portfolio-asset-performance-not-found-response:
      description: Resource not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
          examples:
            Asset Not Found:
              value:
                code: entity_not_found
                message: The asset cannot be found
                details:
                  entity: asset
            Denomination Asset Not Found:
              value:
                code: entity_not_found
                message: The denomination asset cannot be found
                details:
                  context: query
                  property: denomination
                  entity: asset
      headers:
        x-uphold-request-id:
          description: A unique identifier for the request that can be shared with Uphold for troubleshooting purposes.
          required: true
          schema:
            type: string
            format: uuid
          examples:
            Request ID:
              value: 9092ee4d-f0fb-42e9-8787-b668dbcec531
    get-portfolio-performance-not-found-response:
      description: Resource not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
          examples:
            Denomination Asset Not Found:
              value:
                code: entity_not_found
                message: The denomination asset cannot be found
                details:
                  context: query
                  property: denomination
                  entity: asset
      headers:
        x-uphold-request-id:
          description: A unique identifier for the request that can be shared with Uphold for troubleshooting purposes.
          required: true
          schema:
            type: string
            format: uuid
          examples:
            Request ID:
              value: 9092ee4d-f0fb-42e9-8787-b668dbcec531
    get-portfolio-asset-historical-balance-conflict-response:
      description: Business logic error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
          examples:
            Denomination Asset Not Supported:
              value:
                code: asset_not_supported
                message: The denomination asset is not supported
                details:
                  context: query
                  property: denomination
                  entity: asset
      headers:
        x-uphold-request-id:
          description: A unique identifier for the request that can be shared with Uphold for troubleshooting purposes.
          required: true
          schema:
            type: string
            format: uuid
          examples:
            Request ID:
              value: 9092ee4d-f0fb-42e9-8787-b668dbcec531
    get-portfolio-many-accounts-performance-not-found-response:
      description: Resource not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
          examples:
            Denomination Asset Not Found:
              value:
                code: entity_not_found
                message: The denomination asset cannot be found
                details:
                  context: query
                  property: denomination
                  entity: asset
      headers:
        x-uphold-request-id:
          description: A unique identifier for the request that can be shared with Uphold for troubleshooting purposes.
          required: true
          schema:
            type: string
            format: uuid
          examples:
            Request ID:
              value: 9092ee4d-f0fb-42e9-8787-b668dbcec531
    get-portfolio-account-performance-response:
      description: Portfolio account performance retrieved.
      content:
        application/json:
          schema:
            type: object
            properties:
              performance:
                $ref: '#/components/schemas/portfolio-performance'
            required:
            - performance
          examples:
            Portfolio Performance Retrieved:
              value:
                performance:
                  averagePricePaid: '2445.52'
                  totalInvested: '1243.02'
                  unrealizedGains: '14.66'
      headers:
        x-uphold-request-id:
          description: A unique identifier for the request that can be shared with Uphold for troubleshooting purposes.
          required: true
          schema:
            type: string
            format: uuid
          examples:
            Request ID:
              value: 9092ee4d-f0fb-42e9-8787-b668dbcec531
    get-portfolio-account-historical-balance-response:
      description: Portfolio account historical balance retrieved.
      content:
        application/json:
          schema:
            type: object
            properties:
              historicalBalance:
                type: array
                items:
                  $ref: '#/components/schemas/portfolio-historical-balance'
                minItems: 1
            required:
            - historicalBalance
          examples:
            Portfolio Account Historical Balance Retrieved:
              value:
                historicalBalance:
                - timestamp: '2020-01-01T00:00:00.000Z'
                  balance:
                    total: '1000.00'
                    available: '950.00'
                - timestamp: '2020-01-02T00:00:00.000Z'
                  balance:
                    total: '1200.00'
                    available: '1150.00'
            Portfolio Account Historical Balance With Base Asset Amounts Retrieved:
              value:
                historicalBalance:
                - timestamp: '2020-01-01T00:00:00.000Z'
                  balance:
                    total: '1600.83'
                    available: '1500.83'
                    baseTotal: '0.01493'
                    baseAvailable: '0.01399'
                - timestamp: '2020-01-02T00:00:00.000Z'
                  balance:
                    total: '1800.50'
                    available: '1750.00'
                    baseTotal: '0.01679'
                    baseAvailable: '0.01632'
      headers:
        x-uphold-request-id:
          description: A unique identifier for the request that can be shared with Uphold for troubleshooting purposes.
          required: true
          schema:
            type: string
            format: uuid
          examples:
            Request ID:
              value: 9092ee4d-f0fb-42e9-8787-b668dbcec531
    forbidden:
      description: Forbidden.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
          examples:
            Token Insufficient Scopes:
              value:
                code: token_insufficient_scopes
                message: Authorization failed due to insufficient scopes
                details:
                  security:
                  - scheme: OAuth
                    schemeScopes:
                    - required:scope_1
                    - required:scope_2
                    tokenScopes:
                    - token:scope
      headers:
        x-uphold-request-id:
          description: A unique identifier for the request that can be shared with Uphold for troubleshooting purposes.
          required: true
          schema:
            type: string
            format: uuid
          examples:
            Request ID:
              value: 9092ee4d-f0fb-42e9-8787-b668dbcec531
    get-portfolio-account-historical-balance-not-found-response:
      description: Resource not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
          examples:
            Account Not Found:
              value:
                code: entity_not_found
                message: The account cannot be found
                details:
                  entity: account
            Denomination Asset Not Found:
              value:
                code: entity_not_found
                message: The denomination asset cannot be found
                details:
                  context: query
                  property: denomination
                  entity: asset
      headers:
        x-uphold-request-id:
          description: A unique identifier for the request that can be shared with Uphold for troubleshooting purposes.
          required: true
          schema:
            type: string
            format: uuid
          examples:
            Request ID:
              value: 9092ee4d-f0fb-42e9-8787-b668dbcec531
    get-portfolio-historical-balance-conflict-response:
      description: Business logic error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
          examples:
            Denomination Asset Not Supported:
              value:
                code: asset_not_supported
                message: The denomination asset is not supported
                details:
                  context: query
                  property: denomination
      headers:
        x-uphold-request-id:
          description: A unique identifier for the request that can be shared with Uphold for troubleshooting purposes.
          required: true
          schema:
            type: string
            format: uuid
          examples:
            Request ID:
              value: 9092ee4d-f0fb-42e9-8787-b668dbcec531
    unauthorized:
      description: Unauthorized.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
          examples:
            Token Expired:
              value:
                code: token_expired
                message: The access token has expired
            Token Invalid:
              value:
                code: token_invalid
                message: The access token is invalid
            Token Revoked:
              value:
                code: token_revoked
                message: The access token has been revoked
      headers:
        x-uphold-request-id:
          description: A unique identifier for the request that can be shared with Uphold for troubleshooting purposes.
          required: true
          schema:
            type: string
            format: uuid
          examples:
            Request ID:
              value: 9092ee4d-f0fb-42e9-8787-b668dbcec531
    get-portfolio-performance-response:
      description: Portfolio performance retrieved.
      content:
        application/json:
          schema:
            type: object
            properties:
              performance:
                $ref: '#/components/schemas/portfolio-performance-overview'
            required:
            - performance
          examples:
            Portfolio Performance Retrieved:
              value:
                performance:
                  totalInvested: '1276.64'
                  unrealizedGains: '14.25'
      headers:
        x-uphold-request-id:
          description: A unique identifier for the request that can be shared with Uphold for troubleshooting purposes.
          required: true
          schema:
            type: string
            format: uuid
          examples:
            Request ID:
              value: 9092ee4d-f0fb-42e9-8787-b668dbcec531
    get-portfolio-many-accounts-performance-conflict-response:
      description: Business logic error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
          examples:
            Denomination Asset Not Supported:
              value:
                code: asset_not_supported
                message: The denomination asset is not supported
                details:
                  context: query
                  property: denomination
      headers:
        x-uphold-request-id:
          description: A unique identifier for the request that can be shared with Uphold for troubleshooting purposes.
          required: true
          schema:
            type: string
            format: uuid
          examples:
            Request ID:
              value: 9092ee4d-f0fb-42e9-8787-b668dbcec531
    get-portfolio-account-historical-balance-conflict-response:
      description: Business logic error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
          examples:
            Denomination Asset Not Supported:
              value:
                code: asset_not_supported
                message: The denomination asset is not supported
                details:
                  context: query
                  property: denomination
                  entity: asset
      headers:
        x-uphold-request-id:
          description: A unique identifier for the request that can be shared with Uphold for troubleshooting purposes.
          required: true
          schema:
            type: string
            format: uuid
          examples:
            Request ID:
              value: 9092ee4d-f0fb-42e9-8787-b668dbcec531
    get-portfolio-account-performance-conflict-response:
      description: Business logic error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
          examples:
            Denomination Asset Not Supported:
              value:
                code: asset_not_supported
                message: The denomination asset is not supported
                details:
                  context: query
                  property: denomination
      headers:
        x-uphold-request-id:
          description: A unique identifier for the request that can be shared with Uphold for troubleshooting purposes.
          required: true
          schema:
            type: string
            format: uuid
          examples:
            Request ID:
              value: 9092ee4d-f0fb-42e9-8787-b668dbcec531
    get-portfolio-asset-historical-balance-not-found-response:
      description: Resource not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
          examples:
            Asset Not Found:
              value:
                code: entity_not_found
                message: The asset cannot be found
                details:
                  entity: asset
            Denomination Asset Not Found:
              value:
                code: entity_not_found
                message: The denomination asset cannot be found
                details:
                  context: query
                  property: denomination
                  entity: asset
      headers:
        x-uphold-request-id:
          description: A unique identifier for the request that can be shared with Uphold for troubleshooting purposes.
          required: true
          schema:
            type: string
            format: uuid
          examples:
            Request ID:
              value: 9092ee4d-f0fb-42e9-8787-b668dbcec531
    get-portfolio-performance-conflict-response:
      description: Business logic error.
      content:

# --- truncated at 32 KB (60 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/uphold/refs/heads/main/openapi/uphold-portfolio-api-openapi.yml