Perpetuals API
Price change and swing amplitude across short timeframes, per coin
Every coin's percent price change AND high-low swing at 5m, 15m, 30m, 1h, 4h, 12h and 24h — one row per coin, sortable by the widest swing or the biggest move.
/api/external/perps/derivatives-price-volatilityWhat it returns
For every coin, the percent price change and the high-low swing ("amplitude") at 5 minutes, 15 minutes, 30 minutes, 1 hour, 4 hours, 12 hours and 24 hours — one row per coin, so a caller can see how much a coin has moved and how wide it has swung right now. This is NOT the coin ranking that publishes price change at 1h/4h/24h alongside open interest and volume: that one carries no amplitude at all and only ranks the coins with the most open interest, while this endpoint covers every coin the source lists and adds four more windows plus the swing figure. The population is not limited to crypto — FX, commodity and index tickers appear in the same list. Row order (sort=source, the default) is the source's own and is not meaningful; sort by the widest 24-hour swing or by the biggest 24-hour move instead to find what is moving right now. A coin the source tracks no series for answers null for all fourteen figures on its row, never 0 — a real 0 means a measured, real no-change reading.
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/derivatives-price-volatility"
| Parameter | Description |
|---|---|
limitquery · integer · optional | How many rows to return, after sorting. Defaults to 50; at most 2000. limit ≤ 60 keeps the answer under 32 KB. |
symbolquery · string · optional | Keep only one coin, by ticker, e.g. "BTC". Case-insensitive. Not a token mint or contract address. |
sortquery · string · optional | source (default): the order the upstream sent, which is NOT meaningful (neither alphabetical nor by any figure). widest-24h: descending by the 24-hour amplitude (the widest swing first). biggest-move-24h: descending by the ABSOLUTE 24-hour price change (the biggest move in either direction first). A coin with no series always sorts last under either.sourcewidest-24hbiggest-move-24h |
Response fields
A JSON response. Every field is always present; null means the value could not be established, never zero.
| Field | Type | Description |
|---|---|---|
rows | object[] | One row per coin, after the symbol filter, sort, and then limit. |
rows[].symbol | string | null | The coin ticker, as the venue lists it. Not scoped to crypto — FX, commodities, indices and equities appear too. |
rows[].price | number | null | The current price. |
rows[].priceChangePercent5m | number | null | Signed percent price change over the last 5 minutes. |
rows[].priceChangePercent15m | number | null | Signed percent price change over the last 15 minutes. |
rows[].priceChangePercent30m | number | null | Signed percent price change over the last 30 minutes. |
rows[].priceChangePercent1h | number | null | Signed percent price change over the last hour. |
rows[].priceChangePercent4h | number | null | Signed percent price change over the last 4 hours. |
rows[].priceChangePercent12h | number | null | Signed percent price change over the last 12 hours. |
rows[].priceChangePercent24h | number | null | Signed percent price change over the last 24 hours. |
rows[].priceAmplitudePercent5m | number | null | Unsigned percent high-low swing over the last 5 minutes. |
rows[].priceAmplitudePercent15m | number | null | Unsigned percent high-low swing over the last 15 minutes. |
rows[].priceAmplitudePercent30m | number | null | Unsigned percent high-low swing over the last 30 minutes. |
rows[].priceAmplitudePercent1h | number | null | Unsigned percent high-low swing over the last hour. |
rows[].priceAmplitudePercent4h | number | null | Unsigned percent high-low swing over the last 4 hours. |
rows[].priceAmplitudePercent12h | number | null | Unsigned percent high-low swing over the last 12 hours. |
rows[].priceAmplitudePercent24h | number | null | Unsigned percent high-low swing over the last 24 hours. |
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