Where can I get ETH-USDT open interest via API?

One authenticated GET returns current ETH-USDT open interest plus its 30-day trend and a daily history array:

curl -H "X-API-Key: cdk_live_YOUR_KEY" \
  "https://cryptodataapi.com/api/v1/derivatives/binance/open-interest?symbol=ETHUSDT"
{
  "symbol": "ETHUSDT",
  "current_oi": 2430666.327,
  "oi_trend_30d_pct": 3.41,
  "history": [
    {
      "timestamp": 1785196800000,
      "sum_open_interest": 2313865.095,
      "sum_open_interest_value": 4376546860.612603
    }
  ]
}

Three fields do the work. current_oi is the live figure, oi_trend_30d_pct is the percentage change over the trailing month (+3.41% in this snapshot), and history is the daily series you need to judge whether the current print is elevated or ordinary.

Note the symbol format: ETHUSDT, not ETH-USDT. Binance uses no separator. Search engines and traders write it with a hyphen; the API does not accept one.

The units mistake: 2,430,666 is not $2.4 million

This trips up almost every first integration. current_oi is denominated in the base asset, not USD. A reading of 2430666.327 for ETHUSDT means 2.43 million ETH of open contracts — at roughly $2,462 per ETH that is about $5.99 billion, not two-and-a-half million dollars.

Get this wrong and every downstream comparison is nonsense: you will conclude ETH open interest is a rounding error next to BTC's, when in dollar terms the two are the same order of magnitude.

FieldUnitExample
current_oiBase asset (ETH)2,430,666 ETH
sum_open_interest (history)Base asset (ETH)2,313,865 ETH
sum_open_interest_value (history)USD$4,376,546,861
oi_trend_30d_pctPercent+3.41%

The history array conveniently carries bothsum_open_interest in ETH and sum_open_interest_value in dollars — which is also the cleanest way to see why the distinction matters. Coin-denominated OI can fall while dollar OI rises, purely because price moved. Those are different stories:

For live figures, multiply current_oi by the mark price yourself — or use the cross-exchange endpoint below, which hands you a pre-computed USD field.

ETH open interest across both venues in one call

Binance is not the whole perp market. The cross-exchange endpoint takes the bare asset symbol and returns both venues, translating naming internally:

curl -H "X-API-Key: cdk_live_YOUR_KEY" \
  "https://cryptodataapi.com/api/v1/derivatives/open-interest?coin=ETH"
{
  "coin": "ETH",
  "binance": {
    "current_oi": 2430666.327,
    "trend_30d_pct": 3.41
  },
  "hyperliquid": {
    "current_oi": 694339.4202000012
  },
  "cross_exchange": []
}

Same asset, two numbers: 2,430,666 ETH on Binance, 694,339 ETH on Hyperliquid. In dollars at ~$2,462 that is roughly $5.99B and $1.71B — Hyperliquid running about 29% of Binance's ETH book.

Watching that ratio over time is more informative than either level. A venue's share of total open interest expanding means flow is migrating there, which changes where liquidations cluster and which order book actually absorbs a move.

The parameter is coin=ETH, not symbol=ETHUSDT. Cross-exchange routes take the bare asset; venue-specific routes take that venue's pair convention. cross_exchange is optional enrichment and can legitimately come back as an empty list — binance and hyperliquid are always populated.

Open interest is only a signal next to price

OI counts contracts. It has no direction of its own. Paired with the price change over the same window it becomes one of the most reliable positioning reads in derivatives:

PriceOpen interestInterpretation
UpUpNew longs entering — trend backed by fresh money
UpDownShort covering — a rally on closing, not conviction
DownUpNew shorts entering — trend backed by fresh money
DownDownLong liquidation — a flush, often near exhaustion

The dangerous quadrant is price up + OI up accelerating hard. That is a crowded long book, and it is exactly the configuration that produces cascading liquidations when it breaks.

There is a purpose-built endpoint for that read across the tracked universe — it ranks coins by how far OI growth is outrunning price growth:

curl -H "X-API-Key: cdk_live_YOUR_KEY" \
  "https://cryptodataapi.com/api/v1/liquidity/oi-divergence"

Each row carries price_change_1h_pct, 4h and 24h alongside the matching oi_change_*_pct, plus a divergence_4h field that is simply oi_change_4h_pct - price_change_4h_pct. Positive divergence means positioning is building faster than price is validating it — fragile. The free tier is scoped to BTC here; Pro and Pro Plus get the full universe.

Historical open interest for backtests

The history array on the live endpoint covers roughly the trailing month. For a longer daily series with funding and long/short joined in, use the archive endpoint — it reads our own stored history rather than re-fetching upstream:

curl -H "X-API-Key: cdk_live_YOUR_KEY" \
  "https://cryptodataapi.com/api/v1/derivatives/binance/history?days=90"

days accepts up to 90. For minute-resolution OI joined to funding on a fixed date range, there is a Pro Plus archive query:

curl -H "X-API-Key: cdk_live_YOUR_KEY" \
  "https://cryptodataapi.com/api/v1/backtesting/funding\
?symbol=ETH&exchange=hyperliquid\
&start=2026-07-01T00:00:00Z&end=2026-08-01T00:00:00Z&limit=10000"

Two things to know before you build on it:

That asymmetry is real and worth designing around rather than discovering at 2am. Pick the venue your archive query actually has depth for.

Polling cadence and tier limits

Open interest is a slow-moving aggregate. Binance publishes it on a coarse cadence and the 30-day trend by definition barely moves hour to hour, so high-frequency polling buys you nothing.

All of it fits the free tier: 10 requests/minute, 1,000/day on a verified key. Pro is 30/min and 10,000/day; Pro Plus 120/min and 50,000/day. Every response carries x-ratelimit-remaining-minute and x-ratelimit-remaining-day, so a well-behaved client throttles from the headers instead of retrying into a 429.

When to reach for open interest

Four situations where OI is the right field to look at, and one where it is not:

Where OI misleads: as a standalone level. "ETH open interest is 2.4 million" answers nothing without a trend and a price path beside it. Always pull oi_trend_30d_pct or the history array in the same breath, and always convert to dollars before you compare two assets.