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

# Smart Money KOL Coverage

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

## Request

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

Says whether KOLs are tracked and scored: number of tracked wallets (shown up to 10), chains, latest trade day, last sync, sync tier, boards, and why a tracked KOL is not scored (`no_tracked_wallets`, `inactive_90d`, `insufficient_sample`).

Pass up to 50 X handles in `handles` (comma-separated, `@` optional, case-insensitive); a former handle is answered under the KOL's current one. Returns one entry per requested handle in request order; a handle that is not tracked gets `tracked: false` and nulls, never a 404.

**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)

## Response `200`

OK

- SmartMoneyKOLCoverageResponse
  - `$schema` string, uri: A URL to the JSON Schema for this object.
  - `data` SmartMoneyKOLCoverage[], nullable, required: One entry per requested handle, in request order
    - `boards` string[], nullable, required: Boards the KOL is on (composite, smart, bigv); null when not tracked
    - `chains` string[], nullable, required: Chains the tracked wallets are active on; null when not tracked
    - `handle` string, required: Current X/Twitter handle (a former handle in the request is answered with the current one)
    - `last_activity_at` integer, nullable, required: Day of the latest tracked trade (Unix seconds, UTC day); null when unknown
    - `low_confidence_wallets` integer, nullable, required: Tracked wallets attributed with low confidence, shown up to 10; null when not tracked
    - `not_scored_reason` string, nullable, required: Why a tracked KOL is not scored: no_tracked_wallets, inactive_90d, insufficient_sample; null otherwise
    - `scored` boolean, nullable, required: Whether the KOL has scores in the current run; null when not tracked
    - `synced_at` integer, nullable, required: When the KOL's data was last synced (Unix seconds, truncated to the hour); null when unknown
    - `tier` string, nullable, required: Sync tier: hot, warm or cold; null when not tracked
    - `tracked` boolean, required: Whether the KOL's trading is tracked
    - `wallets` integer, nullable, required: Tracked wallets, shown up to 10 (see wallets_capped); null when not tracked
    - `wallets_capped` boolean, required: True when the KOL has more than 10 tracked wallets
  - `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/coverage/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)
