Skip to main content

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

ParameterTypeRequiredDefaultDescription
api-keystringYesYour API key.
symbolstringYesAsset symbol (e.g. BTC, ETH) or market slug.
sourcestringNoallData source. One of binance_futures, hyperliquid, kalshi. Omit to return data from all sources.
intervalstringNo1hAggregation interval. One of 5m, 15m, 1h, 4h, 1d.
startstringNoISO 8601 start time (inclusive).
endstringNoISO 8601 end time (exclusive).
limitintegerNo100Number of rows to return. Range: 1–1000.
afterstringNoCursor for pagination. Pass meta.next_cursor from a previous response.

Response

FieldTypeDescriptionSources
timestampstringISO 8601 snapshot time.All
symbolstringAsset symbol.All
sourcestringData source identifier.All
intervalstringAggregation interval.All
open_interestnumberOpen interest in the base asset or contract units.All
open_interest_usdnumberOpen interest denominated in USD.All

Response Headers

HeaderDescription
X-Credits-UsedCredits consumed by this request.
X-Credits-RemainingCredits remaining in your billing cycle.
X-Rows-ReturnedNumber of rows in the response.
X-Rows-Cappedtrue 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 Futuresopen_interest is in the base asset (e.g. BTC). open_interest_usd is computed using the mark price at the snapshot time.

Hyperliquidopen_interest is in the base asset. open_interest_usd is derived from the Hyperliquid mark price.

Kalshiopen_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

PlanHistory Depth
Free7 days
Pro30 days
BusinessFull history

Errors

StatusCodeWhen
400invalid_symbolThe symbol parameter is missing or not recognized.
400invalid_sourceThe source parameter is not one of binance_futures, hyperliquid, kalshi.
400invalid_intervalThe requested interval is not supported.
400invalid_time_rangestart is after end, or the range exceeds your plan's history depth.
401unauthorizedMissing or invalid api-key.
403tier_restrictedYour plan does not allow the requested history depth.
429rate_limitedYou have exceeded your plan's request rate. Retry after the Retry-After header value.