/api/hl/whales
GETAvailable

Hyperliquid whale position list

Hyperliquid whale position list

GET/api/hl/whales

Request

Query parameters

NameTypeRequiredDefaultAllowed valuesDescription
sortstringOptionalvaluevalue, pnl, pnl_abs, leverage, accountSort key.
dirstringOptionaldescasc, descSort direction.
limitintegerOptional50≤ 200Number of rows to return. Example: 50
coinstringOptional——Filter by coin.

Example request

curl -s "https://www.coinboss.com/api/hl/whales?limit=50"

Response fields

The field table is generated from real responses, so it lists exactly what the endpoint returns. Paths use a[] for array items and {*} for objects keyed by a dynamic name such as a coin or an exchange.

FieldTypeUnitDescription
successboolean—true when the request succeeded. On failure the body is `{ success: false, code, error, request_id }`.
updatednumbermsWhen the data was last updated.
rowsarray—Result rows.
rows[]object—Result rows.
rows[].addressstring—On-chain address.
rows[].coinstring—Coin symbol, upper case (for example BTC).
rows[].sidestring—`long` / `short` or `buy` / `sell`.
rows[].szinumber—Signed position size in coins (negative = short).
rows[].entryPxnumberUSDAverage entry price.
rows[].positionValuenumberUSDPosition notional.
rows[].unrealizedPnlnumberUSDUnrealised profit and loss.
rows[].roenumberfractionUnrealised PnL divided by the margin of the position, as Hyperliquid reports it (0.13 = 13 %); null when it is zero or missing.
rows[].leveragenumber—Leverage of the position.
rows[].leverageTypestring—Margin mode of the position: `cross` or `isolated`.
rows[].marginUsednumberUSDMargin used by the position.
rows[].liquidationPxnumberUSDEstimated liquidation price.
rows[].fundingSinceOpennumberUSDCumulative funding since the position was opened, in Hyperliquid's sign convention (positive = paid, negative = received); null when not published.
rows[].openedAtnull—Timestamp.
rows[].accountValuenumberUSDAccount equity.
rows[].addrVolumenumberUSDCumulative notional of the address's large fills recorded since it has been tracked; not its full trading volume.
rows[].liqCountnumbercountLiquidations of the address on Hyperliquid recorded since it has been tracked.
rows[].snapshotTsnumbermsTime of the position snapshot.
rows[].labelsarray—Labels.
rows[].labels[]object—Labels.
rows[].labels[].labelstring—Label.
rows[].labels[].typestring—Type.

Generated 2026-11-11 23:00 UTC from 1 real responses.

Example response

/api/hl/whales?limit=50 · Real response captured 2026-11-13 03:58:41 UTC. Long arrays and maps are shortened for display: rows had 50 items; rows[].labels had 3 items.

  • {
    • "success": true,
    • "updated": 1794542321682,
    • "rows": [
      • { … 19 },
      • { … 19 }
      ]
    }

Details

Authentication
None. Public endpoint.
Rate limit
1200 requests per minute per IP
Server cache
30s
Edge micro-cache
10s
Update frequency
new addresses every 10 s; positions of the top 300 addresses every 5 min; labels daily; API cache 30 s
Window
latest position snapshot per address
Data sources
Positions of tracked Hyperliquid whale addresses: the pool is built from large fills seen by our own Hyperliquid node and positions are polled from the official info API; address labels come from the official leaderboard, hypurrscan and our own rules.
Exchange coverage
tracked whale pool (addresses that made a single fill >= 50,000 USD, were liquidated, or run a vault); not the whole network (about 1,750 addresses with open positions)
Pagination
limit (default 50, max 200); filter coin
Sorting
sort = value (default) | pnl | pnl_abs | leverage | account; dir = desc | asc
Units
USD; size in coin units
Timestamps
Unix epoch milliseconds (UTC) unless the field description says otherwise
Response format
json
Stability
Stable

Live status

AvailableChecked 2026-11-13 03:58:41 UTCHTTP 20013 msSchema matchesNewest data point 0s old

Availability, last 30 days

100% of 409 checks passed

Errors

Failed calls share one shape on every endpoint. The full list is on the errors page. Errors and rate limits →

CodeHTTPMeaningWhat to do
INVALID_PARAM400A required parameter is missing or a value is not accepted. `param` names the parameter when it is known.Do not retry unchanged; fix the request.
UNAUTHORIZED401The `CB-API-KEY` header was sent but the key is unknown or revoked. Public data needs no key — drop the header or use a valid key.Do not retry unchanged.
FORBIDDEN403The route is not part of the public API (internal or account-only).Do not retry.
NOT_FOUND404Unknown route, or the requested coin / exchange / fund does not exist.Do not retry; check the path and identifiers against the catalog.
RATE_LIMITED429More requests than the per-minute limit. `Retry-After` gives the seconds to wait.Wait for `Retry-After`, then retry with backoff.
INTERNAL500Unexpected server error. The message is generic by design; quote `request_id` when reporting it.Retry once after a few seconds; report it with the request id if it persists.
UPSTREAM_FAILED503The data source behind this endpoint did not answer in time. No stale or substitute numbers are returned in its place.Retry with backoff; check the status page.
UNAVAILABLE501 / 503The dataset is temporarily not ready (cache warming) or the endpoint has no lawful public source yet.Retry later; the catalog marks endpoints that are unavailable by design.
REQUEST_FAILED200Some older endpoints answer HTTP 200 with `success: false`. Always check `success`, not only the HTTP status.Depends on the message; treat as a failed request.

Try it

GET/api/hl/whalesAvailable
Parameters

string · default value — Sort key.

string · default desc — Sort direction.

integer · default 50 · max 200 — Number of rows to return.

string — Filter by coin.

Request URLhttps://www.coinboss.com/api/hl/whales?limit=50
Choose an endpoint and press “Send request”. The response, headers and timing will appear here.