---
title: "Get daily whale score history — top tracked whale wallets ranked by composite score (win rate + avg return) over up to 90 days"
method: GET
path: "/api/public/whale-score-history"
---

# Get daily whale score history — top tracked whale wallets ranked by composite score (win rate + avg return) over up to 90 days

`GET /api/public/whale-score-history`

## Request

- Base URL: `https://cryptowhaleinsights.com`
- URL: `https://cryptowhaleinsights.com/api/public/whale-score-history`
- Auth: none declared

Daily historical composite scores for tracked whale wallets. One row per wallet per day: wallet address, chain, label, composite score (0-100), win rate, average return %, and sample count. Only wallets with ≥5 resolved signals receive a score (honest, never fabricated). Filter by ?chain= for a single chain. Useful for tracking smart-money wallet performance trends. DB-backed, 5-min cache. Powered by whale_score_daily table (365d retention, permanent monthly archive).

## Query parameters

- `days` integer
- `chain` string

## Response `200`

Daily whale wallet composite score history.

- object
  - `days` number
  - `chain` string, nullable: Chain filter applied (null = all chains).
  - `history` object[]
    - `date` string, date: YYYY-MM-DD snapshot date.
    - `walletAddress` string: Blockchain wallet address.
    - `chain` string, nullable: Blockchain chain (ETH, BTC, SOL, BSC, etc.).
    - `walletLabel` string, nullable: Human-readable wallet label.
    - `score` number: Composite whale score (0-100, requires ≥5 resolved signals).
    - `winRate` number, nullable: Win rate as a fraction (0.71 = 71%). Null when < 5 samples.
    - `avgReturn` number, nullable: Average return % across resolved signals. Null when < 5 samples.
    - `sampleCount` integer: Number of resolved signals used for score calculation.
  - `total` number
  - `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)
