API reference, Liquidations & positions

Open interest history

Open interest bars of a perp since May 2023, after every block since March 2025: longs and shorts opened, closed, liquidated.

  • Elysium: not served
  • HyperCore
  • HyperEVM: not served
  • Not on Elysium or HyperEVM: the EVM layers trade on AMM pools, with no order book: pool detail and liquidity events cover a pool

GET https://api.femtos.xyz/v1/hypercore/oi

Parameters

ParamInExample or valuesMeaning
coinqueryBTCPerp market: BTC, xyz:TSLA (HIP-3: dex:COIN)
tfquery1s, 15s, 1m, 3m, 5m, 15m, 30m, 1h, 2h, 4h, 8h, 12h, 1d, 3d, 1w, 1MBar unit
fromquery(optional)Start (ms, inclusive; aligned down to the unit). Without it: the `limit` bars ending at `to`
toquery(optional)End (ms, exclusive; default now)
limitquery48Bars

Example

curl -H "Authorization: Bearer $FEMTOS_KEY" "https://api.femtos.xyz/v1/hypercore/oi?coin=BTC&tf=1h&limit=48"

Key: Authorization: Bearer $FEMTOS_KEY. Get a free key, or with no browser through agent onboarding.

Response fields

FieldTypeMeaning
bars[]objectAscending; a unit without fill nor anchor is flat at the previous close; none before the market's first, nor over a gap of Hyperliquid's archive before 2025-03-22 10:49 UTC: {t, o, h, l, c, px, usd, longOpen, longClose, shortOpen, shortClose, takerLongOpen, …}
bars[].cdecimalAfter the last block of the bar
bars[].usddecimal | nullc × px, in the market's quote (USD figure, 15 significant digits)
bars[].longOpendecimal | nullSize of longs opened in the bar; null where not known (before 2025-03-22 10:49 UTC, or a bar that may hold blocks missing from Hyperliquid's node data)
bars[].shortOpendecimal | nullSize of shorts opened; null where not known (before 2025-03-22 10:49 UTC, or a bar that may hold blocks missing from Hyperliquid's node data)
bars[].takerLongOpendecimal | nullOf longOpen, opened by the aggressor (a taker buying to open); null where not known (before 2025-03-22 10:49 UTC, or a bar that may hold blocks missing from Hyperliquid's node data)
bars[].liqdecimal | nullSize closed on liquidated accounts; null where not known (before 2025-03-22 10:49 UTC, or a bar that may hold blocks missing from Hyperliquid's node data)
bars[].longAccountsint | nullAccounts long at the bar end; null before 2025-09-28
bars[].fundingdecimal | nullHourly funding rate Hyperliquid settled for the hours of the bar, as a fraction (0.0000125 = 0.00125 % an hour; positive: longs pay shorts); a bar under an hour has its hour's rate, a longer one the mean of its hours. null while the hour is not settled yet (the live rate is hc.ctx `funding`), and before 2025-09-27 09:00 UTC
szDecimalsintSize decimals of the market: every size is a multiple of 10^-szDecimals
asOfint | nullEnd of the last minute computed (Unix ms; 1s and 15s: just after the last block read); null when the market has none
billingheavyheavy over 30 days

Related: Liquidations & positions

  • Liquidations GET /v1/liquidations HyperCore
    Perp liquidations, newest first, one row per account, coin and block.
  • Liquidations stream WS hc.liquidations HyperCore
    Each liquidation fill, the block it happens. One frame per block with all its matching events.
  • Liquidation stats GET /v1/liquidations/stats HyperCore
    Totals, per coin, per time bucket and the largest, over a window.
  • Liquidation stats stream WS hc.liquidations.stats HyperCore
    The GET /v1/liquidations/stats answer (totals, per coin, per bucket, the largest), pushed on subscribe, then when a liquidation comes in (whole, or as a JSON Patch).
  • Positions GET /v1/positions HyperCore
    Open positions of one perp with leverage and liquidation price.
  • Position changes WS hc.positions HyperCore
    Each perp position change, one per block, account and coin. One frame per block with all its matching events.
  • Open positions stream WS hc.positions.open HyperCore
    The GET /v1/positions answer of one perp (size, entry, PnL, leverage, liquidation price), pushed on subscribe, then on each roll of the live positions (every 5 s) when it changes.
  • Position change history GET /v1/positions/changes HyperCore
    Past perp position changes of one coin over a size, one row per account and block.
  • Open interest GET /v1/positions/overview HyperCore
    Open interest, accounts and unrealized PnL per perp.
  • Open interest stream WS hc.positions.overview HyperCore
    The GET /v1/positions/overview answer (long / short open interest, accounts, unrealized PnL per perp), pushed on subscribe, then on each roll of the live positions (every 5 s) when it changes (whole, or as a JSON Patch).
  • Liquidation map GET /v1/positions/liqmap HyperCore
    Notional that would be liquidated at each price around the mark.
  • Liquidation levels stream WS hc.positions.liqmap HyperCore
    The GET /v1/positions/liqmap answer of one perp (notional liquidated per price bucket), pushed on subscribe, then on each roll of the live positions (every 5 s) when it changes.
  • Open interest per block WS hc.oi HyperCore
    The open interest of a perp after every block with a fill: longs and shorts opened, closed, liquidated. One frame per block with all its matching events.
  • Open interest by market GET /v1/hypercore/oi/markets HyperCore
    Every perp's open interest now, its 1 h / 24 h / 7 d change, totals per dex.
  • Open interest by position size GET /v1/hypercore/oi/cohorts HyperCore
    Long and short open interest of a perp by position size, every hour since September 2025.
  • Who opened positions GET /v1/hypercore/oi/opens HyperCore
    The largest orders that opened longs or shorts on a perp in a window, with the account and whether it crossed the spread.

More

Agent guide (agents.md)llms.txtOpenAPIMCP serverGet an API keyChangelog