---
title: "Smart Money Token Calls"
method: GET
path: "/gateway/v1/smart-money/token/calls"
tags: ["Smart Money"]
---

# Smart Money Token Calls

`GET /gateway/v1/smart-money/token/calls`

## Request

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

Ranks tokens by how many tracked KOLs called them bullish (on X, or in a comment on their own FOMO trade), and checks the calls against their positions: how many callers held the token when calling, who called first, how fast others followed, and the net flow of all tracked KOLs on the token.

`time_range` is `7d`, `30d` or `120d`. Major assets are excluded unless `include_majors=true`.

**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:** daily

## Query parameters

- `time_range` '7d' | '30d' | '120d': Window to count calls over
- `include_majors` boolean: Include major assets (BTC, ETH, SOL, ...)
- `chain` 'solana' | 'ethereum' | 'base' | 'bsc' | 'arbitrum' | 'robinhood' | 'hyperevm' | 'monad' | 'arc' | 'polygon' | 'avalanche' | 'optimism' | 'worldchain' | 'ink' | 'xlayer' | 'cronos' | 'celo' | 'unichain' | 'berachain' | 'katana' | 'flare' | 'ronin' | 'linea' | 'plasma' | 'mantle' | 'abstract' | 'zksync' | 'sonic' | 'gnosis' | 'gravity' | 'hemi' | 'plume' | 'zora' | 'scroll' | 'soneium' | 'megaeth' | 'manta' | 'etherlink' | 'mode' | 'fuse' | 'citrea' | 'fraxtal' | 'taiko' | 'bob' | 'sophon' | 'xdc' | 'metis' | 'sei' | 'rootstock' | 'kaia' | 'zircuit' | 'zetachain' | 'lisk' | 'conflux' | 'morph' | 'apechain' | 'bitlayer' | 'core' | 'story' | 'stable' | 'tempo': Restrict to tokens on one chain (canonical long-form names)
- `limit` integer: Results per page
- `offset` integer: Pagination offset

## Response `200`

OK

- DataResponseSmartMoneyTokenCall
  - `$schema` string, uri: A URL to the JSON Schema for this object.
  - `data` SmartMoneyTokenCall[], nullable, required
    - `callers` SmartMoneyCaller[], nullable, required: Bullish callers, earliest first
      - `first_call_at` integer, required: First call time (Unix seconds)
      - `handle` string, required: Trader handle: an X handle without @, or fomo:<handle> for a trader known only from FOMO
      - `held_or_bought_after` boolean, required: Held the token at a call or bought within 72 hours after
      - `n_calls` integer, required: Bullish calls in the window
    - `category` string: Token category
    - `first_call_at` integer: First call time (Unix seconds)
    - `first_caller` string: Handle of the first caller
    - `is_major` boolean, required: Whether the token is a major asset (BTC, ETH, SOL, ...)
    - `last_call_at` integer: Last call time (Unix seconds)
    - `n_checked` integer, required: Callers whose positions could be checked
    - `n_first_48h` integer: Callers who joined within 48 hours of the first call
    - `n_held_at_call` integer, required: Callers holding the token when calling
    - `n_long_callers` integer, required: KOLs with bullish calls
    - `n_pool_buyers` integer: Tracked KOLs that bought the token in the window
    - `n_short_callers` integer, required: KOLs with bearish calls
    - `n_short_tweets` integer, required: Bearish call tweets
    - `n_tweets` integer, required: Bullish call tweets
    - `pool_net_flow_usd` number, double: Net spot flow of all tracked KOLs on the token in the window (2 significant figures)
    - `rank` integer, required: Rank within time_range (majors included)
    - `sample_tweets` SmartMoneySampleTweet[], nullable, required: Representative call tweets
      - `handle` string, required: Trader handle: an X handle without @, or fomo:<handle> for a trader known only from FOMO
      - `source` 'x' | 'fomo', required: Where the post was made: x or fomo
      - `tweet_id` string, required: Post ID: the tweet ID on X; on FOMO an opaque ID that links nowhere
      - `url` string, required: Tweet URL; empty for FOMO posts (they link nowhere)
      - `verdict` string: Position at call time: holding, bought_after, sold_before, opposite_position, no_position, out_of_window
      - `views` integer, required: Tweet views (0 for FOMO posts)
    - `shorters` SmartMoneyShorter[], nullable, required: Bearish callers
      - `handle` string, required: Trader handle: an X handle without @, or fomo:<handle> for a trader known only from FOMO
      - `n_calls` integer, required: Bearish calls in the window
    - `time_range` string, required: Window the calls are counted over
    - `token` SmartMoneyToken, required
      - `address` string: Token contract address; absent for perps and unresolved tokens
      - `chain` string: Chain (canonical long-form, e.g. solana, ethereum, base, bsc; hyperliquid for perps)
      - `is_stock` boolean: Whether the token tracks an equity
      - `name` string: Token name
      - `symbol` string: Token symbol
    - `token_age_days` number, double: Token age in days at the first call
    - `views` integer, required: Total views of the call tweets
  - `meta` OffsetMeta, required
    - `cached` boolean, required: Whether this response was served from cache
    - `credits_used` integer, required: Credits deducted for this request
    - `empty_reason` string: Hint explaining why the data array is empty, when applicable
    - `has_more` boolean: Whether more items may exist beyond this response. For offset-paged endpoints, continue with a larger offset. For time-series endpoints without offset/cursor controls, true means the requested time range hit an upstream cap; narrow from/to to continue. Omitted when exhaustion cannot be proven.
    - `limit` integer, required: Maximum number of items returned in this response
    - `offset` integer, required: Number of items skipped (pagination offset)
    - `total` integer: Total number of matching items (before pagination). Omitted when total is unknown.
    - `watermark` integer: Warehouse watermark (Unix seconds) this response was computed at, on warehouse-backed endpoints (e.g. Hyperliquid /trades/aggregate) — rows up to this time come from the warehouse, newer rows from the live tail. Omitted elsewhere.

## Other responses

- `default`: Error

## Changes

- **2026-11-04** `91774fdd5302`: 1 info
  - added the required property `data/items/sample_tweets/items/source` to the response with the `200` status
- **2026-10-23** `cd899b4049b6`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/asksurf/apis/asksurf-public-rest-api/changes/gateway/v1/smart-money/token/calls/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)
