Open interest history has not yet reached 31 days; earliest data varies by source. See Data availability.
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. Send via X-API-Key header (recommended) or api-key query parameter. See Authentication. |
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
Send your API key in the X-API-Key header (recommended) or as the api-key query parameter. Examples below use the header.
import requests
resp = requests.get(
"https://kwery-api.com/v1/open-interest",
headers={"X-API-Key": "YOUR_KEY"},
params={
"symbol": "BTC",
"source": "binance_futures",
"interval": "4h",
"start": "2026-03-07T00:00:00Z",
"end": "2026-03-08T00:00:00Z",
},
)
data = resp.json()Query parameter alternative: Add api-key=YOUR_KEY to the URL for quick tests; the header is recommended for production.
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 | 14 days |
| Business | 31 days |
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. |