Perpetuals API
One coin's options open interest or volume over time, per venue
A coin's options open interest (or volume) at each bucket, one series per venue, oldest first, with the coin's price alongside.
/api/external/perps/options-history/{symbol}What it returns
One coin's OPTIONS market over time, one series per venue, oldest first: metric=open-interest (default) answers the open positions at each bucket, in US dollars or in the coin's own units; metric=volume answers the options volume traded, which exists daily and in US dollars only. at, price and every venue's values are aligned point for point, so values[i] is the figure at at[i]. Only the handful of coins with a listed options market answer; every other well-formed ticker is a 404. This is options, not perpetual futures: derivatives-open-interest-history answers the same question for futures, and options-markets answers this one for right now. symbol is the coin ticker, matched case-insensitively — not an instrument id, not a token mint or contract address, and not scoped to any of this API's chains.
Chains
This endpoint is not tied to a chain: it takes no chain in its request.
Request
Send your key in the x-dex-data-key header. Replace each <placeholder> with a real value.
curl -H "x-dex-data-key: $DEXDATA_API_KEY" \ "https://api.dexdata.io/api/external/perps/options-history/<symbol>"
| Parameter | Description |
|---|---|
metricquery · string · optional | Which series to answer: the open positions at each bucket, or the volume traded in it. volume exists only as interval=1d and unit=usd; asking for it in any other bucket or unit is a 400 rather than a quietly different answer.open-interestvolume |
intervalquery · string · optional | Bucket width: exactly the widths the source publishes. Defaults to one day, which is the full daily history back to 2020; the shorter widths answer about 30 recent buckets.1h4h12h1d |
limitquery · integer · optional | How many of the most recent buckets to return, 1 to 1000. Defaults to 100. Fewer come back when the coin's history is shorter. |
unitquery · string · optional | US dollars, or the coin's own units (contracts). Defaults to US dollars.usdcoin |
symbolpath · string · required | The coin (base asset) ticker, e.g. "BTC", "ETH" or "SOL" — not an instrument id such as "BTC-27JUN25-100000-C", and not a token mint or contract address. Case-insensitive. |
Response fields
A JSON response. Every field is always present; null means the value could not be established, never zero.
| Field | Type | Description |
|---|---|---|
symbol | string | The coin, upper-cased (e.g. "BTC"). |
metric | string | The series answered. |
interval | string | The bucket width. |
unit | string | The unit every value is in. |
at | integer[] | Bucket opens in unix SECONDS, oldest first. The newest is the last CLOSED bucket. |
price | number[] | The coin's price in US dollars at each bucket, aligned with at. The same series under either unit — measured, not assumed. |
venues | object[] | One series per venue, ordered by the newest figure it states INSIDE this window, descending; a venue that states none in it comes last, with its values all null. Which venues appear does not depend on limit: a venue that states nothing anywhere in the coin's history is left out, and every other one always appears. |
venues[].venue | string | The options venue, e.g. "Deribit" or "CME". |
venues[].values | number[] | The figure at each bucket, in unit, aligned with at. |
Start building with DexData today
Sign in, create a key and make your first call in a minute. Free credits every month, and you only pay for calls that succeed.
Get a free API key