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
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 date
from aperiodic import get_metrics
# Free preview — no API key required
df = get_metrics(
metric="slippage",
exchange="binance-futures",
symbol="perpetual-BTC-USDT:USDT",
interval="5m",
timestamp="exchange",
start_date=date(2025, 5, 1),
end_date=date(2025, 5, 31),
preview=True,
)
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. Sub-minute intervals (15s, 30s) require a Tier 3 subscription.
15s30s1m5m15m30m1h4h1dexchangereqstringSource 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&..."
}
]
}
Prefilled with the shared DEMO-KEY and a free preview slice — send the request to see live data, no account required.
/api/v1/data/preview/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.