---
title: "GET /v1/portfolios/{portfolioSlug}/address-holdings/{address}/balances"
method: GET
path: "/v1/portfolios/{portfolioSlug}/address-holdings/{address}/balances"
tags: ["Portfolios"]
---

# GET /v1/portfolios/{portfolioSlug}/address-holdings/{address}/balances

`GET /v1/portfolios/{portfolioSlug}/address-holdings/{address}/balances`

## Request

- Base URL: `https://api.tokenbooks.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.tokenbooks.io/v1/portfolios/{portfolioSlug}/address-holdings/{address}/balances`
- Auth: API key in header `x-api-key`

## Path parameters

- `address` string, required
- `portfolioSlug` string, required

## Query parameters

- `pageSize` integer: Requested number of resources to return. Oversized values are clamped to the route limit.
- `pageToken` string: Opaque token returned by the previous list response.
- `asOfDate` string, date-time: Optional snapshot timestamp for historical balance reads
- `showSpam` boolean: Whether spam tokens should be included

## Response `200`

- AddressTokenBalancesListResponseDto
  - `data` object[], required
    - `address` string, required: Wallet address
    - `chainId` string, required: Chain ID
    - `tokenAddress` string, required: Token contract address
    - `assetId` string, required: Asset ID
    - `symbol` string, required: Token symbol
    - `name` string, required: Token display name
    - `decimals` integer, required: Token decimal precision
    - `isNative` boolean, required: Whether this is a native chain token
    - `isSpam` boolean, required: Whether this token is spam
    - `stablecoinPeggedFiatCurrency` string, nullable: Effective stablecoin peg currency for this portfolio, or null when unpegged; omitted by older servers
    - `quantity` string, required: Token quantity
    - `unitPrice` string, nullable, required: Unit price in base currency
    - `pricedAt` string, date-time, nullable, required: Timestamp when the value was priced (ISO 8601)
    - `value` string, nullable, required: Value in base currency, as its /assets wallet row values it; null when the holding cannot be valued
    - `defiExposure` object[]: Optional DeFi exposure rows for this token
      - `positionId` string, required: DeFi position ID
      - `positionRef` string: Stable DeFi position reference
      - `positionSelector` object: Explicit selector for opening the DeFi position detail
        - `walletChainId` string, required: Owning wallet chain ID
        - `walletAddress` string, required: Owning wallet address
        - `positionKey` string, required: Protocol-defined stable logical position key
      - `protocol` string, required: Protocol display name
      - `contract` string, required: Protocol contract or custody identifier
      - `status` string, required: DeFi position status
      - `quantity` string, required: Token quantity exposed to DeFi
      - `value` string, nullable, required: Exposure value in base currency, as its wallet row values it. Without a market price it is the exposure's share of the asset's cost basis, or under wallet-scoped basis of its own wallet's cost basis; null when neither applies
  - `pagination` object, required
    - `pageSize` integer, required: Items returned per page.
    - `nextPageToken` string: Opaque token for retrieving the next page.

---

[API](https://skmtc.dev/tokenbooks/apis/tokenbooks-public-api.md) · [All operations](https://skmtc.dev/tokenbooks/apis/tokenbooks-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/tokenbooks/apis/tokenbooks-public-api/revisions/180622e6255e?raw)
