---
title: "Get Smart Money Holdings Data"
method: POST
path: "/api/v1/smart-money/holdings"
tags: ["Smart Money"]
---

# Get Smart Money Holdings Data

`POST /api/v1/smart-money/holdings`

Retrieve aggregated token balances held by smart traders and funds across multiple blockchains. This endpoint provides insights into what tokens are being accumulated by sophisticated market participants, excluding whales, large holders, and influencers to focus specifically on trading expertise.

Key Features:

- Aggregated balances (not per-wallet breakdowns)
- 24-hour balance change tracking updated in realtime
- Sector categorization for tokens

## Request body

- SmartMoneyHoldingsRequest
  - `chains` SmartMoneyChain[], required — Chains to include in the analysis (only smart money supported chains). Use 'all' to include all available chains.
  - `filters` SmartMoneyHoldingsFilters — Filters for smart money holdings endpoint. These filters control which token holdings, smart money categories, and data are included in the holdings analysis.
    - `include_smart_money_labels` SmartMoneyFilterType[] — Smart money category filters
    - `exclude_smart_money_labels` SmartMoneyFilterType[] — Smart money category filters
    - `include_stablecoins` boolean — Whether to include stablecoins in the results
    - `include_native_tokens` boolean — Whether to include native tokens (e.g., ETH, SOL) in the results
    - `value_usd` NumericRangeFilter — Filter for numeric values (floats) with optional min/max bounds. Use for prices, volumes, ratios, and other decimal values. - Values between -10.5 and 100.75
      - `min` number — Minimum value (inclusive)
      - `max` number — Maximum value (inclusive)
    - `balance_24h_percent_change` NumericRangeFilter — Filter for numeric values (floats) with optional min/max bounds. Use for prices, volumes, ratios, and other decimal values. - Values between -10.5 and 100.75
      - `min` number — Minimum value (inclusive)
      - `max` number — Maximum value (inclusive)
    - `holders_count` IntegerRangeFilter — Filter for integer values with optional min/max bounds. Use for counts, numbers of items, and other whole number values. - Values between 5 and 100
      - `min` integer — Minimum value (inclusive)
      - `max` integer — Maximum value (inclusive)
    - `share_of_holdings_percent` NumericRangeFilter — Filter for numeric values (floats) with optional min/max bounds. Use for prices, volumes, ratios, and other decimal values. - Values between -10.5 and 100.75
      - `min` number — Minimum value (inclusive)
      - `max` number — Maximum value (inclusive)
    - `token_age_days` NumericRangeFilter — Filter for numeric values (floats) with optional min/max bounds. Use for prices, volumes, ratios, and other decimal values. - Values between -10.5 and 100.75
      - `min` number — Minimum value (inclusive)
      - `max` number — Maximum value (inclusive)
    - `market_cap_usd` NumericRangeFilter — Filter for numeric values (floats) with optional min/max bounds. Use for prices, volumes, ratios, and other decimal values. - Values between -10.5 and 100.75
      - `min` number — Minimum value (inclusive)
      - `max` number — Maximum value (inclusive)
    - `token_address` union — Token address filter
      - string
      - string[]
    - `token_symbol` union — Token symbol filter
      - string
      - string[]
    - `token_sectors` string[] — Token sectors filter
  - `pagination` PaginationRequest — Pagination parameters for API requests.
    - `page` integer — Page number (1-based)
    - `per_page` integer — Number of records per page (max 1000)
  - `order_by` SortOrderSmartMoneyHoldingsSortField[] — Custom sort order to override the endpoint's default ordering. Examples: - [{"field": "value_usd", "direction": "DESC"}] - Sort by value USD descending - [{"field": "holders_count", "direction": "ASC"}] - Sort by number of holders ascending - [{"field": "value_usd", "direction": "DESC"}, {"field": "holders_count", "direction": "ASC"}] - Sort by value USD descending, then number of holders ascending
    - `field` 'chain' | 'token_address' | 'token_symbol' | 'value_usd' | 'balance_24h_percent_change' | 'holders_count' | 'share_of_holdings_percent' | 'token_age_days' | 'market_cap_usd', required — Enum for sortable fields in smart money holdings.
    - `direction` 'ASC' | 'DESC', required — Enum for sort directions.

## Response `200`

Smart money holdings data

- SmartMoneyHoldingsResponse — Response model for smart money holdings endpoint. Contains the filtered smart money holdings data with metadata.
  - `data` SmartMoneyHolding[], required — List of smart money holding records
    - `chain` 'all' | 'arbitrum' | 'avalanche' | 'base' | 'bnb' | 'ethereum' | 'hyperevm' | 'iotaevm' | 'linea' | 'mantle' | 'monad' | 'optimism' | 'plasma' | 'polygon' | 'robinhood' | 'sei' | 'solana' | 'sonic', required — Chains supported in smart money analysis.
    - `token_address` string, required — Address of token
    - `token_symbol` string, required — Token symbol
    - `token_sectors` string[], required — Token sectors
    - `value_usd` number — Value of token held by Smart Money.
    - `balance_24h_percent_change` number — Balance change of Smart Money for token during the last 24 hours
    - `holders_count` integer, required — Number of Smart Money holders of token.
    - `share_of_holdings_percent` number — Share of Smart Money total USD balance.
    - `token_age_days` integer, required — Number of days since token was deployed.
    - `market_cap_usd` number — Market cap of token.
  - `pagination` PaginationInfo, required — Pagination information for API responses.
    - `page` integer — Current page number
    - `per_page` integer — Number of records per page
    - `is_last_page` boolean — Whether this is the last page

## Other responses

- `400` — Bad Request - Invalid request parameters or malformed request
- `401` — Authentication error - No API key found in request
- `402` — Payment Required - This endpoint supports pay-per-request via x402 and MPP. x402 responses advertise payment options in `Payment-Required`; MPP responses advertise a fresh `WWW-Authenticate: Payment ...` challenge. Successful MPP responses may include `Payment-Receipt`.
- `403` — Forbidden - User does not have required subscription tier or has exceeded credit limit
- `404` — Not Found - The requested resource was not found
- `422` — Validation error - Invalid request parameters
- `429` — Too Many Requests - Rate limit exceeded
- `500` — Internal Server Error - An unexpected error occurred

---

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