Crypto perpetual exchanges use a mark price — a smoothed, manipulation-resistant reference — to calculate unrealized P&L and trigger liquidations. The underlying feed is the index price, typically a volume-weighted average of spot prices across major exchanges. The gap between mark, index, and last trade price is not just a data quality metric — it's a window into the mechanics of the liquidation engine.
/api/v1/data/derivative_price
Derivatives
last_priceLast PriceLast traded price observed in the intervalindex_priceIndex PriceLast index price observed in the intervalmark_priceMark PriceLast mark price observed in the intervallast_price_pct_changeLast Price % ChangePercentage change from the first last price to the final last price in the intervalindex_price_pct_changeIndex Price % ChangePercentage change from the first index price to the final index price in the intervalmark_price_pct_changeMark Price % ChangePercentage change from the first mark price to the final mark price in the intervalmark_index_pct_change_ratioMark/Index % Change RatioMark-price return divided by index-price return over the intervalmark_last_pct_change_ratioMark/Last % Change RatioMark-price return divided by last-price return over the intervalindex_last_pct_change_ratioIndex/Last % Change RatioIndex-price return divided by last-price return over the intervalfrom datetime import datefrom aperiodic import get_derivative_metricsdf = get_derivative_metrics( api_key="YOUR_API_KEY", metric="derivative_price", exchange="binance-futures", symbol="perpetual-BTC-USDT:USDT", interval="1d", start_date=date(2024, 1, 1), end_date=date(2024, 3, 1),)print(df.head())timestampreqstringTimestamp source. 'exchange' uses the exchange-reported timestamp, 'true' uses actual arrival time at our servers.
exchangetrueintervalreqstringAggregation time interval for the data.
1m5m15m30m1h4h1dexchangereqstringSource derivatives exchange for the data.
binance-futuresokx-perpshyperliquid-perpssymbolreqstringTrading pair symbol in the format of Atlas' universal symbology: https://github.com/aperiodic-io/atlas
start_datereqstring<date>Start date for the data range (YYYY-MM-DD format). Data is partitioned by year and month.
end_datereqstring<date>End date for the data range (YYYY-MM-DD format). Must be greater than or equal to start_date.
Successful response with download URLs for each monthly file
filesobject[]requiredArray of file information for each month in the requested date range
yearintegerrequiredYear of the data file
monthintegerrequiredMonth of the data file (1-12)
urlstring<uri>requiredPresigned URL for direct file download (valid for 5 minutes). URLs are served from dataset-specific subdomains, e.g. ohlcv.aperiodic.io, trade-metrics.aperiodic.io, l1-metrics.aperiodic.io, l2-metrics.aperiodic.io, derivative-metrics.aperiodic.io.
{
"files": [
{
"year": 2024,
"month": 1,
"url": "https://ohlcv.aperiodic.io/binance-futures/1h/BTCUSDT/2024-01.parquet?X-Amz-Expires=300&..."
},
{
"year": 2024,
"month": 2,
"url": "https://ohlcv.aperiodic.io/binance-futures/1h/BTCUSDT/2024-02.parquet?X-Amz-Expires=300&..."
}
]
}
/api/v1/data/derivative_price?timestamp=exchange&interval=5m&exchange=binance-futures&symbol=perpetual-BTC-USDT%3AUSDT&start_date=2025-05-01&end_date=2025-05-31Access a curated slice of real production data with just an account — no credit card or subscription required. Pair it with our research notebooks to get started instantly.