Contents
Taker flow (CVD) and volume profile
Taker flow of one coin: buy / sell volume of the aggressor per bar, delta and cumulative volume delta (CVD), summed over the perpetual venues, per venue (Binance spot separately where collected), by print size (under $10k, $10k–100k, $100k–1M, $1M and more; a print = the fills of one taker order) and for tracked Hyperliquid whales (USD they bought minus sold, either side of the trade), plus the volume profile (taker volume by price, point of control, 70 % value area) of the window.
/api/v1/flow/{coin}Every keyDescription
Free keys: BTC, ETH and HYPE, last 24 hours. Coins without a Hyperliquid market answer 404. Licence review: byVenue shows Hyperliquid only; total, bySize and the profile still sum every venue, in bars of at least 5 minutes (venue=hyperliquid keeps 1-minute bars); venue=binance|bybit answers 403 source_restricted.
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 · pathrequired | Coin name, e.g. BTC (case-insensitive). |
venuestring | hyperliquid | binance | bybit (optional).one of hyperliquid, binance, bybit |
hoursinteger | Window in hours, default 24 (free key 1), clamped to the plan history (Pro / API Dev 168, Desk / API Pro 9600).1–9600 · default 24 |
stepMinutesinteger | Bar size 1 | 5 | 15 | 60 | 240 | 1440 minutes (default: ≤ 360 bars; windows older than 8 days use hourly bars). At most 1,440 bars per call: a finer size is coarsened to the next one that fits (e.g. stepMinutes=1 over 48 hours → 5-minute bars); the answer names the size used in stepMinutes.one of 1, 5, 15, 60, 240, 1440 |
Response fields
Every success is { data, meta }; these are the fields of data. meta is the same on every endpoint.
| Field | Description |
|---|---|
coinstring | Coin name as on Hyperliquid (BTC, kPEPE, HIP-3 names like xyz:TSLA). |
stepMinutesinteger | Bar / column width in minutes. |
fromstring (ISO 8601) | Start of the window (ISO 8601 UTC) or the sending side of a movement. |
tostring (ISO 8601) | End of the window (ISO 8601 UTC) or the receiving side of a movement. |
total[]array of objects | Perpetual venues summed. Can have gaps: bars without collected data are left out (never sent as 0). |
total[].tstring (ISO 8601) | Bar start. |
total[].buyUsdnumber | Taker buys (USD). |
total[].sellUsdnumber | Taker sells (USD). |
total[].deltanumber | Buys minus sells (USD). |
total[].cvdnumber | Cumulative delta since the window start (USD). |
byVenue[]array of objects | Split per venue. |
byVenue[].venue"hyperliquid" | "binance" | "bybit" | Venue of the order-flow data. |
byVenue[].market"perp" | "spot" | perp = perpetual futures, spot = spot market. |
byVenue[].points[]array of objects | Bars of the series, oldest first. |
byVenue[].points[].tstring (ISO 8601) | Bar start. |
byVenue[].points[].buyUsdnumber | Taker buys (USD). |
byVenue[].points[].sellUsdnumber | Taker sells (USD). |
byVenue[].points[].deltanumber | Buys minus sells (USD). |
byVenue[].points[].cvdnumber | Cumulative delta since the window start (USD). |
byVenue[].buyUsdnumber | Taker buys (USD). |
byVenue[].sellUsdnumber | Taker sells (USD). |
bySize[]array of objects | Perpetual venues summed, per print size. |
bySize[].bucket"lt10k" | "10k_100k" | "100k_1m" | "gt1m" | Print size: lt10k, 10k_100k, 100k_1m, gt1m. |
bySize[].labelstring | Display label: a public label with a cited source, else the self-chosen leaderboard name (unverified). |
bySize[].points[]array of objects | Bars of the series, oldest first. Can have gaps like total. |
bySize[].points[].tstring (ISO 8601) | Start of the bucket or bar (ISO 8601 UTC). |
bySize[].points[].deltanumber | Buys minus sells (USD). |
bySize[].points[].cvdnumber | Cumulative delta (USD). |
bySize[].buyUsdnumber | Taker buys (USD). |
bySize[].sellUsdnumber | Taker sells (USD). |
whalesobject · nullable | Tracked Hyperliquid whales (either side of the trade). |
whales.points[]array of objects | Bars of the series, oldest first. |
whales.points[].tstring (ISO 8601) | Bar start. |
whales.points[].buyUsdnumber | Taker buys (USD). |
whales.points[].sellUsdnumber | Taker sells (USD). |
whales.points[].deltanumber | Buys minus sells (USD). |
whales.points[].cvdnumber | Cumulative delta since the window start (USD). |
whales.buyUsdnumber | Bought by tracked whales (USD). |
whales.sellUsdnumber | Sold by tracked whales (USD). |
totalsobject | Sums over the rows of this object. |
totals.buyUsdnumber | Taker buys (USD). |
totals.sellUsdnumber | Taker sells (USD). |
totals.deltanumber | Buys minus sells (USD). |
totals.tradesinteger | Prints. |
updatedAtstring (ISO 8601) · nullable | Newest data time of this item (ISO 8601 UTC). |
profileobject | - |
profile.coinstring | Coin name as on Hyperliquid (BTC, kPEPE, HIP-3 names like xyz:TSLA). |
profile.fromstring (ISO 8601) | Start of the window (ISO 8601 UTC) or the sending side of a movement. |
profile.tostring (ISO 8601) | End of the window (ISO 8601 UTC) or the receiving side of a movement. |
profile.stepnumber | Price step of the levels. |
profile.levels[]array of objects | Price levels, ascending. |
profile.levels[].pxnumber | Lower edge. |
profile.levels[].buyUsdnumber | Taker buys (USD). |
profile.levels[].sellUsdnumber | Taker sells (USD). |
profile.totalUsdnumber | Volume (USD). |
profile.pocnumber · nullable | Point of control (level with the most volume). |
profile.valueAreaobject · nullable | Smallest range around the POC with 70 % of the volume. |
profile.valueArea.lonumber | Lower edge. |
profile.valueArea.hinumber | Upper edge. |
profile.venues[]array of "hyperliquid" | "binance" | "bybit" | Venues covered by this view. |
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 - 404
not_foundNot found - 429
rate_limitedPer-minute limit reachedretry - 429
daily_limit_exceededDaily limit reachedretry - 429
stream_limitToo many open streamsretry - 500
internal_errorInternal errorretry
Methodology
- CVD (cumulative volume delta) (how it is computed and its limits)
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.