Open Interest Dataset
Historical Crypto Open Interest Data
Exchange-published open interest snapshots in venue units and quote notional, normalized across major derivatives venues.
No credit card · The sample is one real hourly Parquet file and needs no API key
Sample
See the data before you sign up
The first rows of one real hour: BTCUSDT on Binance Futures, 2026-09-02 at 12:00 UTC. One row per open interest snapshot.
binance_futures/2026-09-02/12/BTCUSDT_open_interest.parquetDownload full file| received_time | symbol | sum_open_interest | sum_open_interest_value | timestamp |
|---|---|---|---|---|
| 1788350744443983347 | BTCUSDT | 107267.96500000 | 8459480277.79047700 | 1788200700000 |
| 1788350744443983347 | BTCUSDT | 107287.42500000 | 8461469533.70250000 | 1788201000000 |
| 1788350744443983347 | BTCUSDT | 107310.15600000 | 8462393054.03520000 | 1788201300000 |
| 1788350744443983347 | BTCUSDT | 107325.59400000 | 8474868937.17540000 | 1788201600000 |
| 1788350744443983347 | BTCUSDT | 107353.40100000 | 8498284357.29331900 | 1788201900000 |
| 1788350744443983347 | BTCUSDT | 107344.89300000 | 8486017196.09157200 | 1788202200000 |
Wire format
From exchange message to Parquet row
Every row starts as a message on the exchange's WebSocket or REST API. Point at a line or a column to see where each value comes from and how we convert it. Our test suite replays these messages through the production pipeline, so the rows shown are the rows you download.
The USDⓈ-M WebSocket streams of Binance do not include open interest. The collector polls the history of 5-minute open interest every 5 minutes. We publish each point one time, in the hour of the first poll that returned it.
Exchange sends
REST responsereceived 2026-10-05 18:55:29.795573 UTC
GET https://fapi.binance.com/futures/data/openInterestHist?symbol=BTCUSDT&period=5m&limit=3
[{"symbol": "BTCUSDT","sumOpenInterest": "95006.41500000","sumOpenInterestValue": "8130409421.87865450","CMCCirculatingSupply": "20093487.00000000","timestamp": 1791225600000},{"symbol": "BTCUSDT","sumOpenInterest": "94973.61800000","sumOpenInterestValue": "8127186910.47580000","CMCCirculatingSupply": "20093487.00000000","timestamp": 1791225900000},{"symbol": "BTCUSDT","sumOpenInterest": "94930.31000000","sumOpenInterestValue": "8122474649.37500000","CMCCirculatingSupply": "20093487.00000000","timestamp": 1791226200000}]
Shortened: We requested this example with limit=3 to keep it short. The collector requests limit=500.
You download
Parquet row · open_interest · 1 of 3 rows from this message
Point at a line in the message or a column in the row to trace where each value comes from. Click a column to pin it.
Our tests replay this message through the production pipeline
All Binance Futures mapping rules →Conventions for every exchange are in the wire formats overview. Column types and units for open interest data are in the schema below.
Use cases
What you can build with open interest data
- Leverage build-up
- Watch open interest rise or fall to see when new positions are being opened or closed.
- Price and positioning divergence
- Combine open interest with price to separate new money entering a move from short covering or long liquidation.
- Cross-venue positioning
- Compare where open interest concentrates across derivatives exchanges for the same underlying.
Coverage
Open interest coverage
Every venue is stored under its own exchange ID, so spot and derivatives never mix. Bars show each venue's history from its first hourly file to today, or to its last file for a venue that is no longer collected. Symbol counts are live from the symbols API.
| Venue | Exchange ID | Market | History | Open interest symbols |
|---|---|---|---|---|
| binance_futures | Futures | 2025-06-2816 mo | 908 | |
| bybit | Futures | 2025-06-2816 mo | 1,526 | |
| okx_futures | Futures | 2025-06-2816 mo | 638 | |
| bitget_futures | Futures | 2025-07-1515 mo | 1,210 | |
| kraken_derivatives | Futures | 2025-06-2816 mo | 680 | |
| hyperliquid_futures | Perpetuals | 2025-09-2913 mo | 451 | |
| bitmex | Futures | 2025-09-29 to 2026-09-2212 mo | 156 | |
| lighter | Perpetuals & Spot | 2025-12-3010 mo | 239 |
By exchange
Open Interest data by exchange
Each exchange page covers its markets, verified history start, and a sample from that venue.
Schema · 5 columns
Normalized open interest schema
Every open interest row is an exchange-published snapshot with total open interest in the venue's unit (base asset or contracts), quote notional value when available, and snapshot timing.
| Column | Type | Description |
|---|---|---|
| received_time | INT64 | Unix timestamp (nanoseconds) when our system received the open interest data |
| symbol | STRING | Trading pair symbol (for example, 'BTCUSDT') |
| sum_open_interest | STRINGnullable | Total open interest in the unit of the venue (stored as string for precision). The unit is the base asset on most venues, contracts on OKX and Kraken inverse futures, and raw instrument units on BitMEX (refer to the venue notes) |
| sum_open_interest_value | STRINGnullable | Total notional value of open interest in the quote currency, if the venue gives it or if we can calculate it (stored as string for precision) |
| timestamp | INT64 | Unix timestamp when the exchange took the open interest snapshot |
Quickstart
From pip install to DataFrame in a minute
The example loads BTCUSDT from Binance Futures for 2026-09-02. Change the symbol, exchange, or dates to pull any other slice of the archive.
Install the Python SDK
pip install cryptohftdataCreate a free API key
Sign up with email or Google, then generate a key from your dashboard. No credit card.
Create accountCall get_open_interest()
Paste the snippet, replace YOUR_API_KEY, and you get a pandas DataFrame with the columns listed above.
import cryptohftdata as chd
client = chd.CryptoHFTDataClient(api_key="YOUR_API_KEY")
df = client.get_open_interest(
symbol="BTCUSDT",
exchange=chd.exchanges.BINANCE_FUTURES,
start_date="2026-09-02",
end_date="2026-09-02",
)
print(df.head())
print(f"Open interest snapshots: {len(df):,}")curl --fail --location \
"https://api.cryptohftdata.com/download?file=binance_futures/2026-09-02/12/BTCUSDT_open_interest.parquet" \
-o BTCUSDT_open_interest_12.parquetCaveats
Know this before you backtest
Exchange feeds differ in subtle ways. These are the details that matter for accurate backtests, replay pipelines, and features. Missing hours and pending corrections for every venue are listed on Known Gaps & Corrections.
Open interest is a periodic snapshot published by each exchange, not a continuous event stream; snapshot cadence varies by venue.
sum_open_interest is in the venue's unit: base asset on most venues, contracts on OKX (multiply by ctVal) and Kraken inverse futures, raw per-instrument units on BitMEX. sum_open_interest_value is quote notional where available.
This page starts on 2025-06-28 based on the earliest stored hourly files for its covered exchange IDs and grows as new hourly files are published.
BitMEX (bitmex) is historical only: the exchange has closed and its files end on 2026-09-22.
FAQ
Frequently asked questions
Is this open interest data free to download?
Yes. A free CryptoHFTData account with no credit card gives API access to this open interest data and every other dataset. Individual hourly files can also be downloaded without an API key on the rate-limited free tier.
How far back does this open interest data go?
The earliest hourly files start on 2025-06-28, and new files are added every hour. Start dates differ by venue; the coverage table on this page lists each one.
What format are the files in?
Each file holds one symbol for one UTC hour, stored as Zstd-compressed Parquet under {exchange_id}/{YYYY-MM-DD}/{HH}/{SYMBOL}_open_interest.parquet. Parquet reads directly into pandas, Polars, DuckDB, and Arrow.
How do I load this open interest data in Python?
Install the SDK with pip install cryptohftdata, create a client with your API key, and call client.get_open_interest() with a symbol, exchange, and date range. It returns a pandas DataFrame.
How often is open interest recorded?
Open interest is a periodic snapshot published by each exchange, not a continuous stream. The cadence depends on the venue, so check timestamps before resampling.
Start using open interest data today.
One free API key covers every exchange and every data type. $0.00.