---
title: "Smart Money KOL Holdings"
method: GET
path: "/gateway/v1/smart-money/kol/holdings"
tags: ["Smart Money"]
---

# Smart Money KOL Holdings

`GET /gateway/v1/smart-money/kol/holdings`

## Request

- Base URL: `https://api.asksurf.ai`
- URL: `https://api.asksurf.ai/gateway/v1/smart-money/kol/holdings`
- Auth: HTTP bearer

Returns KOLs' current portfolios in USD: total and DeFi value, the largest token holdings with their share of the total (stablecoins combined as `STABLES`), and open perp positions by notional. USD values only, never token amounts.

Pass up to 50 X handles in `handles` (comma-separated, `@` optional, case-insensitive); a former handle is answered under the KOL's current one. `min_usd` (default 500) drops small holdings; `limit` caps holdings per KOL.

**Privacy:** responses never include wallet addresses or transaction identifiers. Per-KOL amounts are rounded to 2 significant figures, and per-token KOL lists carry names only.

**Data refresh:** hourly

## Query parameters

- `handles` string, required: Comma-separated X/Twitter handles (with or without @, case-insensitive, at most 50)
- `min_usd` number, double: Minimum USD value of a holding or perp position
- `limit` integer: Token holdings (and perp positions) per KOL

## Response `200`

OK

- SmartMoneyKOLHoldingsResponse
  - `$schema` string, uri: A URL to the JSON Schema for this object.
  - `data` SmartMoneyKOLHoldings[], nullable, required: One entry per requested handle, in request order
    - `as_of` integer, nullable, required: When the holdings were read (Unix seconds, truncated to the hour); null when unknown
    - `defi_usd` number, double, nullable, required: Value in DeFi positions in USD, rounded to 2 significant figures; null when unknown
    - `handle` string, required: Current X/Twitter handle
    - `holdings` SmartMoneyKOLHolding[], nullable, required: Token holdings, largest first
      - `chain` string: Chain (canonical long-form)
      - `share_pct` integer: Share of total_usd in whole percent; absent when total_usd is unknown
      - `symbol` string: Token symbol; STABLES for all stablecoins combined
      - `token_address` string: Token contract address; absent when unresolved or for STABLES
      - `usd` number, double, required: Value in USD, rounded to 2 significant figures
    - `perp_positions` SmartMoneyKOLPerpPosition[], nullable, required: Open perp positions, largest first
      - `notional_usd` number, double, required: Position notional in USD, rounded to 2 significant figures
      - `side` string: long or short
      - `symbol` string: Coin
    - `total_usd` number, double, nullable, required: Portfolio value in USD, rounded to 2 significant figures; null when unknown
    - `tracked` boolean, required: Whether the KOL's trading is tracked
  - `meta` SmartMoneyKOLMeta, required
    - `as_of` integer: Latest sync time among the requested KOLs (Unix seconds, truncated to the hour); absent when none is tracked
    - `cached` boolean, required: Whether this response was served from cache
    - `credits_used` integer, required: Credits deducted for this request

## Other responses

- `default`: Error

## Changes

- **2026-10-27** `80609ba16f51`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/asksurf/apis/asksurf-public-rest-api/changes/gateway/v1/smart-money/kol/holdings/get.md)

---

[API](https://skmtc.dev/asksurf/apis/asksurf-public-rest-api.md) - [All operations](https://skmtc.dev/asksurf/apis/asksurf-public-rest-api/llms.txt) - [OpenAPI document](https://skmtc.dev/asksurf/apis/asksurf-public-rest-api/revisions/91774fdd5302?raw)
