Contents

Open interest added per price band

Where open interest was added and removed on the exchanges (Binance, Bybit; OKX while enabled), per price band: the "open interest added at this price" layer of the heatmap.

GET/api/v1/heatmap/{coin}/open-interestEvery key

Description

Built only from what the exchanges publish and our collector stores every minute (open interest and the exchange's own mark price, kept in 5-minute buckets for 35 days): for two consecutive 5-minute buckets of one exchange, the change of open interest in contracts, valued at the bucket's price (the middle of its high and low), goes into the price band of that price. addedUsd = the positive changes, removedUsd = the negative ones, netUsd = added minus removed, steps = 5-minute steps with a change. No leverage is assumed and no liquidation price is estimated: this is not a position map. Limits: only the net change per 5 minutes is visible (openings and closings inside one step offset each other); a new contract always has a long and a short side, so added open interest does not say who bought; a step whose price range crosses a band edge counts in the band of its middle price (spanningSteps); a gap in our collection is never bridged; Binance open interest of coins outside the top 60 is read in rotation, so a change can land a few minutes late. Licence review: venue=binance / bybit answers 403 source_restricted; venue=all (default) publishes the sum over the exchanges per band where at least two withheld exchanges contributed to it (otherwise the band keeps its steps and venues and has null amounts, withheld: true), byVenue lists only exchanges that are not withheld, and totals add up the published bands. Same coins per plan as /heatmap/{coin} (free key: BTC, ETH and HYPE).

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 /heatmap/{coin}/open-interest
ParameterDescription
coinstring · pathrequiredCoin name as on Hyperliquid, e.g. BTC (case-insensitive). Exchange listings are matched to it (kPEPE = 1000PEPE).
hoursintegerWindow in hours, default 24, clamped to 1 to 840 (35 days of 5-minute open interest) and to the plan's heatmap history (free key and keyless the last 24 hours, Pro / API Dev 1 year, Desk / API Pro 3 years; meta.warnings says so).1–840 · default 24
endstringEnd of the window (ISO 8601, default now), rounded up to the end of its 5-minute step (from / to say which steps were read). Clamped to now and to the readable history.ISO 8601, e.g. 2026-10-23T12:00:00Z
venuestringall (default: every enabled exchange, summed per band) | binance | bybit | okx (one exchange; 403 source_restricted while its licence review is pending, 400 when switched off).one of all, binance, bybit, okx · default all
bandPctnumberBand width in percent of the price, default 0.5 (a round step near it, like the heatmap rows), 0.1 to 5.0.1–5 · default 0.5

Response fields

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

Response fields of /heatmap/{coin}/open-interest
FieldDescription
coinstringCoin name as on Hyperliquid (BTC, kPEPE, HIP-3 names like xyz:TSLA).
venue"all" | "binance" | "bybit" | "okx"The venue asked for (all = every enabled exchange, summed per band).
venues[]array of "binance" | "bybit" | "okx"Exchanges read for this answer (enabled ones).
fromstring (ISO 8601)Window start.
tostring (ISO 8601)Window end.
hoursintegerWindow in hours.
marknumber · nullableHyperliquid mark now (the band width is a round step near bandFraction of it).
bandSizenumberWidth of a price band (USD); 0 without a price.
bandFractionnumberBand width asked for, fraction of the price (0.005 = 0.5 %).
stepMinutesintegerLength of one step: two consecutive 5-minute buckets of our collection.
stepsintegerSteps with a change of open interest in the window (all exchanges read).
spanningStepsintegerOf those, steps whose price range crossed a band edge (counted in the band of their middle price).
firstStepstring (ISO 8601) · nullableFirst step with data in the window.
lastStepstring (ISO 8601) · nullableLast step with data in the window.
fullResolutionDaysintegerDays of 5-minute open interest kept (older history is hourly and not used).
totalsobjectSums over the rows of this object.
totals.addedUsdnumberOpen interest added over the published bands (USD).
totals.removedUsdnumberOpen interest removed over the published bands (USD).
totals.netUsdnumberaddedUsd minus removedUsd (USD).
totals.withheldBandsintegerBands without amounts (licence review: a single withheld exchange would be readable from them).
bands[]array of objectsPrice bands with a change, lowest first.
bands[].priceLonumberLower edge of the band (USD, inclusive).
bands[].priceHinumberUpper edge of the band (USD, exclusive).
bands[].addedUsdnumber · nullableOpen interest added while the price was in this band: the sum of the positive 5-minute changes, in contracts valued at the step price; null = withheld (USD).
bands[].removedUsdnumber · nullableOpen interest removed while the price was in this band (sum of the negative changes, as a positive number); null = withheld (USD).
bands[].netUsdnumber · nullableaddedUsd minus removedUsd; null = withheld (USD).
bands[].stepsinteger5-minute steps with a change whose price was in this band.
bands[].venues[]array of "binance" | "bybit" | "okx"Exchanges with a change in this band.
bands[].byVenueobjectPer exchange (only exchanges that are not withheld by the licence review).
bands[].byVenue.binanceobjectThe part of binance in this band.
bands[].byVenue.bybitobjectThe part of bybit in this band.
bands[].byVenue.okxobjectThe part of okx in this band.
bands[].withheldbooleantrue: amounts left out: with the licence review pending, the sum over the exchanges of this band would be one exchange's own figure.

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 25sOperationalHyperliquid positions & whales 9sOperationalLiquidation heatmap & levels 23sOperationalLighter markets & liquidations 13sOperationalLighter positions & heatmap 9sOperationalLighter RH positions & heatmap 13sOperationalBinance markets 1mOperationalBybit markets 21sOperationalBinance liquidations 13sOperationalBybit liquidations 13sOperationaldYdX positions & heatmap 18sOperationalGMX positions & heatmap 13sOperationalLong/short & open interest history 44sOperationalOrder books & trade flow 10sOperationalOn-chain transfers 11sOperationalSecurity monitor 50sOperationalBlockmetric Sentiment 8mOperationalOfficial news 1mOperationalAlert delivery 13sOperational10:20:03 UTCData: Blockmetric Research · Binance · Bybit