basis_bpsBasis (bps)
Basis in basis points measures the relative premium or discount of the derivative against its reference market.
This makes it a core signal for carry, positioning pressure, and cross-market dislocations.
Raw L2 order books aren't offered yet. Ask us.
DEMO-KEY over cURL, --preview in the CLI or preview=True in Python. Pick one for a command you can paste and run. A subscription unlocks full history and every exchange, symbol, interval and parameter; extended trials are available on request.The 2025-06 trades file of the BTC perpetual on Binance and OKX.
| Dataset | Binanceperpetual-BTC-USDT:USDT | OKXperpetual-BTC-USDT:USDT |
|---|---|---|
| trades |
Every metric, over one slice: binance-futures · perpetual-BTC-USDT:USDT · 5m · exchange timestamps · 2025-05-01 → 2025-05-31
Trades
Derivatives
Market Data
L1 (Top of Book)
L2 (Order Book)
trades · binance-futures · perpetual-BTC-USDT:USDT · 2025-06
Open dataset# Install the Aperiodic CLI into ~/.local/bin
mkdir -p "$HOME/.local/bin"
curl -fsSL https://raw.githubusercontent.com/aperiodic-io/cli/main/install.sh | INSTALL_DIR="$HOME/.local/bin" bash
export PATH="$HOME/.local/bin:$PATH"
# Download the 2025-06 trades file into ./raw — no API key needed
aperiodic raw trades --preview \
--exchange binance-futures \
--symbol perpetual-BTC-USDT:USDT \
--output-dir ./raw && echo "Saved to $PWD/raw"Derivatives
Perpetual futures mark price premium over index price (basis) and last trade price, in absolute and basis-point terms.
Need the ticks behind this metric? Prime + Raw includes raw mark price, index price, trades.
Shown: basis_bps, hourly, 1–31 January 2024, from this page's Sample CSV · extreme: 20.4 bps, 2 Jan, 00:00 UTC · built with basis
basis_bpsBasis in basis points measures the relative premium or discount of the derivative against its reference market.
This makes it a core signal for carry, positioning pressure, and cross-market dislocations.
mark_price_spread_bpsMark-Price Spread in basis points shows the gap between the exchange mark and the traded market price on a relative scale.
The spread matters because mark prices influence liquidation engines, risk controls, and PnL calculations even when the last trade wanders.
basis_meanMean Basis summarizes the average premium or discount sustained through the interval rather than at a single moment.
That makes it helpful for distinguishing persistent carry conditions from brief spikes or flickers.
basis_bps_stdBasis Std Dev in basis points measures how unstable the relative pricing relationship was inside the bar.
A high reading suggests basis was moving around materially, which can complicate hedging and carry strategies.
mark_price_spread_bps_stdThis metric tracks the variability of the mark-price gap, not just its average level.
That distinction matters because some markets spend long periods close to fair value but occasionally experience sharp internal repricing.
/api/v1/data/basis| Field | Name | Description |
|---|---|---|
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 |
# Install the Aperiodic CLI into ~/.local/bin
mkdir -p "$HOME/.local/bin"
curl -fsSL https://raw.githubusercontent.com/aperiodic-io/cli/main/install.sh | INSTALL_DIR="$HOME/.local/bin" bash
export PATH="$HOME/.local/bin:$PATH"
# Free preview — no API key required
aperiodic basis --preview \
--exchange binance-futures \
--symbol perpetual-BTC-USDT:USDT \
--interval 5m \
--timestamp exchange \
--start-date 2025-05-01 \
--end-date 2025-05-31 \
--output-dir ./data && echo "Saved to $PWD/data"Every new row as it is computed, over WebSocket at wss://stream.aperiodic.io/v1/stream. Authenticate with your API key in the X-API-KEY header and subscribe to channels named basis.<exchange>.<interval>, on intervals 1m, 5m, 15m, 30m, 1h, 4h, 1d. Streaming is included on Live plans.
pip install "aperiodic[stream]"import os
from aperiodic import stream
for message in stream(
api_key=os.environ["APERIODIC_API_KEY"],
dataset="basis",
exchange="binance-futures",
interval="1m",
symbols=["perpetual-BTC-USDT:USDT"], # omit for every symbol on your plan
):
print(message.channel, message.snapshot, message.data)timestampreqstringTimestamp source. 'exchange' uses the exchange-reported timestamp, 'true' uses actual arrival time at our servers.
exchangetrueintervalreqstringAggregation time interval for the data.
1m5m15m30m1h4h1dexchangereqstringSource exchange for the data.
binance-futuresokx-perpshyperliquid-perpssymbolreqstringTrading pair symbol in the format of Atlas' universal symbology: https://github.com/aperiodic-io/atlas
start_datereqstring<date>Start date for the data range (YYYY-MM-DD format). A metric series starts on the first day of the raw series it is computed from (see /metadata/raw); raw trades and quotes start binance-futures from 2020-01-01, okx-perps from 2019-09-01, hyperliquid-perps from 2025-01-01. Earlier days return no files. How far back you can go depends on the plan: 5 years on Pro, full history on Prime, Prime + Raw and Institutional. An earlier start_date than the plan reaches returns 403.
end_datereqstring<date>End date for the data range (YYYY-MM-DD format). Must be greater than or equal to start_date.
Successful response with download URLs for every existing file covering the range from the series' published start — one per month before 2026-08-01, one per day from 2026-08-01 onwards
filesobject[]requiredFiles covering the requested date range, in chronological order. Data before 2026-08-01 is split by month (one file per calendar month, no `day`); data from 2026-08-01 onwards is split by day (one file per calendar day, with `day` set). The changeover falls on a month boundary, so a given month is served entirely one way or the other; a range spanning it returns the earlier months as monthly files followed by a daily file per day.
yearintegerrequiredYear of the data file
monthintegerrequiredMonth of the data file (1-12)
dayintegerDay of the data file (1-31). Present only on daily files, i.e. those covering 2026-08-01 onwards. Absent on monthly files, which cover an entire calendar month.
urlstring<uri>requiredPresigned URL for direct file download (valid for 5 minutes). URLs are served from dataset-specific subdomains, e.g. ohlcv.aperiodic.io, trade-metrics.aperiodic.io, l1-metrics.aperiodic.io, l2-metrics.aperiodic.io, derivative-metrics.aperiodic.io.
{
"files": [
{
"year": 2026,
"month": 6,
"url": "https://ohlcv.aperiodic.io/binance-futures/1h/BTCUSDT/2026-06.parquet?X-Amz-Expires=300&..."
},
{
"year": 2026,
"month": 7,
"url": "https://ohlcv.aperiodic.io/binance-futures/1h/BTCUSDT/2026-07.parquet?X-Amz-Expires=300&..."
},
{
"year": 2026,
"month": 8,
"day": 1,
"url": "https://ohlcv.aperiodic.io/binance-futures/1h/BTCUSDT/2026-08-01.parquet?X-Amz-Expires=300&..."
},
{
"year": 2026,
"month": 8,
"day": 2,
"url": "https://ohlcv.aperiodic.io/binance-futures/1h/BTCUSDT/2026-08-02.parquet?X-Amz-Expires=300&..."
}
]
}
Prefilled with the shared DEMO-KEY and a free preview slice — send the request to see live data, no account required.
/api/v1/data/preview/basis?timestamp=exchange&interval=5m&exchange=binance-futures&symbol=perpetual-BTC-USDT%3AUSDT&start_date=2025-05-01&end_date=2025-05-31