Perpetuals API
One coin's funding rate across all venues, as candles over time
A coin's perp funding rate averaged across venues by open interest or volume, as 1m to 1w candles, percent per 8 hours, so every candle and coin compares directly.
/api/external/perps/derivatives-funding-history/{symbol}What it returns
One coin's perpetual funding rate over time: every venue's rate averaged into one, weighted by each venue's open interest (default) or by its volume, as open/high/low/close candles, oldest first. Rates are percent per 8 hours whatever the venues settle on, so candles compare directly with each other and across coins; positive means longs pay shorts. With open-interest weighting the newest candle is normally the one in progress (complete: false, its close the latest rate); volume weighting answers finished candles only. symbol is the coin ticker (e.g. "BTC"), matched case-insensitively — not an instrument id, not a token mint or contract address, and not scoped to any of this API's chains. An unknown ticker answers 404. With venue and instrument (both or neither) the answer is that one market's own funding rate instead, in the same shape and the same unit (restated per 8 hours from the market's own settlement interval), with venue and instrument echoed; weighting has no effect there. A dated contract pays no funding and answers 404; so does a market whose funding settlement interval is not stated, since its rate cannot be given per 8 hours.
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-funding-history/<symbol>"
| Parameter | Description |
|---|---|
intervalquery · string · optional | Candle width. Defaults to one day.1m3m5m15m30m1h4h6h8h12h1d1w |
limitquery · integer · optional | How many of the most recent candles to return, 1 to 1000. Defaults to 100. Fewer come back when the coin's history is shorter or a candle carries no figures. limit ≤ 300 keeps the answer under 32 KB. |
weightingquery · string · optional | How the venues' rates are averaged: by each venue's open interest (default) or by its trading volume. No effect with venue and instrument, which name one market.open_interestvolume |
venuequery · string · optional | Together with instrument: the exchange whose funding rate to answer instead of the total across venues, as derivatives-coin-venues names it (e.g. "Binance", "OKX", "Bybit", "Hyperliquid"), matched ignoring case. |
instrumentquery · string · optional | Together with venue: the exchange's own instrument id, as instrument in derivatives-coin-venues rows (e.g. "BTCUSDT" on Binance, "BTC-USDT-SWAP" on OKX, "BTC-USD" on Hyperliquid). It must trade the coin in the path. |
symbolpath · string · required | The coin (base asset) ticker, e.g. "BTC" or "kPEPE" — not a venue instrument id such as "BTCUSDT", 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, spelled as it is listed (e.g. "BTC", "kPEPE"). |
venue | string | Only with venue and instrument: the exchange, as it names itself. Absent from the answer across venues. |
instrument | string | Only with venue and instrument: the exchange's instrument id, as it lists it. |
interval | string | The candle width. |
weighting | string | How the venues' rates were averaged. |
candles | object[] | Oldest first. |
candles[].at | number | The bucket's open, unix seconds. |
candles[].open | number | null | Weighted funding rate at the bucket open, percent per 8 hours. null when not stated. |
candles[].high | number | null | Highest weighted funding rate in the bucket, percent per 8 hours. null when not stated. |
candles[].low | number | null | Lowest weighted funding rate in the bucket, percent per 8 hours. null when not stated. |
candles[].close | number | null | Weighted funding rate at the bucket close — the latest rate while the bucket is in progress. Percent per 8 hours; positive: longs pay shorts. null when not stated. |
candles[].complete | boolean | Whether the figures are final. false only on the newest candle, which was still in progress when its figures were read. |
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