Aperiodic
DataAlpha
CatalogOrder FlowL1 & L2Derivatives & Market Data
Get Started

API Documentation

Explore the Aperiodic REST API for programmatic access to market data.

Authentication

X-API-KEY(apiKey in header)

API key obtained from your account settings

Metadata

GET/metadata/catalog

List Available Metrics

Returns the full catalog of available datasets with their fields. Use this endpoint to discover which metrics are available, understand their fields, and determine the correct :bucket value to use in /data/:bucket requests.

Successful response with the full metrics catalog

Schema
metricsobject[]required

Array of all available datasets with their fields

idstringrequired

Dataset identifier (used as the :bucket path parameter in /data/:bucket)

namestringrequired

Human-readable dataset name

descriptionstringrequired

Description of the dataset and what it contains

categorystringrequired

Category label for the dataset (e.g. 'Trades', 'Market Data', 'L1 (Top of Book)', 'L2 (Order Book)', 'Derivatives')

fieldsobject[]required

Available fields (columns) in this dataset

Example
{
  "metrics": [
    {
      "id": "ohlcv",
      "name": "OHLCV",
      "description": "Open, High, Low, Close, Volume candlestick data with notional volume.",
      "category": "Market Data",
      "fields": [
        {
          "name": "open",
          "label": "Open",
          "description": "Opening price for the interval"
        },
        {
          "name": "close",
          "label": "Close",
          "description": "Closing price for the interval"
        }
      ]
    }
  ]
}
curl
curl -H "X-API-KEY: YOUR_KEY" \
  "/api/v1/metadata/catalog"
GET/metadata/symbols

List Available Symbols

Returns all available trading pair symbols for a given exchange. Use this endpoint to discover which symbols have data before making data requests.

Query Parameters

exchangereqstring
string

Exchange to list symbols for.

binance-futuresokx-perps

Successful response with list of available symbols

Schema
symbolsstring[]required

Array of available trading pair symbols for the requested exchange

exchangestringrequired

The exchange for which symbols were returned

Example
{
  "symbols": [
    "perpetual-BTC-USDT:USDT",
    "perpetual-ETH-USDT:USDT"
  ],
  "exchange": "binance-futures"
}
curl
curl -H "X-API-KEY: YOUR_KEY" \
  "/api/v1/metadata/symbols?exchange=binance-futures"

Trades

GET/data/flow

Taker / Flow Metrics

Retrieves taker buy/sell volume, count, ratios, percentages, and size-segmented order flow (small/medium/large) for analyzing aggressive order flow. Flow metrics reveal the balance of buying versus selling pressure and help identify institutional versus retail activity through size segmentation. Fields: - time: Date milliseconds (UTC) - taker_buy_volume — Taker Buy Volume: Sum of buy taker volume - taker_sell_volume — Taker Sell Volume: Sum of sell taker volume - taker_buy_count — Taker Buy Count: Count of buy taker trades - taker_sell_count — Taker Sell Count: Count of sell taker trades - volume_delta — Volume Delta: taker_buy_volume minus taker_sell_volume (signed net flow) - taker_buy_sell_ratio — Buy/Sell Ratio: taker_buy_volume / taker_sell_volume - taker_buy_sell_count_ratio — Buy/Sell Count Ratio: taker_buy_count / taker_sell_count - taker_buy_sell_percentage — Taker Buy %: taker_buy_volume / (taker_buy_volume + taker_sell_volume) - taker_buy_sell_count_percentage — Taker Buy Count %: taker_buy_count / (taker_buy_count + taker_sell_count) - taker_buy_small_order_volume — Buy Small Order Volume: Notional value of small buy-side trades (< $100) - taker_buy_medium_order_volume — Buy Medium Order Volume: Notional value of medium buy-side trades ($100-$1,000) - taker_buy_large_order_volume — Buy Large Order Volume: Notional value of large buy-side trades (>= $1,000) - taker_sell_small_order_volume — Sell Small Order Volume: Notional value of small sell-side trades (< $100) - taker_sell_medium_order_volume — Sell Medium Order Volume: Notional value of medium sell-side trades ($100-$1,000) - taker_sell_large_order_volume — Sell Large Order Volume: Notional value of large sell-side trades (>= $1,000) - taker_buy_small_order_percentage — Buy Small Order %: taker_buy_small_order_volume / taker_buy_volume - taker_buy_large_order_percentage — Buy Large Order %: taker_buy_large_order_volume / taker_buy_volume - taker_sell_small_order_percentage — Sell Small Order %: taker_sell_small_order_volume / taker_sell_volume - taker_sell_large_order_percentage — Sell Large Order %: taker_sell_large_order_volume / taker_sell_volume - volume_delta_notional — Volume Delta Notional: Buy notional minus sell notional (signed net notional flow) - flow_entropy — Flow Entropy: Entropy of buy/sell volume split within the bar - flow_toxicity_score — Flow Toxicity Score: zscore(volume_delta_notional) x zscore(short-horizon realized vol) - taker_buy_small_order_count — Buy Small Order Count: Number of small buy-side trades - taker_buy_medium_order_count — Buy Medium Order Count: Number of medium buy-side trades - taker_buy_large_order_count — Buy Large Order Count: Number of large buy-side trades - taker_sell_small_order_count — Sell Small Order Count: Number of small sell-side trades - taker_sell_medium_order_count — Sell Medium Order Count: Number of medium sell-side trades - taker_sell_large_order_count — Sell Large Order Count: Number of large sell-side trades - taker_buy_medium_order_percentage — Buy Medium Order %: taker_buy_medium_order_volume / taker_buy_volume - taker_sell_medium_order_percentage — Sell Medium Order %: taker_sell_medium_order_volume / taker_sell_volume - taker_buy_small_order_count_percentage — Buy Small Count %: taker_buy_small_order_count / taker_buy_count - taker_buy_medium_order_count_percentage — Buy Medium Count %: taker_buy_medium_order_count / taker_buy_count - taker_buy_large_order_count_percentage — Buy Large Count %: taker_buy_large_order_count / taker_buy_count - taker_sell_small_order_count_percentage — Sell Small Count %: taker_sell_small_order_count / taker_sell_count - taker_sell_medium_order_count_percentage — Sell Medium Count %: taker_sell_medium_order_count / taker_sell_count - taker_sell_large_order_count_percentage — Sell Large Count %: taker_sell_large_order_count / taker_sell_count

Query Parameters

timestampreqstring
string

Timestamp source. 'exchange' uses the exchange-reported timestamp, 'true' uses actual arrival time at our servers.

exchangetrue
intervalreqstring
string

Aggregation time interval for the data.

1m5m15m30m1h4h1d
exchangereqstring
string

Source exchange for the data.

binance-futuresokx-perpshyperliquid-perps
symbolreqstring
string

Trading pair symbol in the format of Atlas' universal symbology: https://github.com/aperiodic-io/atlas

start_datereqstring<date>
string<date>

Start date for the data range (YYYY-MM-DD format). Data is partitioned by year and month.

end_datereqstring<date>
string<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

Schema
filesobject[]required

Array of file information for each month in the requested date range

yearintegerrequired

Year of the data file

monthintegerrequired

Month of the data file (1-12)

urlstring<uri>required

Presigned 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.

Example
{
  "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&..."
    }
  ]
}
curl
curl -H "X-API-KEY: YOUR_KEY" \
  "/api/v1/data/flow?timestamp=exchange&interval=1m&exchange=binance-futures&symbol=<symbol>&start_date=<start_date>&end_date=<end_date>"
GET/data/trade_size

Trade Size Distribution

Retrieves size-segmented order volume/count and comprehensive distribution statistics including mean, median, standard deviation, skewness, kurtosis, and percentiles. Trade size distribution analysis helps identify shifts in market participant composition and unusual activity patterns. Fields: - time: Date milliseconds (UTC) - small_order_volume — Small Order Volume: Notional value of small orders (< $100) - small_order_count — Small Order Count: Number of small orders - medium_order_volume — Medium Order Volume: Notional value of medium orders ($100-$1,000) - medium_order_count — Medium Order Count: Number of medium orders - large_order_volume — Large Order Volume: Notional value of large orders (>= $1,000) - large_order_count — Large Order Count: Number of large orders - volume — Total Volume: Total trade volume (sum of amounts) - n_trades — Trade Count: Number of all trades - small_order_percentage — Small Order %: small_order_volume / volume - large_order_percentage — Large Order %: large_order_volume / volume - trade_amount_mean — Mean Trade Size: Average trade size - trade_amount_median — Median Trade Size: Median trade size - trade_amount_std — Trade Size Std Dev: Standard deviation of trade size - trade_amount_skewness — Trade Size Skewness: Skewness of trade size distribution - trade_amount_kurtosis — Trade Size Kurtosis: Kurtosis of trade size distribution - trade_amount_min — Min Trade Size: Smallest trade size - trade_amount_max — Max Trade Size: Largest trade size - trade_amount_range_ratio — Trade Size Range Ratio: trade_amount_max / trade_amount_min - trade_amount_cv — Trade Size CV: Coefficient of variation (trade_amount_std / trade_amount_mean)

Query Parameters

timestampreqstring
string

Timestamp source. 'exchange' uses the exchange-reported timestamp, 'true' uses actual arrival time at our servers.

exchangetrue
intervalreqstring
string

Aggregation time interval for the data.

1m5m15m30m1h4h1d
exchangereqstring
string

Source exchange for the data.

binance-futuresokx-perpshyperliquid-perps
symbolreqstring
string

Trading pair symbol in the format of Atlas' universal symbology: https://github.com/aperiodic-io/atlas

start_datereqstring<date>
string<date>

Start date for the data range (YYYY-MM-DD format). Data is partitioned by year and month.

end_datereqstring<date>
string<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

Schema
filesobject[]required

Array of file information for each month in the requested date range

yearintegerrequired

Year of the data file

monthintegerrequired

Month of the data file (1-12)

urlstring<uri>required

Presigned 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.

Example
{
  "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&..."
    }
  ]
}
curl
curl -H "X-API-KEY: YOUR_KEY" \
  "/api/v1/data/trade_size?timestamp=exchange&interval=1m&exchange=binance-futures&symbol=<symbol>&start_date=<start_date>&end_date=<end_date>"
GET/data/impact

Market Impact Metrics

Retrieves market impact metrics including Amihud-like illiquidity, Kyle-like lambda, impact per notional, large trade reversal, and directional impact asymmetry. These metrics quantify how trades move prices and help assess market microstructure quality. Fields: - time: Date milliseconds (UTC) - amihud_like — Amihud Illiquidity: abs(bar_return) / dollar_volume - kyle_like_lambda — Kyle Lambda: cov(return, signed_size) / var(signed_size) - impact_per_notional — Impact per Notional: abs(bar_return) / abs(signed_notional) - large_trade_reversal — Large Trade Reversal: Mean next-5-trade return after top-decile trade sizes - directional_impact_asymmetry — Directional Impact Asymmetry: Buy-impact proxy minus sell-impact proxy

Query Parameters

timestampreqstring
string

Timestamp source. 'exchange' uses the exchange-reported timestamp, 'true' uses actual arrival time at our servers.

exchangetrue
intervalreqstring
string

Aggregation time interval for the data.

1m5m15m30m1h4h1d
exchangereqstring
string

Source exchange for the data.

binance-futuresokx-perpshyperliquid-perps
symbolreqstring
string

Trading pair symbol in the format of Atlas' universal symbology: https://github.com/aperiodic-io/atlas

start_datereqstring<date>
string<date>

Start date for the data range (YYYY-MM-DD format). Data is partitioned by year and month.

end_datereqstring<date>
string<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

Schema
filesobject[]required

Array of file information for each month in the requested date range

yearintegerrequired

Year of the data file

monthintegerrequired

Month of the data file (1-12)

urlstring<uri>required

Presigned 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.

Example
{
  "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&..."
    }
  ]
}
curl
curl -H "X-API-KEY: YOUR_KEY" \
  "/api/v1/data/impact?timestamp=exchange&interval=1m&exchange=binance-futures&symbol=<symbol>&start_date=<start_date>&end_date=<end_date>"
GET/data/range

Price Range & Distribution

Retrieves price high/low range, basis points, and full distribution statistics including mean, median, standard deviation, variance, skewness, kurtosis, range ratio, and coefficient of variation. These metrics characterize intra-interval price behavior and volatility structure, useful for volatility modeling and regime detection. Fields: - time: Date milliseconds (UTC) - range — Price Range: high minus low within interval - range_bps — Range (bps): Range as basis points of close price - price_mean — Mean Price: Mean trade price within interval - price_median — Median Price: Median trade price within interval - price_std — Price Std Dev: Standard deviation of trade prices - price_variance — Price Variance: Variance of trade prices - price_skewness — Price Skewness: Skewness of trade price distribution - price_kurtosis — Price Kurtosis: Kurtosis of trade price distribution - price_range_ratio — Price Range Ratio: high / low - price_cv — Price CV: Coefficient of variation (price_std / price_mean)

Query Parameters

timestampreqstring
string

Timestamp source. 'exchange' uses the exchange-reported timestamp, 'true' uses actual arrival time at our servers.

exchangetrue
intervalreqstring
string

Aggregation time interval for the data.

1m5m15m30m1h4h1d
exchangereqstring
string

Source exchange for the data.

binance-futuresokx-perpshyperliquid-perps
symbolreqstring
string

Trading pair symbol in the format of Atlas' universal symbology: https://github.com/aperiodic-io/atlas

start_datereqstring<date>
string<date>

Start date for the data range (YYYY-MM-DD format). Data is partitioned by year and month.

end_datereqstring<date>
string<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

Schema
filesobject[]required

Array of file information for each month in the requested date range

yearintegerrequired

Year of the data file

monthintegerrequired

Month of the data file (1-12)

urlstring<uri>required

Presigned 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.

Example
{
  "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&..."
    }
  ]
}
curl
curl -H "X-API-KEY: YOUR_KEY" \
  "/api/v1/data/range?timestamp=exchange&interval=1m&exchange=binance-futures&symbol=<symbol>&start_date=<start_date>&end_date=<end_date>"
GET/data/updownticks

Up / Down Tick Metrics

Retrieves uptick and downtick count, volume, ratios, and percentages based on price movement direction between consecutive trades. Tick direction analysis provides a granular view of buying and selling pressure that complements traditional volume analysis. Fields: - time: Date milliseconds (UTC) - uptick_count — Uptick Count: Number of trades where price moved up vs previous trade - downtick_count — Downtick Count: Number of trades where price moved down vs previous trade - uptick_volume — Uptick Volume: Sum of volume on uptick trades - downtick_volume — Downtick Volume: Sum of volume on downtick trades - unchanged_volume — Unchanged Volume: Sum of volume on unchanged-price trades - uptick_downtick_volume_ratio — Uptick/Downtick Volume Ratio: uptick_volume / downtick_volume - uptick_downtick_count_ratio — Uptick/Downtick Count Ratio: uptick_count / downtick_count - uptick_volume_percentage — Uptick Volume %: uptick_volume / (uptick + downtick + unchanged volume) - downtick_volume_percentage — Downtick Volume %: downtick_volume / (uptick + downtick + unchanged volume)

Query Parameters

timestampreqstring
string

Timestamp source. 'exchange' uses the exchange-reported timestamp, 'true' uses actual arrival time at our servers.

exchangetrue
intervalreqstring
string

Aggregation time interval for the data.

1m5m15m30m1h4h1d
exchangereqstring
string

Source exchange for the data.

binance-futuresokx-perpshyperliquid-perps
symbolreqstring
string

Trading pair symbol in the format of Atlas' universal symbology: https://github.com/aperiodic-io/atlas

start_datereqstring<date>
string<date>

Start date for the data range (YYYY-MM-DD format). Data is partitioned by year and month.

end_datereqstring<date>
string<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

Schema
filesobject[]required

Array of file information for each month in the requested date range

yearintegerrequired

Year of the data file

monthintegerrequired

Month of the data file (1-12)

urlstring<uri>required

Presigned 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.

Example
{
  "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&..."
    }
  ]
}
curl
curl -H "X-API-KEY: YOUR_KEY" \
  "/api/v1/data/updownticks?timestamp=exchange&interval=1m&exchange=binance-futures&symbol=<symbol>&start_date=<start_date>&end_date=<end_date>"
GET/data/run_structure

Trade Run Structure

Retrieves consecutive same-direction trade run statistics within each interval. Run structure analysis captures the persistence of buying or selling pressure, flip rate between directions, and price impact at direction changes. Fields: - time: Date milliseconds (UTC) - buy_run_max_len — Max Buy Run Length: Longest consecutive buy run within the interval - sell_run_max_len — Max Sell Run Length: Longest consecutive sell run within the interval - buy_run_mean_len — Mean Buy Run Length: Average buy run length - sell_run_mean_len — Mean Sell Run Length: Average sell run length - run_imbalance — Run Imbalance: (buy_run_max - sell_run_max) / (buy_run_max + sell_run_max); positive = buy-dominated - flip_rate — Flip Rate: Fraction of trades that switched direction from the prior trade - price_change_on_flip — Price Change on Flip: Average absolute fractional price change at direction flips

Query Parameters

timestampreqstring
string

Timestamp source. 'exchange' uses the exchange-reported timestamp, 'true' uses actual arrival time at our servers.

exchangetrue
intervalreqstring
string

Aggregation time interval for the data.

1m5m15m30m1h4h1d
exchangereqstring
string

Source exchange for the data.

binance-futuresokx-perpshyperliquid-perps
symbolreqstring
string

Trading pair symbol in the format of Atlas' universal symbology: https://github.com/aperiodic-io/atlas

start_datereqstring<date>
string<date>

Start date for the data range (YYYY-MM-DD format). Data is partitioned by year and month.

end_datereqstring<date>
string<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

Schema
filesobject[]required

Array of file information for each month in the requested date range

yearintegerrequired

Year of the data file

monthintegerrequired

Month of the data file (1-12)

urlstring<uri>required

Presigned 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.

Example
{
  "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&..."
    }
  ]
}
curl
curl -H "X-API-KEY: YOUR_KEY" \
  "/api/v1/data/run_structure?timestamp=exchange&interval=1m&exchange=binance-futures&symbol=<symbol>&start_date=<start_date>&end_date=<end_date>"
GET/data/returns

Returns & Volatility

Retrieves log-return based volatility metrics computed from trade-level data within each interval. Includes realized volatility, bipower variation for jump detection, return autocorrelation, and trendiness score. Fields: - time: Date milliseconds (UTC) - logret_var — Log-Return Variance: Variance of log-returns within the interval - realized_vol — Realized Volatility: Square root of sum of squared log-returns (realized volatility) - bipower_variation — Bipower Variation: (π/2) × Σ|r_t| × |r_{t-1}|; a jump-robust volatility estimator - jump_ratio — Jump Ratio: (realized_var - bipower_variation) / realized_var; fraction of variance attributed to jumps - ret_autocorr_lag1 — Return Autocorr (Lag 1): Lag-1 autocorrelation of log-returns; negative = mean-reverting, positive = trending - trendiness — Trendiness: |Σr_t| / Σ|r_t|; 1 = perfectly trending, 0 = fully mean-reverting

Query Parameters

timestampreqstring
string

Timestamp source. 'exchange' uses the exchange-reported timestamp, 'true' uses actual arrival time at our servers.

exchangetrue
intervalreqstring
string

Aggregation time interval for the data.

1m5m15m30m1h4h1d
exchangereqstring
string

Source exchange for the data.

binance-futuresokx-perpshyperliquid-perps
symbolreqstring
string

Trading pair symbol in the format of Atlas' universal symbology: https://github.com/aperiodic-io/atlas

start_datereqstring<date>
string<date>

Start date for the data range (YYYY-MM-DD format). Data is partitioned by year and month.

end_datereqstring<date>
string<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

Schema
filesobject[]required

Array of file information for each month in the requested date range

yearintegerrequired

Year of the data file

monthintegerrequired

Month of the data file (1-12)

urlstring<uri>required

Presigned 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.

Example
{
  "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&..."
    }
  ]
}
curl
curl -H "X-API-KEY: YOUR_KEY" \
  "/api/v1/data/returns?timestamp=exchange&interval=1m&exchange=binance-futures&symbol=<symbol>&start_date=<start_date>&end_date=<end_date>"
GET/data/slippage

Slippage

Retrieves per-trade execution slippage vs. the prevailing L1 quote at trade time (ASOF join). For buys: slippage = trade_price − ask_price. For sells: slippage = bid_price − trade_price. Negative slippage indicates price improvement. Fields: - time: Date milliseconds (UTC) - n_trades — Matched Trade Count: Number of trades matched to a prevailing quote - slippage_mean — Mean Slippage: Average slippage in price units - slippage_bps_mean — Mean Slippage (bps): Average slippage in basis points - slippage_bps_std — Slippage Std Dev (bps): Standard deviation of slippage in bps - slippage_bps_median — Median Slippage (bps): Median slippage in bps - slippage_bps_p95 — Slippage P95 (bps): 95th percentile slippage in bps - slippage_bps_vwap — VWAP Slippage (bps): Volume-weighted average slippage in bps - slippage_bps_buy_mean — Buy Slippage Mean (bps): Average slippage for buy-side trades in bps - slippage_bps_sell_mean — Sell Slippage Mean (bps): Average slippage for sell-side trades in bps - slippage_bps_buy_sell_ratio — Buy/Sell Slippage Ratio: slippage_bps_buy_mean / slippage_bps_sell_mean - slippage_bps_sell_buy_ratio — Sell/Buy Slippage Ratio: slippage_bps_sell_mean / slippage_bps_buy_mean

Query Parameters

timestampreqstring
string

Timestamp source. 'exchange' uses the exchange-reported timestamp, 'true' uses actual arrival time at our servers.

exchangetrue
intervalreqstring
string

Aggregation time interval for the data.

1m5m15m30m1h4h1d
exchangereqstring
string

Source exchange for the data.

binance-futuresokx-perpshyperliquid-perps
symbolreqstring
string

Trading pair symbol in the format of Atlas' universal symbology: https://github.com/aperiodic-io/atlas

start_datereqstring<date>
string<date>

Start date for the data range (YYYY-MM-DD format). Data is partitioned by year and month.

end_datereqstring<date>
string<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

Schema
filesobject[]required

Array of file information for each month in the requested date range

yearintegerrequired

Year of the data file

monthintegerrequired

Month of the data file (1-12)

urlstring<uri>required

Presigned 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.

Example
{
  "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&..."
    }
  ]
}
curl
curl -H "X-API-KEY: YOUR_KEY" \
  "/api/v1/data/slippage?timestamp=exchange&interval=1m&exchange=binance-futures&symbol=<symbol>&start_date=<start_date>&end_date=<end_date>"

Derivatives

GET/data/basis

Basis

Retrieves mark/index basis and mark-to-trade spread data for derivative instruments. Basis measures the difference between the derivatives mark price and the underlying index price, which is critical for basis trading strategies, convergence analysis, and fair value assessments. Fields: - time: Date milliseconds (UTC) - basis — Basis: Last value of mark_price minus index_price - basis_bps — Basis (bps): Last value of basis as basis points of index_price - mark_price_spread — Mark-Price Spread: Last value of mark_price minus last_price - mark_price_spread_bps — Mark-Price Spread (bps): Last value of mark_price_spread as basis points of last_price - basis_mean — Mean Basis: Average basis over the interval - basis_bps_std — Basis Std Dev (bps): Standard deviation of basis_bps over the interval - mark_price_spread_mean — Mean Mark-Price Spread: Average mark_price_spread over the interval - mark_price_spread_bps_std — Mark-Price Spread Std Dev (bps): Standard deviation of mark_price_spread_bps over the interval

Query Parameters

timestampreqstring
string

Timestamp source. 'exchange' uses the exchange-reported timestamp, 'true' uses actual arrival time at our servers.

exchangetrue
intervalreqstring
string

Aggregation time interval for the data.

1m5m15m30m1h4h1d
exchangereqstring
string

Source derivatives exchange for the data.

binance-futuresokx-perpshyperliquid-perps
symbolreqstring
string

Trading pair symbol in the format of Atlas' universal symbology: https://github.com/aperiodic-io/atlas

start_datereqstring<date>
string<date>

Start date for the data range (YYYY-MM-DD format). Data is partitioned by year and month.

end_datereqstring<date>
string<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

Schema
filesobject[]required

Array of file information for each month in the requested date range

yearintegerrequired

Year of the data file

monthintegerrequired

Month of the data file (1-12)

urlstring<uri>required

Presigned 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.

Example
{
  "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&..."
    }
  ]
}
curl
curl -H "X-API-KEY: YOUR_KEY" \
  "/api/v1/data/basis?timestamp=exchange&interval=1m&exchange=binance-futures&symbol=<symbol>&start_date=<start_date>&end_date=<end_date>"
GET/data/funding

Funding Rate

Retrieves funding rate and update frequencies for perpetual futures contracts. Funding rates are essential for carry trade analysis, cost-of-carry modeling, and sentiment gauging in derivatives markets. Fields: - time: Date milliseconds (UTC) - funding_rate — Funding Rate: Last funding rate in interval - funding_rate_update_frequency — Funding Rate Update Frequency: Number of funding_rate updates per second - funding_rate_avg_update_interval — Avg Funding Rate Update Interval: Average seconds between funding_rate updates

Query Parameters

timestampreqstring
string

Timestamp source. 'exchange' uses the exchange-reported timestamp, 'true' uses actual arrival time at our servers.

exchangetrue
intervalreqstring
string

Aggregation time interval for the data.

1m5m15m30m1h4h1d
exchangereqstring
string

Source derivatives exchange for the data.

binance-futuresokx-perpshyperliquid-perps
symbolreqstring
string

Trading pair symbol in the format of Atlas' universal symbology: https://github.com/aperiodic-io/atlas

start_datereqstring<date>
string<date>

Start date for the data range (YYYY-MM-DD format). Data is partitioned by year and month.

end_datereqstring<date>
string<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

Schema
filesobject[]required

Array of file information for each month in the requested date range

yearintegerrequired

Year of the data file

monthintegerrequired

Month of the data file (1-12)

urlstring<uri>required

Presigned 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.

Example
{
  "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&..."
    }
  ]
}
curl
curl -H "X-API-KEY: YOUR_KEY" \
  "/api/v1/data/funding?timestamp=exchange&interval=1m&exchange=binance-futures&symbol=<symbol>&start_date=<start_date>&end_date=<end_date>"
GET/data/open_interest

Open Interest

Retrieves open interest values with percentage change, volatility, and OI/price change ratio for derivative instruments. Open interest is a key indicator of market participation and can signal trend strength, potential reversals, and liquidity conditions. Fields: - time: Date milliseconds (UTC) - open_interest — Open Interest: Last open interest value in interval - open_interest_pct_change — Open Interest % Change: (last minus first) / first x 100 within interval - open_interest_volatility — Open Interest Volatility: Standard deviation of tick-by-tick pct changes within interval - oi_price_change_ratio — OI/Price Change Ratio: Open interest pct change / mark_price pct change

Query Parameters

timestampreqstring
string

Timestamp source. 'exchange' uses the exchange-reported timestamp, 'true' uses actual arrival time at our servers.

exchangetrue
intervalreqstring
string

Aggregation time interval for the data.

1m5m15m30m1h4h1d
exchangereqstring
string

Source derivatives exchange for the data.

binance-futuresokx-perpshyperliquid-perps
symbolreqstring
string

Trading pair symbol in the format of Atlas' universal symbology: https://github.com/aperiodic-io/atlas

start_datereqstring<date>
string<date>

Start date for the data range (YYYY-MM-DD format). Data is partitioned by year and month.

end_datereqstring<date>
string<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

Schema
filesobject[]required

Array of file information for each month in the requested date range

yearintegerrequired

Year of the data file

monthintegerrequired

Month of the data file (1-12)

urlstring<uri>required

Presigned 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.

Example
{
  "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&..."
    }
  ]
}
curl
curl -H "X-API-KEY: YOUR_KEY" \
  "/api/v1/data/open_interest?timestamp=exchange&interval=1m&exchange=binance-futures&symbol=<symbol>&start_date=<start_date>&end_date=<end_date>"
GET/data/derivative_price

Derivative Price

Retrieves mark, index, and last prices with percentage changes and pairwise ratios for derivative instruments. These price metrics enable analysis of price convergence, arbitrage opportunities, and mark-to-market dynamics across derivative venues. Fields: - time: Date milliseconds (UTC) - last_price — Last Price: Last traded price in interval - index_price — Index Price: Last index price in interval - mark_price — Mark Price: Last mark price in interval - last_price_pct_change — Last Price % Change: (last minus first) / first x 100 for last_price within interval - index_price_pct_change — Index Price % Change: (last minus first) / first x 100 for index_price within interval - mark_price_pct_change — Mark Price % Change: (last minus first) / first x 100 for mark_price within interval - mark_index_pct_change_ratio — Mark/Index % Change Ratio: mark_price_pct_change / index_price_pct_change - mark_last_pct_change_ratio — Mark/Last % Change Ratio: mark_price_pct_change / last_price_pct_change - index_last_pct_change_ratio — Index/Last % Change Ratio: index_price_pct_change / last_price_pct_change

Query Parameters

timestampreqstring
string

Timestamp source. 'exchange' uses the exchange-reported timestamp, 'true' uses actual arrival time at our servers.

exchangetrue
intervalreqstring
string

Aggregation time interval for the data.

1m5m15m30m1h4h1d
exchangereqstring
string

Source derivatives exchange for the data.

binance-futuresokx-perpshyperliquid-perps
symbolreqstring
string

Trading pair symbol in the format of Atlas' universal symbology: https://github.com/aperiodic-io/atlas

start_datereqstring<date>
string<date>

Start date for the data range (YYYY-MM-DD format). Data is partitioned by year and month.

end_datereqstring<date>
string<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

Schema
filesobject[]required

Array of file information for each month in the requested date range

yearintegerrequired

Year of the data file

monthintegerrequired

Month of the data file (1-12)

urlstring<uri>required

Presigned 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.

Example
{
  "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&..."
    }
  ]
}
curl
curl -H "X-API-KEY: YOUR_KEY" \
  "/api/v1/data/derivative_price?timestamp=exchange&interval=1m&exchange=binance-futures&symbol=<symbol>&start_date=<start_date>&end_date=<end_date>"

OHLCV

GET/data/ohlcv

OHLCV Candlestick

Retrieves Open, High, Low, Close, Volume (OHLCV) candlestick data for a specific symbol, exchange, and date range. OHLCV bars are the foundation of technical analysis and provide a standardized view of price action and trading activity within each interval. Fields: - time: Date milliseconds (UTC) - open — Open: First price in interval - high — High: Highest price in interval - low — Low: Lowest price in interval - close — Close: Last price in interval - volume — Total Volume: Sum of trade amounts in interval - volume_notional — Notional Volume: Sum of (amount x price) in interval

Query Parameters

timestampreqstring
string

Timestamp source. 'exchange' uses the exchange-reported timestamp, 'true' uses actual arrival time at our servers.

exchangetrue
intervalreqstring
string

Aggregation time interval for the data.

1m5m15m30m1h4h1d
exchangereqstring
string

Source exchange for the data.

binance-futuresokx-perpshyperliquid-perps
symbolreqstring
string

Trading pair symbol in the format of Atlas' universal symbology: https://github.com/aperiodic-io/atlas

start_datereqstring<date>
string<date>

Start date for the data range (YYYY-MM-DD format). Data is partitioned by year and month.

end_datereqstring<date>
string<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

Schema
filesobject[]required

Array of file information for each month in the requested date range

yearintegerrequired

Year of the data file

monthintegerrequired

Month of the data file (1-12)

urlstring<uri>required

Presigned 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.

Example
{
  "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&..."
    }
  ]
}
curl
curl -H "X-API-KEY: YOUR_KEY" \
  "/api/v1/data/ohlcv?timestamp=exchange&interval=1m&exchange=binance-futures&symbol=<symbol>&start_date=<start_date>&end_date=<end_date>"

VWAP / TWAP

GET/data/vtwap

VWAP / TWAP

Retrieves volume-weighted average price (VWAP) and time-weighted average price (TWAP) benchmarks for a specific symbol, exchange, and date range. These execution benchmarks are essential for measuring trade quality, slippage analysis, and algorithmic execution performance evaluation. Fields: - time: Date milliseconds (UTC) - vwap — VWAP: Volume-weighted average price (sum of amount x price / sum of amount) - twap — TWAP: Time-weighted average price (simple mean of trade prices)

Query Parameters

timestampreqstring
string

Timestamp source. 'exchange' uses the exchange-reported timestamp, 'true' uses actual arrival time at our servers.

exchangetrue
intervalreqstring
string

Aggregation time interval for the data.

1m5m15m30m1h4h1d
exchangereqstring
string

Source exchange for the data.

binance-futuresokx-perpshyperliquid-perps
symbolreqstring
string

Trading pair symbol in the format of Atlas' universal symbology: https://github.com/aperiodic-io/atlas

start_datereqstring<date>
string<date>

Start date for the data range (YYYY-MM-DD format). Data is partitioned by year and month.

end_datereqstring<date>
string<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

Schema
filesobject[]required

Array of file information for each month in the requested date range

yearintegerrequired

Year of the data file

monthintegerrequired

Month of the data file (1-12)

urlstring<uri>required

Presigned 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.

Example
{
  "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&..."
    }
  ]
}
curl
curl -H "X-API-KEY: YOUR_KEY" \
  "/api/v1/data/vtwap?timestamp=exchange&interval=1m&exchange=binance-futures&symbol=<symbol>&start_date=<start_date>&end_date=<end_date>"

L1 (Top of Book)

GET/data/l1_price

L1 Top-of-Book Price

Retrieves top-of-book ask/bid prices, amounts, midprice, weighted midprice, and quote update frequencies. L1 price data provides the tightest available quotes and is fundamental for spread analysis, execution quality measurement, and fair value estimation. Fields: - time: Date milliseconds (UTC) - ask_price — Ask Price: Last ask price in interval - bid_price — Bid Price: Last bid price in interval - ask_amount — Ask Amount: Last ask quantity in interval - bid_amount — Bid Amount: Last bid quantity in interval - quote_update_frequency — Quote Update Frequency: Number of L1 updates within interval - avg_update_interval — Avg Update Interval: Average milliseconds between L1 updates - midprice — Mid Price: (ask_price + bid_price) / 2 - weighted_midprice — Weighted Mid Price: (bid_price x ask_amount + ask_price x bid_amount) / (bid_amount + ask_amount)

Query Parameters

timestampreqstring
string

Timestamp source. 'exchange' uses the exchange-reported timestamp, 'true' uses actual arrival time at our servers.

exchangetrue
intervalreqstring
string

Aggregation time interval for the data.

1m5m15m30m1h4h1d
exchangereqstring
string

Source exchange for the data.

binance-futuresokx-perpshyperliquid-perps
symbolreqstring
string

Trading pair symbol in the format of Atlas' universal symbology: https://github.com/aperiodic-io/atlas

start_datereqstring<date>
string<date>

Start date for the data range (YYYY-MM-DD format). Data is partitioned by year and month.

end_datereqstring<date>
string<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

Schema
filesobject[]required

Array of file information for each month in the requested date range

yearintegerrequired

Year of the data file

monthintegerrequired

Month of the data file (1-12)

urlstring<uri>required

Presigned 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.

Example
{
  "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&..."
    }
  ]
}
curl
curl -H "X-API-KEY: YOUR_KEY" \
  "/api/v1/data/l1_price?timestamp=exchange&interval=1m&exchange=binance-futures&symbol=<symbol>&start_date=<start_date>&end_date=<end_date>"
GET/data/l1_imbalance

L1 Top-of-Book Imbalance

Retrieves bid/ask imbalance, ratio, and percentage metrics from the top-of-book, both as instantaneous (last) values and averaged over the interval. L1 imbalance is a leading indicator of short-term price direction and is widely used in high-frequency and market-making strategies. Fields: - time: Date milliseconds (UTC) - imbalance — Imbalance: Last value of bid_amount minus ask_amount - imbalance_ratio — Imbalance Ratio: Last value of (bid_amount minus ask_amount) / (bid_amount + ask_amount) - bid_ask_ratio — Bid/Ask Ratio: Last value of bid_amount / ask_amount - bid_percentage — Bid %: Last value of bid_amount / (bid_amount + ask_amount) - imbalance_avg — Avg Imbalance: Average of bid_amount minus ask_amount over the interval - imbalance_ratio_avg — Avg Imbalance Ratio: Average of imbalance_ratio over the interval - bid_ask_ratio_avg — Avg Bid/Ask Ratio: Average of bid_ask_ratio over the interval

Query Parameters

timestampreqstring
string

Timestamp source. 'exchange' uses the exchange-reported timestamp, 'true' uses actual arrival time at our servers.

exchangetrue
intervalreqstring
string

Aggregation time interval for the data.

1m5m15m30m1h4h1d
exchangereqstring
string

Source exchange for the data.

binance-futuresokx-perpshyperliquid-perps
symbolreqstring
string

Trading pair symbol in the format of Atlas' universal symbology: https://github.com/aperiodic-io/atlas

start_datereqstring<date>
string<date>

Start date for the data range (YYYY-MM-DD format). Data is partitioned by year and month.

end_datereqstring<date>
string<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

Schema
filesobject[]required

Array of file information for each month in the requested date range

yearintegerrequired

Year of the data file

monthintegerrequired

Month of the data file (1-12)

urlstring<uri>required

Presigned 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.

Example
{
  "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&..."
    }
  ]
}
curl
curl -H "X-API-KEY: YOUR_KEY" \
  "/api/v1/data/l1_imbalance?timestamp=exchange&interval=1m&exchange=binance-futures&symbol=<symbol>&start_date=<start_date>&end_date=<end_date>"
GET/data/l1_liquidity

L1 Top-of-Book Liquidity

Retrieves spread (absolute and basis points), depth, dollar depth, and spread-depth ratio metrics from the top-of-book, both as instantaneous values and interval-averaged. These liquidity metrics are essential for transaction cost analysis (TCA), optimal execution scheduling, and monitoring market quality over time. Fields: - time: Date milliseconds (UTC) - spread — Spread: Last value of ask_price minus bid_price - spread_bps — Spread (bps): Last value of spread as basis points of midprice - spread_depth_ratio — Spread/Depth Ratio: Last value of spread / (bid_amount + ask_amount) - total_depth — Total Depth: Last value of bid_amount + ask_amount - dollar_depth_bid — Bid Dollar Depth: Last value of bid_price x bid_amount - dollar_depth_ask — Ask Dollar Depth: Last value of ask_price x ask_amount - total_dollar_depth — Total Dollar Depth: Last value of dollar_depth_bid + dollar_depth_ask - spread_avg — Avg Spread: Average of spread over the interval - spread_bps_avg — Avg Spread (bps): Average of spread_bps over the interval - total_depth_avg — Avg Total Depth: Average of total_depth over the interval - total_dollar_depth_avg — Avg Total Dollar Depth: Average of total_dollar_depth over the interval

Query Parameters

timestampreqstring
string

Timestamp source. 'exchange' uses the exchange-reported timestamp, 'true' uses actual arrival time at our servers.

exchangetrue
intervalreqstring
string

Aggregation time interval for the data.

1m5m15m30m1h4h1d
exchangereqstring
string

Source exchange for the data.

binance-futuresokx-perpshyperliquid-perps
symbolreqstring
string

Trading pair symbol in the format of Atlas' universal symbology: https://github.com/aperiodic-io/atlas

start_datereqstring<date>
string<date>

Start date for the data range (YYYY-MM-DD format). Data is partitioned by year and month.

end_datereqstring<date>
string<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

Schema
filesobject[]required

Array of file information for each month in the requested date range

yearintegerrequired

Year of the data file

monthintegerrequired

Month of the data file (1-12)

urlstring<uri>required

Presigned 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.

Example
{
  "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&..."
    }
  ]
}
curl
curl -H "X-API-KEY: YOUR_KEY" \
  "/api/v1/data/l1_liquidity?timestamp=exchange&interval=1m&exchange=binance-futures&symbol=<symbol>&start_date=<start_date>&end_date=<end_date>"

L2 (Order Book)

GET/data/l2_imbalance

L2 Order Book Imbalance

Retrieves multi-depth order book imbalance metrics at 5, 10, 20, and 25 price levels. Each metric is available both as a point-in-time snapshot (last value) and averaged over the interval. Deeper order book imbalance captures the full supply/demand picture beyond the top of book, providing valuable signals for position sizing, execution timing, and short-term alpha generation. Fields: - time: Date milliseconds (UTC) - imbalance_5 — Imbalance (5 levels): Last value of (top-5 bid qty minus top-5 ask qty) - imbalance_10 — Imbalance (10 levels): Last value of (top-10 bid qty minus top-10 ask qty) - imbalance_20 — Imbalance (20 levels): Last value of (top-20 bid qty minus top-20 ask qty) - imbalance_25 — Imbalance (25 levels): Last value of (top-25 bid qty minus top-25 ask qty) - imbalance_ratio_5 — Imbalance Ratio (5 levels): Last value of (top-5 bid qty minus top-5 ask qty) / (top-5 bid qty + top-5 ask qty) - imbalance_ratio_10 — Imbalance Ratio (10 levels): Last value of (top-10 bid qty minus top-10 ask qty) / (top-10 bid qty + top-10 ask qty) - imbalance_ratio_20 — Imbalance Ratio (20 levels): Last value of (top-20 bid qty minus top-20 ask qty) / (top-20 bid qty + top-20 ask qty) - imbalance_ratio_25 — Imbalance Ratio (25 levels): Last value of (top-25 bid qty minus top-25 ask qty) / (top-25 bid qty + top-25 ask qty) - bid_ask_ratio_5 — Bid/Ask Ratio (5 levels): Last value of top-5 bid qty / top-5 ask qty - bid_ask_ratio_10 — Bid/Ask Ratio (10 levels): Last value of top-10 bid qty / top-10 ask qty - bid_ask_ratio_20 — Bid/Ask Ratio (20 levels): Last value of top-20 bid qty / top-20 ask qty - bid_ask_ratio_25 — Bid/Ask Ratio (25 levels): Last value of top-25 bid qty / top-25 ask qty - imbalance_5_avg — Avg Imbalance (5 levels): Average of imbalance_5 over the interval - imbalance_10_avg — Avg Imbalance (10 levels): Average of imbalance_10 over the interval - imbalance_20_avg — Avg Imbalance (20 levels): Average of imbalance_20 over the interval - imbalance_25_avg — Avg Imbalance (25 levels): Average of imbalance_25 over the interval - imbalance_ratio_5_avg — Avg Imbalance Ratio (5 levels): Average of imbalance_ratio_5 over the interval - imbalance_ratio_10_avg — Avg Imbalance Ratio (10 levels): Average of imbalance_ratio_10 over the interval - imbalance_ratio_20_avg — Avg Imbalance Ratio (20 levels): Average of imbalance_ratio_20 over the interval - imbalance_ratio_25_avg — Avg Imbalance Ratio (25 levels): Average of imbalance_ratio_25 over the interval - bid_ask_ratio_5_avg — Avg Bid/Ask Ratio (5 levels): Average of bid_ask_ratio_5 over the interval - bid_ask_ratio_10_avg — Avg Bid/Ask Ratio (10 levels): Average of bid_ask_ratio_10 over the interval - bid_ask_ratio_20_avg — Avg Bid/Ask Ratio (20 levels): Average of bid_ask_ratio_20 over the interval - bid_ask_ratio_25_avg — Avg Bid/Ask Ratio (25 levels): Average of bid_ask_ratio_25 over the interval

Query Parameters

timestampreqstring
string

Timestamp source. 'exchange' uses the exchange-reported timestamp, 'true' uses actual arrival time at our servers.

exchangetrue
intervalreqstring
string

Aggregation time interval for the data.

1m5m15m30m1h4h1d
exchangereqstring
string

Source exchange for L2 order book data.

binance-futuresokx-perps
symbolreqstring
string

Trading pair symbol in the format of Atlas' universal symbology: https://github.com/aperiodic-io/atlas

start_datereqstring<date>
string<date>

Start date for the data range (YYYY-MM-DD format). Data is partitioned by year and month.

end_datereqstring<date>
string<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

Schema
filesobject[]required

Array of file information for each month in the requested date range

yearintegerrequired

Year of the data file

monthintegerrequired

Month of the data file (1-12)

urlstring<uri>required

Presigned 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.

Example
{
  "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&..."
    }
  ]
}
curl
curl -H "X-API-KEY: YOUR_KEY" \
  "/api/v1/data/l2_imbalance?timestamp=exchange&interval=1m&exchange=binance-futures&symbol=<symbol>&start_date=<start_date>&end_date=<end_date>"
GET/data/l2_liquidity

L2 Order Book Liquidity

Retrieves total bid and ask depth aggregated over 5, 10, 20, and 25 order book levels. Provides both last-value (instantaneous) and interval-averaged depth measurements for each level count. Fields: - time: Date milliseconds (UTC) - ask_agg_5 — Ask Aggregate (5 levels): Last value of total ask quantity summed over levels 0..4 - ask_agg_10 — Ask Aggregate (10 levels): Last value of total ask quantity summed over levels 0..9 - ask_agg_20 — Ask Aggregate (20 levels): Last value of total ask quantity summed over levels 0..19 - ask_agg_25 — Ask Aggregate (25 levels): Last value of total ask quantity summed over levels 0..24 - bid_agg_5 — Bid Aggregate (5 levels): Last value of total bid quantity summed over levels 0..4 - bid_agg_10 — Bid Aggregate (10 levels): Last value of total bid quantity summed over levels 0..9 - bid_agg_20 — Bid Aggregate (20 levels): Last value of total bid quantity summed over levels 0..19 - bid_agg_25 — Bid Aggregate (25 levels): Last value of total bid quantity summed over levels 0..24 - ask_agg_5_avg — Avg Ask Aggregate (5 levels): Average of ask_agg_5 over the interval - ask_agg_10_avg — Avg Ask Aggregate (10 levels): Average of ask_agg_10 over the interval - ask_agg_20_avg — Avg Ask Aggregate (20 levels): Average of ask_agg_20 over the interval - ask_agg_25_avg — Avg Ask Aggregate (25 levels): Average of ask_agg_25 over the interval - bid_agg_5_avg — Avg Bid Aggregate (5 levels): Average of bid_agg_5 over the interval - bid_agg_10_avg — Avg Bid Aggregate (10 levels): Average of bid_agg_10 over the interval - bid_agg_20_avg — Avg Bid Aggregate (20 levels): Average of bid_agg_20 over the interval - bid_agg_25_avg — Avg Bid Aggregate (25 levels): Average of bid_agg_25 over the interval

Query Parameters

timestampreqstring
string

Timestamp source. 'exchange' uses the exchange-reported timestamp, 'true' uses actual arrival time at our servers.

exchangetrue
intervalreqstring
string

Aggregation time interval for the data.

1m5m15m30m1h4h1d
exchangereqstring
string

Source exchange for L2 order book data.

binance-futuresokx-perps
symbolreqstring
string

Trading pair symbol in the format of Atlas' universal symbology: https://github.com/aperiodic-io/atlas

start_datereqstring<date>
string<date>

Start date for the data range (YYYY-MM-DD format). Data is partitioned by year and month.

end_datereqstring<date>
string<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

Schema
filesobject[]required

Array of file information for each month in the requested date range

yearintegerrequired

Year of the data file

monthintegerrequired

Month of the data file (1-12)

urlstring<uri>required

Presigned 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.

Example
{
  "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&..."
    }
  ]
}
curl
curl -H "X-API-KEY: YOUR_KEY" \
  "/api/v1/data/l2_liquidity?timestamp=exchange&interval=1m&exchange=binance-futures&symbol=<symbol>&start_date=<start_date>&end_date=<end_date>"
Metadata
Trades
Derivatives
OHLCV
VWAP / TWAP
L1 (Top of Book)
L2 (Order Book)
Aperiodic

Institutional-Grade Order Flow, Liquidity & Derivative Metrics — Turn market microstructure into actionable signals, alpha and analytics in minutes.

© Copyright 2026 Aperiodic. All Rights Reserved.

Product
  • Data Catalog
  • Pricing
  • API Docs
  • Notebooks
  • Roadmap
  • Changelog
  • FAQ
  • For AI Agents
Metrics
  • Order Flow
  • L1 — Top of Book
  • L2 — Order Book
  • Market Data
  • Derivatives
Channels
  • Research Insights
  • Microstructure Guide
  • Telegram
  • Twitter/X
  • LinkedIn
Company
  • Contact
  • Book a call
  • Terms of Service
  • Privacy Policy
  • LLM? Read this.

NOT INVESTMENT ADVICE

The Content is for informational purposes only, you should not construe any such information or other material as legal tax, investment, financial, or other advice. Nothing contained on our presentation constitutes a solicitation, recommendation, endorsement, or offer by Aperiodic or any third party service provider to buy or sell any securities or other financial instruments in this or in in any other jurisdiction in which such solicitation or offer would be unlawful under the securities laws of such jurisdiction.

All Content on this presentation is information of a general nature and does not address the circumstances of any particular individual or entity. Nothing in the presentation constitutes professional and/or financial advice, nor does any information on the Presentation constitute a comprehensive or complete statement of the matters discussed or the law relating thereto.

Aperiodic is not a fiduciary by virtue of any person's use of or access to the Presentation or Content. You alone assume the sole responsibility of evaluating the merits and risks associated with the use of any information or other Content on the Presentation before making any decisions based on such information or other Content. In exchange for using the Presentation, you agree not to hold Aperiodic, its affiliates or any third party service provider liable for any possible claim for damages arising from any decision you make based on information or other Content made available to you through the Presentation.

INVESTMENT RISKS

There are risks associated with investing in securities. Investing in stocks, bonds, exchange traded funds, mutual funds, and money market funds involve risk of loss. Loss of principal is possible. Some high risk investments may use leverage, which will accentuate gains & losses. Foreign investing involves special risks, including a greater volatility and political, economic and currency risks and differences in accounting methods. A security's or a firm's past investment performance is not a guarantee or predictor of future investment performance.