Order flow tells you direction. Realized volatility tells you uncertainty. Separately, each is informative. Together, they capture something neither can alone: the toxicity of the trading environment for liquidity providers.
/api/v1/data/flow
Trades
taker_buy_volumeTaker Buy VolumeTotal buy-side traded quantity in the intervaltaker_sell_volumeTaker Sell VolumeTotal sell-side traded quantity in the intervaltaker_buy_countTaker Buy CountNumber of buy-side trades in the intervaltaker_sell_countTaker Sell CountNumber of sell-side trades in the intervalvolume_deltaVolume DeltaBuy-side traded quantity minus sell-side traded quantityvolume_delta_notionalVolume Delta NotionalBuy-side traded notional minus sell-side traded notionalflow_entropyFlow EntropyEntropy of the buy-versus-sell quantity split in the intervalflow_toxicity_scoreFlow Toxicity ScorePast-normalized signed notional flow multiplied by past-normalized short-horizon realized volatilitytaker_buy_sell_ratioBuy/Sell RatioBuy-side traded quantity divided by sell-side traded quantitytaker_buy_sell_count_ratioBuy/Sell Count RatioBuy-side trade count divided by sell-side trade counttaker_buy_sell_percentageTaker Buy %Share of traded quantity that came from buy-side tradestaker_buy_sell_count_percentageTaker Buy Count %Share of trades that were buy-side tradestaker_buy_small_order_volumeBuy Small Order VolumeTotal buy-side notional from small trades under $100taker_buy_small_order_countBuy Small Order CountNumber of buy-side trades under $100taker_buy_medium_order_volumeBuy Medium Order VolumeTotal buy-side notional from medium trades from $100 to under $1,000taker_buy_medium_order_countBuy Medium Order CountNumber of buy-side trades from $100 to under $1,000taker_buy_large_order_volumeBuy Large Order VolumeTotal buy-side notional from large trades of at least $1,000taker_buy_large_order_countBuy Large Order CountNumber of buy-side trades of at least $1,000taker_sell_small_order_volumeSell Small Order VolumeTotal sell-side notional from small trades under $100taker_sell_small_order_countSell Small Order CountNumber of sell-side trades under $100taker_sell_medium_order_volumeSell Medium Order VolumeTotal sell-side notional from medium trades from $100 to under $1,000taker_sell_medium_order_countSell Medium Order CountNumber of sell-side trades from $100 to under $1,000taker_sell_large_order_volumeSell Large Order VolumeTotal sell-side notional from large trades of at least $1,000taker_sell_large_order_countSell Large Order CountNumber of sell-side trades of at least $1,000taker_buy_small_order_percentageBuy Small Order %Ratio of small buy-side trade notional to total buy-side traded quantitytaker_buy_medium_order_percentageBuy Medium Order %Ratio of medium buy-side trade notional to total buy-side traded quantitytaker_buy_large_order_percentageBuy Large Order %Ratio of large buy-side trade notional to total buy-side traded quantitytaker_buy_small_order_count_percentageBuy Small Count %Share of buy-side trades that were small tradestaker_buy_medium_order_count_percentageBuy Medium Count %Share of buy-side trades that were medium tradestaker_buy_large_order_count_percentageBuy Large Count %Share of buy-side trades that were large tradestaker_sell_small_order_percentageSell Small Order %Ratio of small sell-side trade notional to total sell-side traded quantitytaker_sell_medium_order_percentageSell Medium Order %Ratio of medium sell-side trade notional to total sell-side traded quantitytaker_sell_large_order_percentageSell Large Order %Ratio of large sell-side trade notional to total sell-side traded quantitytaker_sell_small_order_count_percentageSell Small Count %Share of sell-side trades that were small tradestaker_sell_medium_order_count_percentageSell Medium Count %Share of sell-side trades that were medium tradestaker_sell_large_order_count_percentageSell Large Count %Share of sell-side trades that were large tradesfrom datetime import date
from aperiodic import get_metrics
# Free preview — no API key required
df = get_metrics(
metric="flow",
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 every file covering the range — one per month before 2026-08-01, one per day from 2026-08-01 onwards
filesobject[]requiredFiles covering the requested date range, in chronological order. Data before 2026-08-01 is split by month (one file per calendar month, no `day`); data from 2026-08-01 onwards is split by day (one file per calendar day, with `day` set). The changeover falls on a month boundary, so a given month is served entirely one way or the other; a range spanning it returns the earlier months as monthly files followed by a daily file per day.
yearintegerrequiredYear of the data file
monthintegerrequiredMonth of the data file (1-12)
dayintegerDay of the data file (1-31). Present only on daily files, i.e. those covering 2026-08-01 onwards. Absent on monthly files, which cover an entire calendar month.
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": 2026,
"month": 6,
"url": "https://ohlcv.aperiodic.io/binance-futures/1h/BTCUSDT/2026-06.parquet?X-Amz-Expires=300&..."
},
{
"year": 2026,
"month": 7,
"url": "https://ohlcv.aperiodic.io/binance-futures/1h/BTCUSDT/2026-07.parquet?X-Amz-Expires=300&..."
},
{
"year": 2026,
"month": 8,
"day": 1,
"url": "https://ohlcv.aperiodic.io/binance-futures/1h/BTCUSDT/2026-08-01.parquet?X-Amz-Expires=300&..."
},
{
"year": 2026,
"month": 8,
"day": 2,
"url": "https://ohlcv.aperiodic.io/binance-futures/1h/BTCUSDT/2026-08-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/flow?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.