Contents

Trader leaderboard

Trader leaderboard from the official Hyperliquid leaderboard (PnL, ROI and volume of day / week / month / all-time; PnL is the change of the account with its sub-accounts and spot balances, so deposits and withdrawals do not count) plus what we observed: win rate and holding time from our position polls, max drawdown and Sharpe from Hyperliquid portfolio history (top traders), style tags and cohorts.

GET/api/v1/tradersEvery keyPaginated

Description

Only single trading accounts are listed (no vaults, dust or accounts without trading; ROI / Sharpe / drawdown sorts need more, rules says what applies). Names are self-chosen unless labelSource is a URL. Free keys: the top 100 of any sort with every column (full: false: no search, style filter or paging).

Who can call it

Available with every key and keyless (X-Blockmetric-Access: public). Keys of Free accounts get free-tier data (real-time feeds, 30 days of history, heatmap over time for every coin over the last 24 hours, liquidation levels now for every coin, the same as the free web plan); Pro and Desk keys the data of their plan; API Dev / API Pro raise the limits.

No key
24 h
Free
30 days
Pro
365 days
Desk
1095 days
API Dev
365 days
API Pro
1095 days

History window per plan. Limits: Authentication & limits.

Parameters

Parameters of /traders
ParameterDescription
sortstringpnl_day | pnl_week | pnl_month (default) | pnl_all | roi_week | roi_month | roi_all | account_value | vlm_month | sharpe | drawdown (smallest first).one of pnl_day, pnl_week, pnl_month, pnl_all, roi_week, roi_month, roi_all, account_value, vlm_month, sharpe, drawdown · default pnl_month
searchstringAddress prefix (0x…) or part of a displayed name (paid plans).
stylestringscalper | swing | position | high_turnover | high_leverage | mostly_long | mostly_short (paid plans).one of scalper, swing, position, high_turnover, high_leverage, mostly_long, mostly_short
minAccountValuenumberMinimum account value in USD (paid plans).≥ 0 · default 0
limitintegerNumber of items, default 50, clamped to 1–500.1–500 · default 50
cursorstringNext page: the value of meta.nextCursor from the previous response (keep the other parameters unchanged). Cursors are signed: an edited cursor answers 400; paging stops at the plan history.
fieldsstringComma-separated fields of every data.rows item to return, e.g. rank,address,pnl,roi (case-insensitive). All other fields are left out, so large lists get much smaller; an unknown name answers 400 with the list of fields. Default: every field.
formatstringjson (default: the { data, meta } envelope) | csv (the rows with a header line; nested values as JSON text) | ndjson (one JSON object per row and line). csv and ndjson carry the meta block in headers: Link rel="next" and X-Blockmetric-Next-Cursor (next page), X-Blockmetric-Next-After (forward polling), X-Blockmetric-Updated-At, X-Blockmetric-Warnings, X-Blockmetric-License. Errors stay JSON.one of json, csv, ndjson · default json

Response fields

Every success is { data, meta }; these are the fields of data. meta is the same on every endpoint.

Response fields of /traders
FieldDescription
rows[]array of objectsThe rows of this view.
rows[].rankintegerRank in the current sort.
rows[].addressstringHyperliquid address, lowercase.
rows[].labelstring · nullablePublic label, else the self-chosen leaderboard name (unverified).
rows[].labelSourcestring · nullableSource URL of a public label, or "hyperliquid-leaderboard".
rows[].accountValuenumber · nullableAccount value (USD).
rows[].pnlobjectHyperliquid leaderboard PnL per window (USD): the account with its sub-accounts and spot balances, deposits / withdrawals not counted.
rows[].pnl.daynumber · nullableLast 24 hours.
rows[].pnl.weeknumber · nullableLast 7 days.
rows[].pnl.monthnumber · nullableLast 30 days.
rows[].pnl.allTimenumber · nullableAll time.
rows[].roiobjectHyperliquid leaderboard ROI per window (fraction).
rows[].roi.daynumber · nullableLast 24 hours.
rows[].roi.weeknumber · nullableLast 7 days.
rows[].roi.monthnumber · nullableLast 30 days.
rows[].roi.allTimenumber · nullableAll time.
rows[].vlmobjectTraded volume per window (USD).
rows[].vlm.daynumber · nullableLast 24 hours.
rows[].vlm.weeknumber · nullableLast 7 days.
rows[].vlm.monthnumber · nullableLast 30 days.
rows[].vlm.allTimenumber · nullableAll time.
rows[].observedobjectFrom the opens and closes our position polls saw (empty for free keys).
rows[].observed.closesintegerPosition closes we observed.
rows[].observed.winsintegerOf those, closes with a profit.
rows[].observed.winRatenumber · nullablewins / closes, from 10 closes on.
rows[].observed.avgHoldMinnumber · nullableAverage holding time in minutes (open → close pairs), from 3 pairs on.
rows[].observed.holdsintegerOpen→close pairs seen.
rows[].observed.sincestring (ISO 8601) · nullableFirst observed event.
rows[].riskobject · nullableRisk figures from the Hyperliquid portfolio history (top traders), else null.
rows[].risk.maxDrawdownUsdnumber · nullableLargest peak-to-trough fall of the account value in USD.
rows[].risk.maxDrawdownPctnumber · nullableFraction of the account value at the peak (0.17 = 17 %). Deprecated: use maxDrawdown (same value).
rows[].risk.maxDrawdownnumber · nullableLargest fall as a fraction of the account value at the peak (0.17 = 17 %).
rows[].risk.sharpenumber · nullableAnnualised mean / standard deviation of the 30-day portfolio returns, no risk-free rate.
rows[].risk.fetchedAtstring (ISO 8601) · nullableWhen the portfolio history was read.
rows[].bookobject · nullableOpen tracked positions of the wallet, else null.
rows[].book.positionsUsdnumberOpen tracked notional (USD).
rows[].book.positionsintegerNumber of positions.
rows[].book.longSharenumber · nullableLong notional / total.
rows[].book.avgLeveragenumber · nullableNotional-weighted.
rows[].styles[]array of string (enum)Style tags from observed behaviour (scalper, swing, position, high_turnover, high_leverage, mostly_long, mostly_short).
rows[].sizeCohort"shrimp" | "fish" | "dolphin" | "shark" | "whale" · nullableSize cohort by account value: shrimp < $10K, fish, dolphin, shark, whale ≥ $10M.
rows[].pnlCohort"top" | "profitable" | "flat" | "losing" | "rekt" · nullablePnL cohort by all-time PnL: top ≥ +$1M, profitable, flat, losing, rekt ≤ −$1M.
rows[].updatedAtstring (ISO 8601)Leaderboard row time.
totalintegerRows matching the filters.
updatedAtstring (ISO 8601) · nullableNewest leaderboard run.
riskUpdatedAtstring (ISO 8601) · nullableNewest portfolio read (drawdown, Sharpe).
fullbooleanfalse = free key: the top 100 of the chosen sort, every column, no search, style filter or paging.
rulesstringWho the chosen sort lists.
methodstringHow the figures are computed, in plain words.

Errors

Methodology

Code snippets in these docs are licensed under MIT-0: copy them into your own code without attribution. The SDKs, CLI and MCP server will be, once published, Apache-2.0; the name Blockmetric is not licensed (forks must be renamed). Data from the API is governed by the API terms; third-party exchange data by the exchange’s terms.

LiveHyperliquid markets 8sOperationalHyperliquid positions & whales 0sOperationalLiquidation heatmap & levels 5sOperationalLighter markets & liquidations 2sOperationalLighter positions & heatmap 4sOperationalLighter RH positions & heatmap 2sOperationalBinance markets 19sOperationalBybit markets 57sOperationalBinance liquidations 30sOperationalBybit liquidations 30sOperationaldYdX positions & heatmap 6sOperationalGMX positions & heatmap 0sOperationalLong/short & open interest history 43sOperationalOrder books & trade flow 3sOperationalOn-chain transfers 4sOperationalSecurity monitor 26sOperationalBlockmetric Sentiment 12mOperationalOfficial news 1mOperationalAlert delivery 1sOperational10:09:18 UTCData: Blockmetric Research · Binance · Bybit