Raw data
Raw data files
GET/api/v1/data/raw/{dataset}
Presigned download URLs for one raw dataset, one symbol and a date range. URLs are valid for one hour; request them again when they expire.
exchange_timestamp is the venue's own time. local_timestamp is when the event reached our capture machine.
Access: Prime + Raw and Institutional. Other plans get 403 with code: "raw_not_in_plan".
Datasets:
trades: Every trade printed on the venue, with its trade id, taker side, price and size. Venues: binance-futures, okx-perps, hyperliquid-perps. Columns:exchange_timestamp(timestamp),local_timestamp(timestamp),id(string),side(string),price(float64),amount(float64).quotes: Top-of-book updates: best bid and best ask with their sizes, one row per change. Venues: binance-futures, okx-perps, hyperliquid-perps. Columns:exchange_timestamp(timestamp),local_timestamp(timestamp),bid_price(float64),bid_amount(float64),ask_price(float64),ask_amount(float64).mark_price: The venue’s mark price, one row each time it changes. Venues: binance-futures, okx-perps, hyperliquid-perps. Columns:exchange_timestamp(timestamp),local_timestamp(timestamp),mark_price(float64).index_price: The venue’s index price for the contract’s underlying, one row each time it changes. Venues: binance-futures, okx-perps, hyperliquid-perps. Columns:exchange_timestamp(timestamp),local_timestamp(timestamp),index_price(float64).funding_rate: The current funding rate and the next funding time, one row each time either changes. Venues: binance-futures, okx-perps, hyperliquid-perps. Columns:exchange_timestamp(timestamp),local_timestamp(timestamp),funding_rate(float64),next_funding_timestamp(timestamp, nullable).
Parameters
| Parameter | Values | Meaning |
|---|---|---|
datasetpath · required | tradesquotesmark_priceindex_pricefunding_rate | Raw dataset. Every dataset is served for every venue. Hyperliquid’s derivative feed carries no exchange time, so in its `mark_price`, `index_price`, and `funding_rate` files `exchange_timestamp` is modelled and an `exchange_timestamp_kind` column (`modelled`) follows it. |
exchangequery · required | binance-futuresokx-perpshyperliquid-perps | Source exchange. |
symbolquery · required | string | Trading pair symbol in the format of Atlas' universal symbology: https://github.com/aperiodic-io/atlas |
start_datequery · required | date | First day of the range (YYYY-MM-DD, exchange-time UTC, inclusive). Prime + Raw and Institutional reach back to the first day we hold. |
end_datequery · required | date | Last day of the range (YYYY-MM-DD, inclusive). At most 366 days after start_date. |
Responses
{
"dataset": "trades",
"exchange": "binance-futures",
"symbol": "perpetual-BTC-USDT:USDT",
"schema_version": 1,
"expires_in": 3600,
"files": [
{
"period": "2025-06",
"url": "https://<account>.r2.cloudflarestorage.com/aperiodic-raw-trades/v1/trades/exchange=binance-futures/symbol=perpetual-BTC-USDT:USDT/year=2025/month=06/data.parquet?X-Amz-Expires=3600&...",
"size": 361893330
}
],
"missing_periods": []
}| Status | Meaning |
|---|---|
200 | Download URLs for every file whose period overlaps the range: one file per calendar month before 2026-08-01, one per day from then on. Monthly files are whole months, so filter on `exchange_timestamp` after reading. |
400 | Bad request - missing or invalid parameters |
401 | Unauthorized - missing or invalid API key |
403 | Forbidden - the plan does not include raw data, or the range is longer than 366 days |
404 | Unknown raw dataset |
500 | Server error - the files could not be listed or signed |
Try it
/api/v1/data/raw/trades?exchange=binance-futuresRaw data preview
GET/api/v1/data/raw/preview/{dataset}
The 2025-06 monthly trades file of the BTC perpetual on Binance and OKX (binance-futures: perpetual-BTC-USDT:USDT, okx-perps: perpetual-BTC-USDT:USDT), for any API key including DEMO-KEY. Only trades has a preview. Same response as /data/raw/{dataset}.
Parameters
| Parameter | Values | Meaning |
|---|---|---|
datasetpath · required | trades | Raw dataset. Only `trades` has a preview. |
exchangequery · required | binance-futuresokx-perps | Source exchange. |
symbolquery · required | string | Trading pair symbol in the format of Atlas' universal symbology: https://github.com/aperiodic-io/atlas |
downloadquery | boolean | Redirect to the preview file itself instead of listing it, so `curl -fL -o NAME` saves the Parquet in one request. |
Responses
{
"dataset": "trades",
"exchange": "binance-futures",
"symbol": "perpetual-BTC-USDT:USDT",
"schema_version": 1,
"expires_in": 3600,
"files": [
{
"period": "2025-06",
"url": "https://<account>.r2.cloudflarestorage.com/aperiodic-raw-trades/v1/trades/exchange=binance-futures/symbol=perpetual-BTC-USDT:USDT/year=2025/month=06/data.parquet?X-Amz-Expires=3600&...",
"size": 361893330
}
],
"missing_periods": []
}| Status | Meaning |
|---|---|
200 | Download URLs for every file whose period overlaps the range: one file per calendar month before 2026-08-01, one per day from then on. Monthly files are whole months, so filter on `exchange_timestamp` after reading. |
302 | With `download=true`: a redirect to the signed URL of the preview file (valid one hour). |
400 | Bad request - not a preview series; the body lists the available ones |
401 | Unauthorized - missing or invalid API key |
404 | A dataset with no preview, or an unknown one |
500 | Server error - the files could not be listed or signed |
Try it
/api/v1/data/raw/preview/trades?exchange=binance-futures&download=falseRaw datasets and coverage
GET/api/v1/metadata/raw
The raw datasets with their columns, a per-venue summary, and the full coverage: first and last day and day count for every symbol. No API key needed. Cached for one hour.
Parameters
No parameters.
Responses
| Status | Meaning |
|---|---|
200 | Raw datasets and coverage |
500 | Server error - coverage could not be read |
Try it
/api/v1/metadata/raw