---
title: "Get user portfolio"
method: GET
path: "/api/v1/users/{address}/wallet/balances"
tags: ["User"]
---

# Get user portfolio

`GET /api/v1/users/{address}/wallet/balances`

## Path parameters

- `address` string, required — The user account address

## Query parameters

- `with_text` boolean — Include text variation fields
- `with_value` boolean — Calculate and include USD values for amounts, where applicable

## Response `200`

- object
  - `data` UserWalletPortfolio — `UserWalletPortfolio`
    - `balances` WalletBalance[], required — Array of each wallet balance
      - `asset` AssetSpec, required — `AssetSpec` Provides a unique identifier for an asset for use throughout the Neptune API. IDs are unique across asset domains (contract tokens, native denoms, etc)
        - `id` string, required
        - `group` 'native' | 'token', required
        - `group_key` string, required
      - `values` union, required
        - object — This will be provided given the denom matches that of an asset included in the /assets endpoint.
          - `known_asset` KnownWalletValues, required — `KnownWalletValues`
            - `asset_info` AssetInfo, required — `AssetInfo`
              - …
            - `amount` string, required — Wallet balance in native denom.
            - `amount_scaled` string, required — Amount scaled to the asset's standard unit / decimal places.
            - `extra` object, required
              - …
        - object
          - `unknown_asset` object, required — `UnknownWalletValues`
            - `amount` string, required — Wallet balance in native denom.
    - `total_value` string — Sum value in USD. Only available when value calculation is enabled. **NOTE:** this only accounts for assets which are internally known & tracked. See the `/assets` endpoint for a list of supported assets.
    - `extra` object, required
      - `text` object, nullable
        - `total_value` string, required
  - `error` ErrorData
    - `scope` 'user' | 'client' | 'server', required
    - `kind` 'invalid_request' | 'validation' | 'entity_not_found' | 'contract' | 'internal', required
    - `message` string, required — Error message
    - `fields` FieldValidationError[], nullable — List of names and error messages for invalid fields. Always set when `error.kind == 'validation'`. Always NULL/unset for all other cases.
      - `field` string, required
      - `message` string, required
  - `status` integer, required — Request status
  - `status_text` string, required — Request status text

## Changes

- **2026-02-25** `e997962d4ed0` — 1 breaking, 1 info
  - added `subschema #1, subschema #2` to the `data/anyOf[#/components/schemas/UserWalletPortfolio]/balances/items/values/allOf[#/components/schemas/WalletValueGroup]/` response property `oneOf` list for the response status `200`
  - removed `subschema #1, subschema #2` from the `data/anyOf[#/components/schemas/UserWalletPortfolio]/balances/items/values/allOf[#/components/schemas/WalletValueGroup]/` response property `oneOf` list for the response status `200`
- **2026-02-25** `32a9346c5ad5` — 1 breaking, 1 info
  - added `subschema #1, subschema #2` to the `data/anyOf[#/components/schemas/UserWalletPortfolio]/balances/items/values/allOf[#/components/schemas/WalletValueGroup]/` response property `oneOf` list for the response status `200`
  - removed `subschema #1, subschema #2: Unknown asset` from the `data/anyOf[#/components/schemas/UserWalletPortfolio]/balances/items/values/allOf[#/components/schemas/WalletValueGroup]/` response property `oneOf` list for the response status `200`
- …earlier changes not shown

[Full history](https://skmtc.dev/cryptechdev/apis/neptune-api-v2/changes/api/v1/users/:address/wallet/balances/get.md)

---

[API](https://skmtc.dev/cryptechdev/apis/neptune-api-v2.md) · [All operations](https://skmtc.dev/cryptechdev/apis/neptune-api-v2/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/cryptechdev/neptune-api-v2/revisions/4b5b35e288d8/schema)
