GET /v1/open-interest
Retrieve open interest data from derivatives exchanges and prediction markets.
Min Tier: Free | Credits: 50 base + 3 per row returned
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
api-key | string | Yes | — | Your API key. |
symbol | string | Yes | — | Asset symbol (e.g. BTC, ETH) or market slug. |
source | string | No | all | Data source. One of binance_futures, hyperliquid, kalshi. Omit to return data from all sources. |
interval | string | No | 1h | Aggregation interval. One of 5m, 15m, 1h, 4h, 1d. |
start | string | No | — | ISO 8601 start time (inclusive). |
end | string | No | — | ISO 8601 end time (exclusive). |
limit | integer | No | 100 | Number of rows to return. Range: 1–1000. |
after | string | No | — | Cursor for pagination. Pass meta.next_cursor from a previous response. |
Response
| Field | Type | Description | Sources |
|---|---|---|---|
timestamp | string | ISO 8601 snapshot time. | All |
symbol | string | Asset symbol. | All |
source | string | Data source identifier. | All |
interval | string | Aggregation interval. | All |
open_interest | number | Open interest in the base asset or contract units. | All |
open_interest_usd | number | Open interest denominated in USD. | All |
Response Headers
| Header | Description |
|---|---|
X-Credits-Used | Credits consumed by this request. |
X-Credits-Remaining | Credits remaining in your billing cycle. |
X-Rows-Returned | Number of rows in the response. |
X-Rows-Capped | true if the result set was truncated by your plan's row limit. |
Example
cURL
curl "https://kwery-api.com/v1/open-interest?api-key=YOUR_KEY&symbol=BTC&source=binance_futures&interval=4h&start=2026-03-07T00:00:00Z&end=2026-03-08T00:00:00Z"
Python
import requests
resp = requests.get("https://kwery-api.com/v1/open-interest", params={
"api-key": "YOUR_KEY",
"symbol": "BTC",
"source": "binance_futures",
"interval": "4h",
"start": "2026-03-07T00:00:00Z",
"end": "2026-03-08T00:00:00Z",
})
data = resp.json()
TypeScript
const params = new URLSearchParams({
"api-key": "YOUR_KEY",
"symbol": "BTC",
"source": "binance_futures",
"interval": "4h",
"start": "2026-03-07T00:00:00Z",
"end": "2026-03-08T00:00:00Z",
});
const res = await fetch(`https://kwery-api.com/v1/open-interest?${params}`);
const data = await res.json();
Example Response
{
"data": [
{
"timestamp": "2026-03-07T00:00:00Z",
"symbol": "BTC",
"source": "binance_futures",
"interval": "4h",
"open_interest": 52340.80,
"open_interest_usd": 4938475200.00
},
{
"timestamp": "2026-03-07T04:00:00Z",
"symbol": "BTC",
"source": "binance_futures",
"interval": "4h",
"open_interest": 53100.20,
"open_interest_usd": 5015118900.00
},
{
"timestamp": "2026-03-07T08:00:00Z",
"symbol": "BTC",
"source": "binance_futures",
"interval": "4h",
"open_interest": 51890.45,
"open_interest_usd": 4896523050.00
}
],
"meta": {
"symbol": "BTC",
"source": "binance_futures",
"interval": "4h",
"returned": 6,
"next_cursor": null,
"has_more": false
}
}
Source-Specific Behavior
Binance Futures — open_interest is in the base asset (e.g. BTC). open_interest_usd is computed using the mark price at the snapshot time.
Hyperliquid — open_interest is in the base asset. open_interest_usd is derived from the Hyperliquid mark price.
Kalshi — open_interest is the number of open contracts. open_interest_usd is the notional value (contracts × $1 max payout). Useful for gauging prediction market conviction alongside probability.
Tier Access
| Plan | History Depth |
|---|---|
| Free | 7 days |
| Pro | 30 days |
| Business | Full history |
Errors
| Status | Code | When |
|---|---|---|
| 400 | invalid_symbol | The symbol parameter is missing or not recognized. |
| 400 | invalid_source | The source parameter is not one of binance_futures, hyperliquid, kalshi. |
| 400 | invalid_interval | The requested interval is not supported. |
| 400 | invalid_time_range | start is after end, or the range exceeds your plan's history depth. |
| 401 | unauthorized | Missing or invalid api-key. |
| 403 | tier_restricted | Your plan does not allow the requested history depth. |
| 429 | rate_limited | You have exceeded your plan's request rate. Retry after the Retry-After header value. |