When most traders say "slippage," they mean the gap between expected and realized price. But that colloquial definition conflates several distinct costs. Precise measurement requires decomposing execution quality against observable benchmarks — a framework that traces back to Perold's (1988) concept of implementation shortfall.
/api/v1/data/slippage
Trades
Requires timestamp=true
slippage_meanMean SlippageAverage slippage in price units versus the prevailing quoteslippage_bps_meanMean Slippage (bps)Average slippage in basis points versus the prevailing quoteslippage_bps_stdSlippage Std Dev (bps)Standard deviation of slippage in basis pointsslippage_bps_medianMedian Slippage (bps)Median slippage in basis pointsslippage_bps_p95Slippage P95 (bps)95th percentile slippage in basis pointsslippage_bps_vwapVWAP Slippage (bps)Trade-size-weighted average slippage in basis pointsslippage_bps_buy_meanBuy Slippage Mean (bps)Average slippage in basis points for buy-side tradesslippage_bps_sell_meanSell Slippage Mean (bps)Average slippage in basis points for sell-side tradesslippage_bps_buy_sell_ratioBuy/Sell Slippage RatioBuy-side average slippage divided by sell-side average slippageslippage_bps_sell_buy_ratioSell/Buy Slippage RatioSell-side average slippage divided by buy-side average slippagefrom datetime import datefrom aperiodic import get_metricsdf = get_metrics( api_key="YOUR_API_KEY", metric="slippage", 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 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/slippage?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.