Contents
Whale position changes
Whale position changes (open, close, increase, decrease, flip, liquidated), newest first.
Description
Use since as a polling cursor. Stored history: open / close / flip / liquidated 400 days, increase / decrease 90 days.
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
| Parameter | Description |
|---|---|
coinstring | Coin name as on Hyperliquid (BTC, ETH, kPEPE, HIP-3 names like xyz:TSLA); case-insensitive. |
minUsdnumber | Minimum absolute USD change, default 0.≥ 0 · default 0 |
sincestring | ISO 8601 time; only events after it (optional). Clamped to the plan history (free key 30 days, keyless 24 h): older events are never returned, also not via cursor.ISO 8601, e.g. 2026-10-23T12:00:00Z |
limitinteger | Number of items, default 50, clamped to 1–500.1–500 · default 50 |
cursorstring | Next 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. |
fieldsstring | Comma-separated fields of every item to return, e.g. ts,address,coin,kind,usdDelta (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. |
formatstring | json (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.
| Field | Description |
|---|---|
[].idinteger | Stable id of the item; on paginated feeds the order key together with ts. |
[].tsstring (ISO 8601) | Time of the event (ISO 8601 UTC). |
[].addressstring | Hyperliquid address, lowercase. |
[].labelstring · nullable | Display label: a public label with a cited source, else the self-chosen leaderboard name (unverified). |
[].coinstring | Coin name as on Hyperliquid (BTC, kPEPE, HIP-3 names like xyz:TSLA). |
[].kind"open" | "close" | "increase" | "decrease" | "flip" | "liquidated" | Kind of whale position change (liquidated = confirmed by the wallet’s Hyperliquid liquidation fills). |
[].side"long" | "short" · nullable | Position side (long / short); for trades and orders the side named in the description. |
[].sizeDeltanumber · nullable | Change in coins. |
[].usdDeltanumber · nullable | Change (USD). |
[].pricenumber · nullable | Price in the quote currency of the venue (USD / USDT / USDC). |
[].dataany | Kind-specific details (JSON) or null. |
Errors
- 400
invalid_paramInvalid parameter - 401
unauthorizedMissing or invalid API key - 403
plan_requiredPlan does not include this - 403
scope_requiredKey not scoped for this API - 403
ip_not_allowedAddress not on the IP allowlist of the key - 403
origin_not_allowedKey used from a browser origin it does not allow - 403
source_restrictedExchange data not redistributed - 403
https_requiredhttps required - 429
rate_limitedPer-minute limit reachedretry - 429
daily_limit_exceededDaily limit reachedretry - 429
stream_limitToo many open streamsretry - 500
internal_errorInternal errorretry
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.