Free Open Interest API
Historical open interest data at hourly and daily resolution. Covers 30+ crypto perpetual futures since 2021. The same data sold on Coinglass for $50/month comes from the same Binance archives we use.
Endpoint
/api/markets/open-interest/{slug}?period=1h|1d&from=ISO&to=ISOOpen interest history for a symbol. Defaults to hourly, last 7 days.
Rate Limit
30 req/min/IP
CORS
Open (*)
Auth
None
Examples
curl
curl "https://xoomar.com/api/markets/open-interest/btc?period=1d"
Python
import requests
r = requests.get("https://xoomar.com/api/markets/open-interest/btc", params={"period": "1d"})
for row in r.json()["data"]:
print(f"{row['ts']}: ${float(row['openInterestValue']):,.0f}")JavaScript
const res = await fetch("https://xoomar.com/api/markets/open-interest/btc?period=1d");
const { data } = await res.json();
console.log(data.map(r => `${r.ts}: $${Number(r.openInterestValue).toLocaleString()}`));Honest Limits
- OI updates hourly. Not real-time tick data.
- History starts 2021 for most symbols (when Binance Vision archives begin).
- Covers Binance exchange only for historical data; live snapshots aggregate three exchanges.
- Long/short ratio available for most symbols but not all.
Main Features
- ✓Hourly open interest snapshots for 30 symbols across Binance, Bybit, and OKX with history back to 2021.
- ✓Both contract count and USD notional per row, so you can chart either without conversion guesswork.
- ✓Global long/short account ratio and top-trader position ratio where the exchange publishes them.
- ✓Up to 5,000 rows per call with from/to date filters and a 1h/1d period switch.
- ✓The exact dataset behind our open interest dashboards; what you see on the page is what the API returns.
How It Works
OI is a slow-moving series, so we collect it hourly and keep everything.
Hourly collection
At five past every hour a job reads open interest from all three exchanges for every tracked symbol and appends one row per symbol per exchange.
Deduplication
A unique index on symbol, exchange, and timestamp makes the job idempotent: re-runs and retries can never double-count.
History serving
Queries hit an indexed table holding the full archive since January 2021; date-range queries stay fast at any depth.
Real Example
Request
curl "https://xoomar.com/api/markets/open-interest/btc?period=1d"
Response (captured live, trimmed)
{
"data": [
{
"id": 1341916,
"symbolId": "b0e79ed5-1f77-4001-959d-941845acfefe",
"exchange": "binance",
"ts": "2026-06-12T15:00:00.000Z",
"openInterest": "98408.77800000",
"openInterestValue": "6295317778.3158",
"longShortRatio": "1.538100",
"topTraderRatio": null
},
{
"id": 1341808,
"symbolId": "b0e79ed5-1f77-4001-959d-941845acfefe",
"exchange": "binance",
"ts": "2026-06-12T14:00:00.000Z",
"openInterest": "98227.47700000",
"openInterestValue": "6208659859.4374",
"longShortRatio": "1.589300",
"topTraderRatio": null
}
],
"updatedAt": "2026-06-12T15:08:36.103Z",
"source": "xoomar.com",
"docs": "https://xoomar.com/markets/api"
}openInterest is in contracts, openInterestValue in USD. The ratios are exchange-reported and null where a venue does not publish them.
What People Build With This
OI divergence alerts
Price up while OI falls means short covering, not new money. Compare day-over-day OI with price change to classify rallies.
Liquidation risk maps
Rapid OI build-up at a price level marks where leverage is concentrated, and where cascades start when it unwinds.
Market regime research
Four years of hourly OI is enough to study how leverage cycles lead price cycles. Most sources paywall this depth.
Exchange share tracking
Sum notional OI per venue over time to watch market share shift between Binance, Bybit, and OKX.
Pricing and Fair Use
Free. No API key, no signup, no credit card. We rate limit per IP to keep the service fast for everyone; a 429 response carries a Retry-After header telling you exactly when to retry. Cache responses on your side where you can. If you are building something that needs guaranteed volume, contact us first instead of hammering the endpoint.
Response Shape
Every endpoint returns the same JSON envelope: { data, updatedAt, source, docs }. The data field is an array of records with these fields:
| Field | Type | Description |
|---|---|---|
| exchange | string | binance, bybit, or okx |
| ts | string | Observation hour (ISO timestamp) |
| openInterest | string | null | Open interest in contracts |
| openInterestValue | string | null | Open interest notional in USD |
| longShortRatio | string | null | Global long/short account ratio where available |
| topTraderRatio | string | null | Top trader long/short positions ratio where available |
Query params: period=1h|1d (default 1h), from/to ISO dates. Hourly history goes back to 2021 for the majors. Up to 5000 rows per call.
Numeric values arrive as strings where precision matters (prices, rates); parse with your language's decimal type for accounting-grade math. Rate limiting is fair-use per IP; a 429 response includes a Retry-After header. No authentication, no API key, no signup. Attribution is appreciated: xoomar.com/markets.
Frequently Asked Questions
How far back does OI history go?
What resolution is available?
Does it include long/short ratio?
Can I get OI for a specific date range?
Data on this page is provided for informational purposes only and is not financial advice. See our editorial policy.