---
title: "Top predicted tokens per analyst — win-rate aggregates over last 90 days (MCP-compatible)"
method: GET
path: "/api/public/analyst-top-tokens"
---

# Top predicted tokens per analyst — win-rate aggregates over last 90 days (MCP-compatible)

`GET /api/public/analyst-top-tokens`

## Request

- Base URL: `https://cryptowhaleinsights.com`
- URL: `https://cryptowhaleinsights.com/api/public/analyst-top-tokens`
- Auth: none declared

Returns the top 5 tokens (by win rate) attributed to a single analyst over the last 90 days. Only tokens with ≥ 3 resolved (win/loss) signals are included — this ensures the win-rate figures are statistically meaningful and not based on a single lucky trade. Use ?analystId= with one of: chain_hawk (ChainHawk, BTC & macro on-chain), whale_watch (WhaleWatch, multi-chain whale moves), alpha_scout (AlphaScout, emerging tokens), defi_pulse (DeFiPulse, DeFi/stables/bridges), quant_edge (QuantEdge, signal risk/convergence), rate_hawk (RateHawk, funding rates & derivatives), flow_tracer (FlowTracer, stablecoin & capital flows), unlock_guard (UnlockGuard, token unlock risk), sentiment_edge (SentimentEdge, social sentiment extremes), narrative_pulse (NarrativePulse, sector rotation & narratives). Each token entry returns: token (symbol string), total (all signals in window including pending), resolved (signals with a win/loss outcome), wins (count of winning signals), winRate (integer 0–100, percentage of resolved that were wins). Omitting analystId returns an empty envelope with a hint. Returns 404 for unknown analystId values. No raw signal detail is exposed — only the aggregate win-rate summary per token. Useful for AI agents answering 'which analyst is best for ETH?' or 'which tokens does chain_hawk predict most accurately?'. No authentication required. 60 requests/min rate limit. No in-process cache — queries the live DB each call (fast, indexed).

## Query parameters

- `analystId` 'chain_hawk' | 'whale_watch' | 'alpha_scout' | 'defi_pulse' | 'quant_edge' | 'rate_hawk' | 'flow_tracer' | 'unlock_guard' | 'sentiment_edge' | 'narrative_pulse'

## Response `200`

Top-token win-rate aggregates for the requested analyst (last 90 days).

- object
  - `analystId` string, nullable: Echoed analyst slug, e.g. chain_hawk. Null when analystId param was omitted.
  - `tokens` object[]: Top 5 tokens by win rate for this analyst (last 90 days, min 3 resolved signals each). Empty when no qualifying tokens exist or analystId was omitted.
    - `token` string: Token symbol, e.g. BTC, ETH, SOL.
    - `total` integer: Total signals in the last 90 days (including pending/unresolved).
    - `resolved` integer: Number of signals with a win or loss outcome determined.
    - `wins` integer: Number of winning resolved signals.
    - `winRate` integer, nullable: Win rate as an integer percentage (0–100). Null when resolved=0.
  - `hint` string, nullable: Guidance string returned when analystId was omitted; null otherwise.
  - `updatedAt` string, date-time
  - `attribution` Attribution: Source attribution returned on every response. Cite CryptoWhaleInsights when using this data.
    - `source` string
    - `url` string, uri
    - `poweredBy` string
    - `usagePolicy` string, uri

## Other responses

- `429`: Rate limit exceeded (120 req/min per endpoint per IP). Includes a Retry-After header. See https://cryptowhaleinsights.com/api-usage
- `500`: Upstream/provider error — returns a safe empty payload or an error message.

---

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