Aperiodic
DataFactors
Catalog
Notebooks
Pricing
Get Started

API Documentation

Programmatic access to point-in-time market microstructure aggregates. Authenticate with your API key and pull order flow, book depth, derivatives and OHLCV metrics as monthly Parquet files.

Base URL

/api/v1

Auth

X-API-KEY

Payload

JSON → Parquet

Version

1.3.0

Browse the data catalog →Download the OpenAPI spec →Get an API key
Metadata
Trades
Derivatives
Market Data
L1 (Top of Book)
L2 (Order Book)

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

fieldsobject[]required

Available fields (columns) in this dataset

Example
{
  "metrics": [
    {
      "id": "flow",
      "name": "Flow Metrics",
      "description": "Directional order flow split by taker buy vs. sell, broken into small/medium/large notional segments, with a flow toxicity score.",
      "category": "Trades",
      "fields": [
        {
          "name": "taker_buy_volume",
          "label": "Taker Buy Volume",
          "description": "Total buy-side traded quantity in the interval"
        },
        {
          "name": "taker_sell_volume",
          "label": "Taker Sell Volume",
          "description": "Total sell-side traded quantity in the interval"
        }
      ]
    }
  ]
}
curl
curl -H "X-API-KEY: YOUR_KEY" \
  "/api/v1/metadata/catalog"
Authentication
GET/api/v1/metadata/catalog
Response will appear here
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-perpshyperliquid-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"
Authentication
GET/api/v1/metadata/symbols?exchange=binance-futures
Response will appear here

Trades

GET/data/flow

Flow Metrics

Directional order flow split by taker buy vs. sell, broken into small/medium/large notional segments, with a flow toxicity score. Access: Tier 1 and above. Fields: - time — Time: Interval start, in milliseconds since the Unix epoch (UTC) - taker_buy_volume — Taker Buy Volume: Total buy-side traded quantity in the interval - taker_sell_volume — Taker Sell Volume: Total sell-side traded quantity in the interval - taker_buy_count — Taker Buy Count: Number of buy-side trades in the interval - taker_sell_count — Taker Sell Count: Number of sell-side trades in the interval - volume_delta — Volume Delta: Buy-side traded quantity minus sell-side traded quantity - volume_delta_notional — Volume Delta Notional: Buy-side traded notional minus sell-side traded notional - flow_entropy — Flow Entropy: Entropy of the buy-versus-sell quantity split in the interval - flow_toxicity_score — Flow Toxicity Score: Past-normalized signed notional flow multiplied by past-normalized short-horizon realized volatility - taker_buy_sell_ratio — Buy/Sell Ratio: Buy-side traded quantity divided by sell-side traded quantity - taker_buy_sell_count_ratio — Buy/Sell Count Ratio: Buy-side trade count divided by sell-side trade count - taker_buy_sell_percentage — Taker Buy %: Share of traded quantity that came from buy-side trades - taker_buy_sell_count_percentage — Taker Buy Count %: Share of trades that were buy-side trades - taker_buy_small_order_volume — Buy Small Order Volume: Total buy-side notional from small trades under $100 - taker_buy_small_order_count — Buy Small Order Count: Number of buy-side trades under $100 - taker_buy_medium_order_volume — Buy Medium Order Volume: Total buy-side notional from medium trades from $100 to under $1,000 - taker_buy_medium_order_count — Buy Medium Order Count: Number of buy-side trades from $100 to under $1,000 - taker_buy_large_order_volume — Buy Large Order Volume: Total buy-side notional from large trades of at least $1,000 - taker_buy_large_order_count — Buy Large Order Count: Number of buy-side trades of at least $1,000 - taker_sell_small_order_volume — Sell Small Order Volume: Total sell-side notional from small trades under $100 - taker_sell_small_order_count — Sell Small Order Count: Number of sell-side trades under $100 - taker_sell_medium_order_volume — Sell Medium Order Volume: Total sell-side notional from medium trades from $100 to under $1,000 - taker_sell_medium_order_count — Sell Medium Order Count: Number of sell-side trades from $100 to under $1,000 - taker_sell_large_order_volume — Sell Large Order Volume: Total sell-side notional from large trades of at least $1,000 - taker_sell_large_order_count — Sell Large Order Count: Number of sell-side trades of at least $1,000 - taker_buy_small_order_percentage — Buy Small Order %: Ratio of small buy-side trade notional to total buy-side traded quantity - taker_buy_medium_order_percentage — Buy Medium Order %: Ratio of medium buy-side trade notional to total buy-side traded quantity - taker_buy_large_order_percentage — Buy Large Order %: Ratio of large buy-side trade notional to total buy-side traded quantity - taker_buy_small_order_count_percentage — Buy Small Count %: Share of buy-side trades that were small trades - taker_buy_medium_order_count_percentage — Buy Medium Count %: Share of buy-side trades that were medium trades - taker_buy_large_order_count_percentage — Buy Large Count %: Share of buy-side trades that were large trades - taker_sell_small_order_percentage — Sell Small Order %: Ratio of small sell-side trade notional to total sell-side traded quantity - taker_sell_medium_order_percentage — Sell Medium Order %: Ratio of medium sell-side trade notional to total sell-side traded quantity - taker_sell_large_order_percentage — Sell Large Order %: Ratio of large sell-side trade notional to total sell-side traded quantity - taker_sell_small_order_count_percentage — Sell Small Count %: Share of sell-side trades that were small trades - taker_sell_medium_order_count_percentage — Sell Medium Count %: Share of sell-side trades that were medium trades - taker_sell_large_order_count_percentage — Sell Large Count %: Share of sell-side trades that were large trades

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. Sub-minute intervals (15s, 30s) require a Tier 3 subscription.

15s30s1m5m15m30m1h4h1d
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=15s&exchange=binance-futures&symbol=<symbol>&start_date=<start_date>&end_date=<end_date>"
Suggestions shown — any valid value accepted
Suggestions shown — any valid value accepted
Suggestions shown — any valid value accepted
Authentication
GET/api/v1/data/flow?timestamp=exchange&interval=15s&exchange=binance-futures
Response will appear here
GET/data/trade_size

Trade Size

Trade notional split into small (< $100), medium ($100–$1,000), and large (≥ $1,000) segments, with summary statistics for individual trade sizes. Access: Tier 1 and above. Fields: - time — Time: Interval start, in milliseconds since the Unix epoch (UTC) - small_order_volume — Small Order Volume: Total traded notional from small trades under $100 - small_order_count — Small Order Count: Number of trades under $100 - medium_order_volume — Medium Order Volume: Total traded notional from medium trades from $100 to under $1,000 - medium_order_count — Medium Order Count: Number of trades from $100 to under $1,000 - large_order_volume — Large Order Volume: Total traded notional from large trades of at least $1,000 - large_order_count — Large Order Count: Number of trades of at least $1,000 - volume — Total Volume: Total traded quantity in the interval - n_trades — Trade Count: Number of trades in the interval - small_order_percentage — Small Order %: Ratio of small-trade notional to total traded quantity - medium_order_percentage — Medium Order %: Ratio of medium-trade notional to total traded quantity - large_order_percentage — Large Order %: Ratio of large-trade notional to total traded quantity - small_order_count_percentage — Small Order Count %: Share of trades that were small trades - medium_order_count_percentage — Medium Order Count %: Share of trades that were medium trades - large_order_count_percentage — Large Order Count %: Share of trades that were large trades - trade_amount_mean — Mean Trade Size: Average trade quantity - trade_amount_median — Median Trade Size: Median trade quantity - trade_amount_std — Trade Size Std Dev: Standard deviation of trade quantity - trade_amount_variance — Trade Size Variance: Variance of trade quantity - trade_amount_skewness — Trade Size Skewness: Skewness of the trade-quantity distribution - trade_amount_kurtosis — Trade Size Kurtosis: Kurtosis of the trade-quantity distribution - trade_amount_min — Min Trade Size: Smallest trade quantity in the interval - trade_amount_max — Max Trade Size: Largest trade quantity in the interval - trade_amount_range_ratio — Trade Size Range Ratio: Largest trade quantity divided by smallest trade quantity - trade_amount_cv — Trade Size CV: Coefficient of variation of trade quantity

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. Sub-minute intervals (15s, 30s) require a Tier 3 subscription.

15s30s1m5m15m30m1h4h1d
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=15s&exchange=binance-futures&symbol=<symbol>&start_date=<start_date>&end_date=<end_date>"
Suggestions shown — any valid value accepted
Suggestions shown — any valid value accepted
Suggestions shown — any valid value accepted
Authentication
GET/api/v1/data/trade_size?timestamp=exchange&interval=15s&exchange=binance-futures
Response will appear here
GET/data/range

Price Range & Distribution

Intrabar high-low price range and full distribution statistics (mean, median, std, skewness, kurtosis) for trade prices within each interval. Access: Tier 1 and above. Fields: - time — Time: Interval start, in milliseconds since the Unix epoch (UTC) - range — Price Range: Highest trade price minus lowest trade price - range_bps — Range (bps): High-low trade price range in basis points of the closing price - price_mean — Mean Price: Average trade price in the interval - price_median — Median Price: Median trade price in the interval - price_std — Price Std Dev: Standard deviation of trade prices in the interval - price_variance — Price Variance: Variance of trade prices in the interval - price_skewness — Price Skewness: Skewness of the trade-price distribution - price_kurtosis — Price Kurtosis: Kurtosis of the trade-price distribution - price_range_ratio — Price Range Ratio: Highest trade price divided by lowest trade price - price_cv — Price CV: Coefficient of variation of trade price

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. Sub-minute intervals (15s, 30s) require a Tier 3 subscription.

15s30s1m5m15m30m1h4h1d
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=15s&exchange=binance-futures&symbol=<symbol>&start_date=<start_date>&end_date=<end_date>"
Suggestions shown — any valid value accepted
Suggestions shown — any valid value accepted
Suggestions shown — any valid value accepted
Authentication
GET/api/v1/data/range?timestamp=exchange&interval=15s&exchange=binance-futures
Response will appear here
GET/data/impact

Impact Metrics

How much each unit of trading volume moves the price, measured via Amihud illiquidity, Kyle lambda, impact per notional, and large-trade reversal. Access: Tier 2 and above. Fields: - time — Time: Interval start, in milliseconds since the Unix epoch (UTC) - amihud_like — Amihud Illiquidity: Absolute interval return divided by total traded notional - kyle_like_lambda — Kyle Lambda: Covariance of trade returns and signed trade size divided by signed-size variance - impact_per_notional — Impact per Notional: Absolute interval return divided by absolute signed notional flow - large_trade_reversal — Large Trade Reversal: Average five-trade-ahead return after trades in the top 10% by notional - directional_impact_asymmetry — Directional Impact Asymmetry: Average buy-trade price impact minus average sell-trade price impact

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. Sub-minute intervals (15s, 30s) require a Tier 3 subscription.

15s30s1m5m15m30m1h4h1d
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=15s&exchange=binance-futures&symbol=<symbol>&start_date=<start_date>&end_date=<end_date>"
Suggestions shown — any valid value accepted
Suggestions shown — any valid value accepted
Suggestions shown — any valid value accepted
Authentication
GET/api/v1/data/impact?timestamp=exchange&interval=15s&exchange=binance-futures
Response will appear here
GET/data/updownticks

Up / Down Tick Metrics

Uptick and downtick count, volume, ratios and percentages based on price movement direction. Access: Tier 2 and above. Fields: - time — Time: Interval start, in milliseconds since the Unix epoch (UTC) - uptick_count — Uptick Count: Number of trades priced above the previous trade - downtick_count — Downtick Count: Number of trades priced below the previous trade - unchanged_count — Unchanged Count: Number of trades priced the same as the previous trade - uptick_volume — Uptick Volume: Total traded quantity on upticks - downtick_volume — Downtick Volume: Total traded quantity on downticks - unchanged_volume — Unchanged Volume: Total traded quantity on unchanged ticks - uptick_downtick_volume_ratio — Uptick/Downtick Volume Ratio: Uptick traded quantity divided by downtick traded quantity - uptick_downtick_count_ratio — Uptick/Downtick Count Ratio: Uptick trade count divided by downtick trade count - uptick_count_percentage — Uptick Count %: Share of trades that were upticks - downtick_count_percentage — Downtick Count %: Share of trades that were downticks - unchanged_count_percentage — Unchanged Count %: Share of trades that were unchanged ticks - uptick_volume_percentage — Uptick Volume %: Share of traded quantity that occurred on upticks - downtick_volume_percentage — Downtick Volume %: Share of traded quantity that occurred on downticks - unchanged_volume_percentage — Unchanged Volume %: Share of traded quantity that occurred on unchanged ticks

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. Sub-minute intervals (15s, 30s) require a Tier 3 subscription.

15s30s1m5m15m30m1h4h1d
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=15s&exchange=binance-futures&symbol=<symbol>&start_date=<start_date>&end_date=<end_date>"
Suggestions shown — any valid value accepted
Suggestions shown — any valid value accepted
Suggestions shown — any valid value accepted
Authentication
GET/api/v1/data/updownticks?timestamp=exchange&interval=15s&exchange=binance-futures
Response will appear here
GET/data/run_structure

Trade Run Structure

Consecutive same-direction trade run lengths, imbalance, flip rate, and price change on direction flip. Access: Tier 2 and above. Fields: - time — Time: Interval start, in milliseconds since the Unix epoch (UTC) - buy_run_max_len — Max Buy Run Length: Longest consecutive run of buy-side trades - sell_run_max_len — Max Sell Run Length: Longest consecutive run of sell-side trades - buy_run_mean_len — Mean Buy Run Length: Average length of consecutive buy-side runs - sell_run_mean_len — Mean Sell Run Length: Average length of consecutive sell-side runs - run_imbalance — Run Imbalance: Normalized difference between the longest buy run and longest sell run - flip_rate — Flip Rate: Share of trades whose side flipped versus the previous trade - price_change_on_flip — Price Change on Flip: Average absolute price change when trade 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. Sub-minute intervals (15s, 30s) require a Tier 3 subscription.

15s30s1m5m15m30m1h4h1d
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=15s&exchange=binance-futures&symbol=<symbol>&start_date=<start_date>&end_date=<end_date>"
Suggestions shown — any valid value accepted
Suggestions shown — any valid value accepted
Suggestions shown — any valid value accepted
Authentication
GET/api/v1/data/run_structure?timestamp=exchange&interval=15s&exchange=binance-futures
Response will appear here
GET/data/returns

Returns & Volatility

Log-return based metrics: variance, realized volatility, bipower variation, jump ratio, autocorrelation, and trendiness. Access: Tier 2 and above. Fields: - time — Time: Interval start, in milliseconds since the Unix epoch (UTC) - logret_var — Log-Return Variance: Variance of log returns within the interval - realized_vol — Realized Volatility: Square root of the sum of squared log returns in the interval - bipower_variation — Bipower Variation: Jump-robust volatility estimate built from adjacent absolute log returns - jump_ratio — Jump Ratio: Share of realized variance not explained by bipower variation - ret_autocorr_lag1 — Return Autocorr (Lag 1): Lag-one autocorrelation of log returns within the interval - trendiness — Trendiness: Absolute net log return divided by total absolute log return

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. Sub-minute intervals (15s, 30s) require a Tier 3 subscription.

15s30s1m5m15m30m1h4h1d
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=15s&exchange=binance-futures&symbol=<symbol>&start_date=<start_date>&end_date=<end_date>"
Suggestions shown — any valid value accepted
Suggestions shown — any valid value accepted
Suggestions shown — any valid value accepted
Authentication
GET/api/v1/data/returns?timestamp=exchange&interval=15s&exchange=binance-futures
Response will appear here
GET/data/slippage

Slippage

How much each trade pays above the best ask (buys) or receives below the best bid (sells) relative to the prevailing quote, aggregated per interval. Access: Tier 2 and above. Fields: - time — Time: Interval start, in milliseconds since the Unix epoch (UTC) - slippage_mean — Mean Slippage: Average slippage in price units versus the prevailing quote - slippage_bps_mean — Mean Slippage (bps): Average slippage in basis points versus the prevailing quote - slippage_bps_std — Slippage Std Dev (bps): Standard deviation of slippage in basis points - slippage_bps_median — Median Slippage (bps): Median slippage in basis points - slippage_bps_p95 — Slippage P95 (bps): 95th percentile slippage in basis points - slippage_bps_vwap — VWAP Slippage (bps): Trade-size-weighted average slippage in basis points - slippage_bps_buy_mean — Buy Slippage Mean (bps): Average slippage in basis points for buy-side trades - slippage_bps_sell_mean — Sell Slippage Mean (bps): Average slippage in basis points for sell-side trades - slippage_bps_buy_sell_ratio — Buy/Sell Slippage Ratio: Buy-side average slippage divided by sell-side average slippage - slippage_bps_sell_buy_ratio — Sell/Buy Slippage Ratio: Sell-side average slippage divided by buy-side average slippage

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. Sub-minute intervals (15s, 30s) require a Tier 3 subscription.

15s30s1m5m15m30m1h4h1d
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=15s&exchange=binance-futures&symbol=<symbol>&start_date=<start_date>&end_date=<end_date>"
Suggestions shown — any valid value accepted
Suggestions shown — any valid value accepted
Suggestions shown — any valid value accepted
Authentication
GET/api/v1/data/slippage?timestamp=exchange&interval=15s&exchange=binance-futures
Response will appear here

Derivatives

GET/data/basis

Basis

Perpetual futures mark price premium over index price (basis) and last trade price, in absolute and basis-point terms. Access: Tier 1 and above. Fields: - time — Time: Interval start, in milliseconds since the Unix epoch (UTC) - basis — Basis: Last mark price minus index price in the interval - basis_bps — Basis (bps): Last mark-versus-index spread in basis points of the index price - mark_price_spread — Mark-Price Spread: Last mark price minus last traded price in the interval - mark_price_spread_bps — Mark-Price Spread (bps): Last mark-versus-last-price spread in basis points of the last price - basis_mean — Mean Basis: Average mark price minus index price in the interval - basis_bps_std — Basis Std Dev (bps): Standard deviation of the mark-versus-index spread in basis points - mark_price_spread_mean — Mean Mark-Price Spread: Average mark price minus last traded price in the interval - mark_price_spread_bps_std — Mark-Price Spread Std Dev (bps): Standard deviation of the mark-versus-last-price spread in basis points

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/basis?timestamp=exchange&interval=1m&exchange=binance-futures&symbol=<symbol>&start_date=<start_date>&end_date=<end_date>"
Suggestions shown — any valid value accepted
Suggestions shown — any valid value accepted
Suggestions shown — any valid value accepted
Authentication
GET/api/v1/data/basis?timestamp=exchange&interval=1m&exchange=binance-futures
Response will appear here
GET/data/funding

Funding

Funding rate and update frequencies for perpetual futures contracts. Access: Tier 1 and above. Fields: - time — Time: Interval start, in milliseconds since the Unix epoch (UTC) - funding_rate — Funding Rate: Last funding rate observed in the interval - funding_rate_update_frequency — Funding Rate Update Frequency: Average number of funding-rate updates per second in the interval - funding_rate_avg_update_interval — Avg Funding Rate Update Interval: Average seconds between funding-rate updates in 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/funding?timestamp=exchange&interval=1m&exchange=binance-futures&symbol=<symbol>&start_date=<start_date>&end_date=<end_date>"
Suggestions shown — any valid value accepted
Suggestions shown — any valid value accepted
Suggestions shown — any valid value accepted
Authentication
GET/api/v1/data/funding?timestamp=exchange&interval=1m&exchange=binance-futures
Response will appear here
GET/data/open_interest

Open Interest

Open interest values with percentage change, volatility, and OI/price change ratio. Access: Tier 1 and above. Fields: - time — Time: Interval start, in milliseconds since the Unix epoch (UTC) - open_interest — Open Interest: Last open interest value in the interval - open_interest_pct_change — Open Interest % Change: Percentage change in open interest from the first value to the last value in the interval - open_interest_volatility — Open Interest Volatility: Standard deviation of tick-to-tick open-interest percentage changes in the interval - oi_price_change_ratio — OI/Price Change Ratio: Open-interest return divided by mark-price return 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/open_interest?timestamp=exchange&interval=1m&exchange=binance-futures&symbol=<symbol>&start_date=<start_date>&end_date=<end_date>"
Suggestions shown — any valid value accepted
Suggestions shown — any valid value accepted
Suggestions shown — any valid value accepted
Authentication
GET/api/v1/data/open_interest?timestamp=exchange&interval=1m&exchange=binance-futures
Response will appear here
GET/data/derivative_price

Derivative Price

Snapshot of mark, index, and last trade prices with interval percentage changes and pairwise divergence ratios. Access: Tier 1 and above. Fields: - time — Time: Interval start, in milliseconds since the Unix epoch (UTC) - last_price — Last Price: Last traded price observed in the interval - index_price — Index Price: Last index price observed in the interval - mark_price — Mark Price: Last mark price observed in the interval - last_price_pct_change — Last Price % Change: Percentage change from the first last price to the final last price in the interval - index_price_pct_change — Index Price % Change: Percentage change from the first index price to the final index price in the interval - mark_price_pct_change — Mark Price % Change: Percentage change from the first mark price to the final mark price in the interval - mark_index_pct_change_ratio — Mark/Index % Change Ratio: Mark-price return divided by index-price return over the interval - mark_last_pct_change_ratio — Mark/Last % Change Ratio: Mark-price return divided by last-price return over the interval - index_last_pct_change_ratio — Index/Last % Change Ratio: Index-price return divided by last-price return 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/derivative_price?timestamp=exchange&interval=1m&exchange=binance-futures&symbol=<symbol>&start_date=<start_date>&end_date=<end_date>"
Suggestions shown — any valid value accepted
Suggestions shown — any valid value accepted
Suggestions shown — any valid value accepted
Authentication
GET/api/v1/data/derivative_price?timestamp=exchange&interval=1m&exchange=binance-futures
Response will appear here

Market Data

GET/data/ohlcv

Candlesticks

Open, High, Low, Close, Volume candlestick data with notional volume. Access: Tier 0 and above. Fields: - time — Time: Interval start, in milliseconds since the Unix epoch (UTC) - open — Open: First trade price in the interval - high — High: Highest trade price in the interval - low — Low: Lowest trade price in the interval - close — Close: Last trade price in the interval - volume — Volume: Total traded quantity in the interval - volume_notional — Notional Volume: Total traded notional in 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. Sub-minute intervals (15s, 30s) require a Tier 3 subscription.

15s30s1m5m15m30m1h4h1d
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=15s&exchange=binance-futures&symbol=<symbol>&start_date=<start_date>&end_date=<end_date>"
Suggestions shown — any valid value accepted
Suggestions shown — any valid value accepted
Suggestions shown — any valid value accepted
Authentication
GET/api/v1/data/ohlcv?timestamp=exchange&interval=15s&exchange=binance-futures
Response will appear here
GET/data/vtwap

VWAP / TWAP

Volume-weighted and time-weighted average prices for precise execution benchmarks. Access: Tier 0 and above. Fields: - time — Time: Interval start, in milliseconds since the Unix epoch (UTC) - vwap — VWAP: Trade-size-weighted average price in the interval - twap — TWAP: Arithmetic average trade price in 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. Sub-minute intervals (15s, 30s) require a Tier 3 subscription.

15s30s1m5m15m30m1h4h1d
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=15s&exchange=binance-futures&symbol=<symbol>&start_date=<start_date>&end_date=<end_date>"
Suggestions shown — any valid value accepted
Suggestions shown — any valid value accepted
Suggestions shown — any valid value accepted
Authentication
GET/api/v1/data/vtwap?timestamp=exchange&interval=15s&exchange=binance-futures
Response will appear here

L1 (Top of Book)

GET/data/l1_price

L1 Price

Best bid and ask prices with quantities, midprice, quantity-weighted midprice, time/volume-weighted averages, and quote update frequency. Access: Tier 2 and above. Fields: - time — Time: Interval start, in milliseconds since the Unix epoch (UTC) - ask_price — Ask Price: Last best ask price in the interval - bid_price — Bid Price: Last best bid price in the interval - ask_amount — Ask Amount: Last best ask quantity in the interval - bid_amount — Bid Amount: Last best bid quantity in the interval - quote_update_frequency — Quote Update Frequency: Number of top-of-book quote updates in the interval - avg_update_interval — Avg Update Interval: Average milliseconds between top-of-book quote updates - midprice — Mid Price: Midpoint between the last best bid and ask prices - weighted_midprice — Weighted Mid Price: Midprice weighted by the opposite-side top-of-book quantity - bid_price_twap — Bid Price TWAP: Average best bid price in the interval - ask_price_twap — Ask Price TWAP: Average best ask price in the interval - bid_price_vwap — Bid Price VWAP: Bid-price average weighted by best bid quantity - ask_price_vwap — Ask Price VWAP: Ask-price average weighted by best ask quantity

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. Sub-minute intervals (15s, 30s) require a Tier 3 subscription.

15s30s1m5m15m30m1h4h1d
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=15s&exchange=binance-futures&symbol=<symbol>&start_date=<start_date>&end_date=<end_date>"
Suggestions shown — any valid value accepted
Suggestions shown — any valid value accepted
Suggestions shown — any valid value accepted
Authentication
GET/api/v1/data/l1_price?timestamp=exchange&interval=15s&exchange=binance-futures
Response will appear here
GET/data/l1_imbalance

L1 Imbalance

Bid/ask imbalance, ratio, percentages — both instantaneous (last) and averaged over the interval. Access: Tier 3 and above. Fields: - time — Time: Interval start, in milliseconds since the Unix epoch (UTC) - imbalance — Imbalance: Last best-bid quantity minus best-ask quantity in the interval - imbalance_ratio — Imbalance Ratio: Last normalized difference between best-bid and best-ask quantity - bid_ask_ratio — Bid/Ask Ratio: Last best-bid quantity divided by best-ask quantity - bid_percentage — Bid %: Last share of top-of-book quantity resting on the bid side - ask_percentage — Ask %: Last share of top-of-book quantity resting on the ask side - imbalance_avg — Avg Imbalance: Average best-bid quantity minus best-ask quantity in the interval - imbalance_ratio_avg — Avg Imbalance Ratio: Average normalized bid-ask quantity imbalance in the interval - bid_ask_ratio_avg — Avg Bid/Ask Ratio: Average best-bid quantity divided by best-ask quantity in the interval - bid_percentage_avg — Avg Bid %: Average share of top-of-book quantity on the bid side - ask_percentage_avg — Avg Ask %: Average share of top-of-book quantity on the ask side

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. Sub-minute intervals (15s, 30s) require a Tier 3 subscription.

15s30s1m5m15m30m1h4h1d
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=15s&exchange=binance-futures&symbol=<symbol>&start_date=<start_date>&end_date=<end_date>"
Suggestions shown — any valid value accepted
Suggestions shown — any valid value accepted
Suggestions shown — any valid value accepted
Authentication
GET/api/v1/data/l1_imbalance?timestamp=exchange&interval=15s&exchange=binance-futures
Response will appear here
GET/data/l1_liquidity

L1 Liquidity

Spread (absolute and bps), depth, dollar depth — instantaneous and interval-averaged. Access: Tier 3 and above. Fields: - time — Time: Interval start, in milliseconds since the Unix epoch (UTC) - spread — Spread: Last best ask price minus best bid price in the interval - spread_bps — Spread (bps): Last bid-ask spread in basis points of the midprice - spread_depth_ratio — Spread/Depth Ratio: Last bid-ask spread divided by total top-of-book quantity - total_depth — Total Depth: Last total top-of-book quantity across bid and ask - dollar_depth_bid — Bid Dollar Depth: Last bid-side top-of-book notional - dollar_depth_ask — Ask Dollar Depth: Last ask-side top-of-book notional - total_dollar_depth — Total Dollar Depth: Last total top-of-book notional across bid and ask - spread_avg — Avg Spread: Average bid-ask spread in the interval - spread_bps_avg — Avg Spread (bps): Average bid-ask spread in basis points over the interval - spread_depth_ratio_avg — Avg Spread/Depth Ratio: Average spread-to-depth ratio over the interval - total_depth_avg — Avg Total Depth: Average total top-of-book quantity across bid and ask in the interval - dollar_depth_bid_avg — Avg Bid Dollar Depth: Average bid-side top-of-book notional in the interval - dollar_depth_ask_avg — Avg Ask Dollar Depth: Average ask-side top-of-book notional in the interval - total_dollar_depth_avg — Avg Total Dollar Depth: Average total top-of-book notional across bid and ask in 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. Sub-minute intervals (15s, 30s) require a Tier 3 subscription.

15s30s1m5m15m30m1h4h1d
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=15s&exchange=binance-futures&symbol=<symbol>&start_date=<start_date>&end_date=<end_date>"
Suggestions shown — any valid value accepted
Suggestions shown — any valid value accepted
Suggestions shown — any valid value accepted
Authentication
GET/api/v1/data/l1_liquidity?timestamp=exchange&interval=15s&exchange=binance-futures
Response will appear here

L2 (Order Book)

GET/data/l2_imbalance

L2 Order Book Imbalance

Multi-depth (5, 10, 20, 25 levels) order book imbalance, ratio, and averages. Access: Tier 3 and above. Fields: - time — Time: Interval start, in milliseconds since the Unix epoch (UTC) - imbalance_5 — Imbalance (5 levels): Last top-5 bid quantity minus top-5 ask quantity - imbalance_10 — Imbalance (10 levels): Last top-10 bid quantity minus top-10 ask quantity - imbalance_20 — Imbalance (20 levels): Last top-20 bid quantity minus top-20 ask quantity - imbalance_25 — Imbalance (25 levels): Last top-25 bid quantity minus top-25 ask quantity - imbalance_ratio_5 — Imbalance Ratio (5 levels): Last normalized difference between top-5 bid and ask quantity - imbalance_ratio_10 — Imbalance Ratio (10 levels): Last normalized difference between top-10 bid and ask quantity - imbalance_ratio_20 — Imbalance Ratio (20 levels): Last normalized difference between top-20 bid and ask quantity - imbalance_ratio_25 — Imbalance Ratio (25 levels): Last normalized difference between top-25 bid and ask quantity - bid_ask_ratio_5 — Bid/Ask Ratio (5 levels): Last top-5 bid quantity divided by top-5 ask quantity - bid_ask_ratio_10 — Bid/Ask Ratio (10 levels): Last top-10 bid quantity divided by top-10 ask quantity - bid_ask_ratio_20 — Bid/Ask Ratio (20 levels): Last top-20 bid quantity divided by top-20 ask quantity - bid_ask_ratio_25 — Bid/Ask Ratio (25 levels): Last top-25 bid quantity divided by top-25 ask quantity - imbalance_5_avg — Avg Imbalance (5 levels): Average top-5 bid quantity minus top-5 ask quantity in the interval - imbalance_10_avg — Avg Imbalance (10 levels): Average top-10 bid quantity minus top-10 ask quantity in the interval - imbalance_20_avg — Avg Imbalance (20 levels): Average top-20 bid quantity minus top-20 ask quantity in the interval - imbalance_25_avg — Avg Imbalance (25 levels): Average top-25 bid quantity minus top-25 ask quantity in the interval - imbalance_ratio_5_avg — Avg Imbalance Ratio (5 levels): Average normalized difference between top-5 bid and ask quantity in the interval - imbalance_ratio_10_avg — Avg Imbalance Ratio (10 levels): Average normalized difference between top-10 bid and ask quantity in the interval - imbalance_ratio_20_avg — Avg Imbalance Ratio (20 levels): Average normalized difference between top-20 bid and ask quantity in the interval - imbalance_ratio_25_avg — Avg Imbalance Ratio (25 levels): Average normalized difference between top-25 bid and ask quantity in the interval - bid_ask_ratio_5_avg — Avg Bid/Ask Ratio (5 levels): Average top-5 bid quantity divided by top-5 ask quantity in the interval - bid_ask_ratio_10_avg — Avg Bid/Ask Ratio (10 levels): Average top-10 bid quantity divided by top-10 ask quantity in the interval - bid_ask_ratio_20_avg — Avg Bid/Ask Ratio (20 levels): Average top-20 bid quantity divided by top-20 ask quantity in the interval - bid_ask_ratio_25_avg — Avg Bid/Ask Ratio (25 levels): Average top-25 bid quantity divided by top-25 ask quantity in 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. Sub-minute intervals (15s, 30s) require a Tier 3 subscription.

15s30s1m5m15m30m1h4h1d
exchangereqstring
string

Source exchange for the data. Not available on this dataset: hyperliquid-perps.

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=15s&exchange=binance-futures&symbol=<symbol>&start_date=<start_date>&end_date=<end_date>"
Suggestions shown — any valid value accepted
Suggestions shown — any valid value accepted
Suggestions shown — any valid value accepted
Authentication
GET/api/v1/data/l2_imbalance?timestamp=exchange&interval=15s&exchange=binance-futures
Response will appear here
GET/data/l2_liquidity

L2 Order Book Liquidity

Total bid/ask depth aggregated over 5, 10, 20, 25 order book levels — instantaneous and interval-averaged. Access: Tier 3 and above. Fields: - time — Time: Interval start, in milliseconds since the Unix epoch (UTC) - ask_agg_5 — Ask Aggregate (5 levels): Last total ask quantity across the top 5 levels - ask_agg_10 — Ask Aggregate (10 levels): Last total ask quantity across the top 10 levels - ask_agg_20 — Ask Aggregate (20 levels): Last total ask quantity across the top 20 levels - ask_agg_25 — Ask Aggregate (25 levels): Last total ask quantity across the top 25 levels - bid_agg_5 — Bid Aggregate (5 levels): Last total bid quantity across the top 5 levels - bid_agg_10 — Bid Aggregate (10 levels): Last total bid quantity across the top 10 levels - bid_agg_20 — Bid Aggregate (20 levels): Last total bid quantity across the top 20 levels - bid_agg_25 — Bid Aggregate (25 levels): Last total bid quantity across the top 25 levels - ask_agg_5_avg — Avg Ask Aggregate (5 levels): Average total ask quantity across the top 5 levels in the interval - ask_agg_10_avg — Avg Ask Aggregate (10 levels): Average total ask quantity across the top 10 levels in the interval - ask_agg_20_avg — Avg Ask Aggregate (20 levels): Average total ask quantity across the top 20 levels in the interval - ask_agg_25_avg — Avg Ask Aggregate (25 levels): Average total ask quantity across the top 25 levels in the interval - bid_agg_5_avg — Avg Bid Aggregate (5 levels): Average total bid quantity across the top 5 levels in the interval - bid_agg_10_avg — Avg Bid Aggregate (10 levels): Average total bid quantity across the top 10 levels in the interval - bid_agg_20_avg — Avg Bid Aggregate (20 levels): Average total bid quantity across the top 20 levels in the interval - bid_agg_25_avg — Avg Bid Aggregate (25 levels): Average total bid quantity across the top 25 levels in 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. Sub-minute intervals (15s, 30s) require a Tier 3 subscription.

15s30s1m5m15m30m1h4h1d
exchangereqstring
string

Source exchange for the data. Not available on this dataset: hyperliquid-perps.

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=15s&exchange=binance-futures&symbol=<symbol>&start_date=<start_date>&end_date=<end_date>"
Suggestions shown — any valid value accepted
Suggestions shown — any valid value accepted
Suggestions shown — any valid value accepted
Authentication
GET/api/v1/data/l2_liquidity?timestamp=exchange&interval=15s&exchange=binance-futures
Response will appear here
Aperiodic

Crypto microstructure, liquidity & flow metrics — built from hundreds of terabytes of raw data, distilled into point-in-time metrics you can pull as parquet files.

Registered office
Aperiodic Limited
136 Capel StreetDublin, D01 T2C9Ireland
Registered in Ireland · Company No. 815273

© Copyright 2026 Aperiodic. All Rights Reserved.

Product
  • Data Catalog
  • Pricing
  • API Docs
  • Notebooks
  • Alpha Walkthrough
  • Roadmap
  • Changelog
  • FAQ
  • For AI Agents
Metrics
  • Order Flow
  • L1 — Top of Book
  • L2 — Order Book
  • Market Data
  • Derivatives
Channels
  • Blog: Research Insights
  • Microstructure Guide
  • Aperiodic vs. Tardis
  • Aperiodic vs. CoinGlass
  • LinkedIn
Company
  • Contact
  • Book a call
  • Terms of Service
  • Privacy Policy
  • LLM? Read this.

Provided for informational purposes only; not investment advice, a recommendation, or an offer to transact. Past performance is not indicative of future results.