Aperiodic
DataFactors
Catalog
Pricing
Get Started

L1 Price

Best bid and ask prices with quantities, midprice, quantity-weighted midprice, time/volume-weighted averages, and quote update frequency.

CodeAPI DocsTry It

midprice

Mid Price

Mid Price is the center of the best bid and best ask, making it the cleanest instantaneous fair-value proxy at the top of book.

Because it strips out half-spread noise, it is widely used for microstructure research, marking, and short-horizon return calculations.

weighted_midprice

Weighted Mid Price

Weighted Mid Price tilts the simple midpoint by the relative size resting at the best bid and ask.

That gives it a predictive flavor because it incorporates which side of the top of book is showing more immediate depth.

quote_update_frequency

Quote Update Frequency

Quote Update Frequency measures how actively the top of book was refreshing during the interval.

A high reading often means the market was competitive, reactive, or unstable enough to force frequent repricing.

avg_update_interval

Avg Update Interval

Average Update Interval is the time counterpart to quote frequency, showing how quickly the best quotes changed on average.

Shorter intervals imply a faster and more responsive book, while longer intervals suggest a calmer or less actively managed top of book.

bid_price_vwap

Bid Price VWAP

Bid Price VWAP summarizes where the best bid spent its time with volume-sensitive weighting.

It offers a richer picture than a single snapshot because it reflects how quoted buying interest evolved across the bar.

L1 data — the best bid and best ask at any moment — appears deceptively simple. Four numbers: two prices, two quantities. But the derived metrics reveal the real-time behavior of market makers and the microstructure of price formation in ways that trade data alone cannot capture.

Endpoint

/api/v1/data/l1_price

Category

L1 (Top of Book)

Intervals
1m5m15m30m1h4h1d
Requires Institutional
15s30s
Exchanges
binance-futuresokx-perpshyperliquid-perps
Fields12
ask_priceAsk PriceLast best ask price in the interval
bid_priceBid PriceLast best bid price in the interval
ask_amountAsk AmountLast best ask quantity in the interval
bid_amountBid AmountLast best bid quantity in the interval
quote_update_frequencyQuote Update FrequencyNumber of top-of-book quote updates in the interval
avg_update_intervalAvg Update IntervalAverage milliseconds between top-of-book quote updates
midpriceMid PriceMidpoint between the last best bid and ask prices
weighted_midpriceWeighted Mid PriceMidprice weighted by the opposite-side top-of-book quantity
bid_price_twapBid Price TWAPAverage best bid price in the interval
ask_price_twapAsk Price TWAPAverage best ask price in the interval
bid_price_vwapBid Price VWAPBid-price average weighted by best bid quantity
ask_price_vwapAsk Price VWAPAsk-price average weighted by best ask quantity
Example Request
from datetime import date
from aperiodic import get_metrics

# Free preview — no API key required
df = get_metrics(
    metric="l1_price",
    exchange="binance-futures",
    symbol="perpetual-BTC-USDT:USDT",
    interval="5m",
    timestamp="exchange",
    start_date=date(2025, 5, 1),
    end_date=date(2025, 5, 31),
    preview=True,
)

print(df.head())

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 every file covering the range — one per month before 2026-08-01, one per day from 2026-08-01 onwards

Schema
filesobject[]required

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

yearintegerrequired

Year of the data file

monthintegerrequired

Month of the data file (1-12)

dayinteger

Day 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>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": 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&..."
    }
  ]
}
Try It

Prefilled with the shared DEMO-KEY and a free preview slice — send the request to see live data, no account required.

Suggestions shown — any valid value accepted
Suggestions shown — any valid value accepted
Suggestions shown — any valid value accepted
Authentication
GET/api/v1/data/preview/l1_price?timestamp=exchange&interval=5m&exchange=binance-futures&symbol=perpetual-BTC-USDT%3AUSDT&start_date=2025-05-01&end_date=2025-05-31
Response will appear here

Try Free Preview Data

Access a curated slice of real production data with just an account — no credit card or subscription required. Pair it with our research notebooks to get started instantly.

Use with AI Agents

Access L1 Price programmatically via our Python SDK and REST API — optimised for autonomous research workflows.

Get Started

Subscribe to get full API access. Start querying all datasets in minutes.

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
  • Find new alpha
  • 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.