GET /wallets if you need to render the empty-state pool too.
Query parameters
string
default:"7d,14d,30d,60d,90d,180d"
Comma-separated subset of periods to include. Defaults to all six. Useful when you only render a single time window — e.g.
?periods=30d returns ~1/6 the payload.Response shape
Per-wallet entry
Per-period score blob
Examples
Full snapshot (default)
200 OK, abridged):
Subset of periods
wallets[].periods object. Use this when your UI only renders a single window — payload drops proportionally.
Performance
All reads come from the precomputed score cache.
Notes
scored_anyvsscoredon the leaderboard. A wallet counts asscored_anyhere if it has a score for at least one of the requested periods. The leaderboard’sscoredis per-requested-period.- Per-period
null. A wallet may be scored for30dbutnullfor180d(heavy whales often time out on long windows). Read each period’s value independently. erroris wallet-global. A singleerrorobject per wallet covers the most recent refresh failure across any period. Use it to surface “X wallets retrying” in your UI.- No pagination. This endpoint always returns the full pool. Use the leaderboard endpoint with
limit/offsetif you need server-side paging — that’s the trade-off vs the one-shot snapshot. - Race-safe with adds. Wallets you add via
POST /v2/copy-pnl/walletsshow up here immediately, withnullperiods until the on-add freshening finishes (~30 s).

