Perpetuals API
Which perp protocols hold the most open interest?
Ranks perpetual-futures protocols and their frontends by open interest in USD, with the readings 1, 7 and 30 days back, and the total with frontends counted once.
/api/external/perps/perp-protocol-open-interestWhat it returns
Every perpetual-futures protocol the record follows, on-chain order books and frontends over them, one row per protocol, largest open interest first, with the reading 1, 7 and 30 days earlier. Open interest is the USD value of open positions at the newest daily reading. A protocol with no current reading (a retired one) is left out; one whose open interest is 0 is kept. Prediction markets are left out: their open interest is outstanding outcome shares, not leveraged positions. A frontend whose positions sit on another protocol's book is flagged doubleCounted and left out of totalUsd, so the total counts every position once. No chain and no subject in the request. For major futures venues, centralised ones included, see derivatives-venues.
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/perp-protocol-open-interest"
Response fields
A JSON response. Every field is always present; null means the value could not be established, never zero.
| Field | Type | Description |
|---|---|---|
totalUsd | number | Open interest over every row not flagged doubleCounted, USD. |
protocols | object[] | Largest open interest first. Never empty. |
protocols[].name | string | The protocol, e.g. "Hyperliquid Perps". |
protocols[].slug | string | null | The protocol's slug, or null where the record carries none. |
protocols[].category | string | null | Derivatives for a perp protocol, Interface for a frontend over another protocol's book, or a narrower kind (Synthetics, Interest Rate Derivatives). null where the record carries none. |
protocols[].chains | string[] | The networks the protocol runs on, by name (Off Chain for an order book run off any chain). |
protocols[].openInterestUsd | number | Open interest at the newest daily reading, USD. |
protocols[].openInterestUsd1dAgo | number | null | The reading one day earlier, USD. null where the record has none. |
protocols[].openInterestUsd7dAgo | number | null | The reading 7 days earlier, USD. null where the record has none. |
protocols[].openInterestUsd30dAgo | number | null | The reading 30 days earlier, USD. null where the record has none. |
protocols[].doubleCounted | boolean | Whether the row's positions sit on another protocol's book and are counted there too. |
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