Examples and tutorials
Options
Equity options: Introduction
Options on futures: Introduction
All options with a given underlying
Join options with underlying prices
US equity options volume by venue
Resample US equity options NBBO
Estimate implied volatility
Get symbols for 0DTE options
Calculate daily statistics for equity options
Historical data
Request a large number of symbols
Programmatic batch downloads
Best bid, best offer, and midprice
Custom OHLCV bars from trades
Join schemas on instrument ID
Plot a candlestick chart
Calculate VWAP and RSI
End-of-day pricing and portfolio valuation
Benchmark portfolio performance
Market halts, volatility interrupts, and price bands
Resample OHLCV from 1-minute to 5-minute
Algorithmic trading
A high-frequency liquidity-taking strategy
Build prediction models with machine learning
Execution slippage and markouts
Matching engine latencies
Using messaging rates as a proxy for implied volatility
Mean reversion and portfolio optimization
Pairs trading based on cointegration
Build a real-time stock screener
Core concepts
Venues and datasets
CME Globex MDP 3.0
Cboe BYX Depth
Cboe BYZ Depth
Cboe EDGA Depth
Cboe EDGX Depth
Databento US Equities Basic
Databento US Equities Mini
Databento US Equities Summary
Eurex Exchange
European Energy Exchange
ICE Endex iMpact
ICE Europe Commodities iMpact
ICE Europe Financials iMpact
ICE Futures US iMpact
IEX TOPS
MEMX Memoir
MIAX Depth of Market
Nasdaq Basic with NLS Plus
Nasdaq TotalView-ITCH
NYSE American Integrated
NYSE Arca Integrated
NYSE Texas Integrated
NYSE National Trades and BBO
NYSE Integrated
OPRA Pillar
Corporate actions
Adjustment factors
Security master
API Reference
Resources
Release notes
C++
0.42.0 - 2025-08-19
0.41.0 - 2025-08-12
0.40.0 - 2025-07-29
0.39.1 - 2025-07-22
0.39.0 - 2025-07-15
0.38.2 - 2025-07-01
0.38.1 - 2025-06-25
0.38.0 - 2025-06-10
0.37.1 - 2025-06-03
0.37.0 - 2025-06-03
0.36.0 - 2025-05-27
0.35.1 - 2025-05-20
0.35.0 - 2025-05-13
0.34.2 - 2025-05-06
0.34.1 - 2025-04-29
0.34.0 - 2025-04-22
0.33.0 - 2025-04-15
0.32.1 - 2025-04-07
0.32.0 - 2025-04-02
0.31.0 - 2025-03-18
0.30.0 - 2025-02-11
0.29.0 - 2025-02-04
0.28.0 - 2025-01-21
0.27.0 - 2025-01-07
0.26.0 - 2024-12-17
0.25.0 - 2024-11-12
0.24.0 - 2024-10-22
0.23.0 - 2024-09-25
0.22.0 - 2024-08-27
0.21.0 - 2024-07-30
0.20.1 - 2024-07-16
0.20.0 - 2024-07-09
0.19.1 - 2024-06-25
0.19.0 - 2024-06-04
0.18.1 - 2024-05-22
0.18.0 - 2024-05-14
0.17.1 - 2024-04-08
0.17.0 - 2024-04-01
0.16.0 - 2024-03-01
0.15.0 - 2024-01-16
0.14.1 - 2023-12-18
0.14.0 - 2023-11-23
0.13.1 - 2023-10-23
0.13.0 - 2023-09-21
0.12.0 - 2023-08-24
0.11.0 - 2023-08-10
0.10.0 - 2023-07-20
0.9.1 - 2023-07-11
0.9.0 - 2023-06-13
0.8.0 - 2023-05-16
0.7.0 - 2023-04-28
0.6.1 - 2023-03-28
0.6.0 - 2023-03-24
0.5.0 - 2023-03-13
0.4.0 - 2023-03-02
0.3.0 - 2023-01-06
0.2.0 - 2022-12-01
0.1.0 - 2022-11-07
Python
0.63.0 - 2025-09-02
0.62.0 - 2025-08-19
0.61.0 - 2025-08-12
0.60.0 - 2025-08-05
0.59.0 - 2025-07-15
0.58.0 - 2025-07-08
0.57.1 - 2025-06-17
0.57.0 - 2025-06-10
0.56.0 - 2025-06-03
0.55.1 - 2025-06-02
0.55.0 - 2025-05-29
0.54.0 - 2025-05-13
0.53.0 - 2025-04-29
0.52.0 - 2025-04-15
0.51.0 - 2025-04-08
0.50.0 - 2025-03-18
0.49.0 - 2025-03-04
0.48.0 - 2025-01-21
0.47.0 - 2024-12-17
0.46.0 - 2024-12-10
0.45.0 - 2024-11-12
0.44.1 - 2024-10-29
0.44.0 - 2024-10-22
0.43.1 - 2024-10-15
0.43.0 - 2024-10-09
0.42.0 - 2024-09-23
0.41.0 - 2024-09-03
0.40.0 - 2024-08-27
0.39.3 - 2024-08-20
0.39.2 - 2024-08-13
0.39.1 - 2024-08-13
0.39.0 - 2024-07-30
0.38.0 - 2024-07-23
0.37.0 - 2024-07-09
0.36.3 - 2024-07-02
0.36.2 - 2024-06-25
0.36.1 - 2024-06-18
0.36.0 - 2024-06-11
0.35.0 - 2024-06-04
0.34.1 - 2024-05-21
0.34.0 - 2024-05-14
0.33.0 - 2024-04-16
0.32.0 - 2024-04-04
0.31.1 - 2024-03-20
0.31.0 - 2024-03-05
0.30.0 - 2024-02-22
0.29.0 - 2024-02-13
0.28.0 - 2024-02-01
0.27.0 - 2024-01-23
0.26.0 - 2024-01-16
0.25.0 - 2024-01-09
0.24.1 - 2023-12-15
0.24.0 - 2023-11-23
0.23.1 - 2023-11-10
0.23.0 - 2023-10-26
0.22.1 - 2023-10-24
0.22.0 - 2023-10-23
0.21.0 - 2023-10-11
0.20.0 - 2023-09-21
0.19.1 - 2023-09-08
0.19.0 - 2023-08-25
0.18.1 - 2023-08-16
0.18.0 - 2023-08-14
0.17.0 - 2023-08-10
0.16.1 - 2023-08-03
0.16.0 - 2023-07-25
0.15.2 - 2023-07-19
0.15.1 - 2023-07-06
0.15.0 - 2023-07-05
0.14.1 - 2023-06-16
0.14.0 - 2023-06-14
0.13.0 - 2023-06-02
0.12.0 - 2023-05-01
0.11.0 - 2023-04-13
0.10.0 - 2023-04-07
0.9.0 - 2023-03-10
0.8.1 - 2023-03-05
0.8.0 - 2023-03-03
0.7.0 - 2023-01-10
0.6.0 - 2022-12-02
0.5.0 - 2022-11-07
0.4.0 - 2022-09-14
0.3.0 - 2022-08-30
HTTP API
0.35.0 - TBD
0.34.1 - 2025-06-17
0.34.0 - 2025-06-09
0.33.0 - 2024-12-10
0.32.0 - 2024-11-26
0.31.0 - 2024-11-12
0.30.0 - 2024-09-24
0.29.0 - 2024-09-03
0.28.0 - 2024-06-25
0.27.0 - 2024-06-04
0.26.0 - 2024-05-14
0.25.0 - 2024-03-26
0.24.0 - 2024-03-06
0.23.0 - 2024-02-15
0.22.0 - 2024-02-06
0.21.0 - 2024-01-30
0.20.0 - 2024-01-18
0.19.0 - 2023-10-17
0.18.0 - 2023-10-11
0.17.0 - 2023-10-04
0.16.0 - 2023-09-26
0.15.0 - 2023-09-19
0.14.0 - 2023-08-29
0.13.0 - 2023-08-23
0.12.0 - 2023-08-10
0.11.0 - 2023-07-25
0.10.0 - 2023-07-06
0.9.0 - 2023-06-01
0.8.0 - 2023-05-01
0.7.0 - 2023-04-07
0.6.0 - 2023-03-10
0.5.0 - 2023-03-03
0.4.0 - 2022-12-02
0.3.0 - 2022-08-30
0.2.0 - 2021-12-10
0.1.0 - 2021-08-30
Raw API
0.6.4 - TBD
0.6.3 - 2025-09-07
0.6.2 - 2025-08-02
0.6.1 - 2025-06-29
0.6.0 - 2025-05-24
0.5.6 - 2025-04-06
0.5.5 - 2024-12-01
0.5.4 - 2024-10-02
0.5.3 - 2024-10-02
0.5.1 - 2024-07-24
2024-07-20
2024-06-25
0.5.0 - 2024-05-25
0.4.6 - 2024-04-13
0.4.5 - 2024-03-25
0.4.4 - 2024-03-23
0.4.3 - 2024-02-13
0.4.2 - 2024-01-06
0.4.0 - 2023-11-08
0.3.0 - 2023-10-20
0.2.0 - 2023-07-23
0.1.0 - 2023-05-01
Rust
0.33.1 - TBD
0.33.0 - 2025-08-19
0.32.0 - 2025-08-12
0.31.0 - 2025-07-30
0.30.0 - 2025-07-22
0.29.0 - 2025-07-15
0.28.0 - 2025-07-01
0.27.1 - 2025-06-25
0.27.0 - 2025-06-10
0.26.2 - 2025-06-03
0.26.1 - 2025-05-30
0.26.0 - 2025-05-28
0.25.0 - 2025-05-13
0.24.0 - 2025-04-22
0.23.0 - 2025-04-15
0.22.0 - 2025-04-01
0.21.0 - 2025-03-18
0.20.0 - 2025-02-12
0.19.0 - 2025-01-21
0.18.0 - 2025-01-08
0.17.0 - 2024-12-17
0.16.0 - 2024-11-12
0.15.0 - 2024-10-22
0.14.1 - 2024-10-08
0.14.0 - 2024-10-01
0.13.0 - 2024-09-25
0.12.1 - 2024-08-27
0.12.0 - 2024-07-30
0.11.4 - 2024-07-16
0.11.3 - 2024-07-09
0.11.2 - 2024-06-25
0.11.1 - 2024-06-11
0.11.0 - 2024-06-04
0.10.0 - 2024-05-22
0.9.1 - 2024-05-15
0.9.0 - 2024-05-14
0.8.0 - 2024-04-01
0.7.1 - 2024-03-05
0.7.0 - 2024-03-01
0.6.0 - 2024-01-16
0.5.0 - 2023-11-23
0.4.2 - 2023-10-23
0.4.1 - 2023-10-06
0.4.0 - 2023-09-21
0.3.0 - 2023-09-13
0.2.1 - 2023-08-25
0.2.0 - 2023-08-10
0.1.0 - 2023-08-02
Data
2025-08-26
2025-08-05
2025-07-25
2025-07-06
2025-07-01
2025-06-27
2025-06-17
2025-06-10
2025-05-20
2025-05-07
2025-04-05
2025-04-01
2025-03-13
2025-02-26
2025-02-01
2025-01-15
2024-12-14
2024-12-03
2024-12-02
2024-10-22
2024-10-24
2024-07-05
2024-06-25
2024-06-18
2024-05-07
2024-01-18
2023-11-17
2023-10-04
2023-08-29
2023-07-23
2023-05-01
2023-04-28
2023-03-07
Collapse all
Examples and tutorials
Instrument definitions
Finding liquid instruments
What is a liquid instrument?
A liquid instrument is an instrument that is readily traded. Identifying liquid instruments is important for a few reasons:
- Reducing transaction costs. A liquid instrument generally has tight bid-ask spreads and adequate size on the bid and ask. This reduces the amount of slippage incurred from using aggressive order types.
- Signal generation. Consistent trading activity allows for signal generation in order flow strategies.
- Price efficiency. Increased participation results in more efficient price discovery. This results in more reliable price valuations for risk management.
Check out the Databento Microstructure Guide for more information about liquidity.
Overview
In this example we'll use the Historical client to find liquid futures instruments.
We'll use the following schemas:
- The statistics schema, which contains exchange-published statistics such as cleared volume and open interest.
- The definition schema, which contains instrument definitions and properties such as
raw_symbol
andasset
. Theasset
field refers to the parent product for an instrument. - The BBO schema, which contains the best bid and offer, subsampled at 1-second or 1-minute intervals.
We'll request statistics and definition data for all symbols. Next, we'll filter for the top 25 instruments by volume. After we filter, we'll get BBO data for these instruments to find the median bid and ask size over a full day.
Example
import databento as db
# First, create a Historical client
client = db.Historical("$YOUR_API_KEY")
# Set parameters
dataset = "GLBX.MDP3"
start_date = "2025-03-07"
top_instruments_count = 25
# First, download definition data for all symbols
def_data = client.timeseries.get_range(
dataset=dataset,
symbols="ALL_SYMBOLS",
schema="definition",
start=start_date,
)
# Convert to DataFrame. Filter for outright futures
def_df = def_data.to_df()
def_df = def_df[def_df["instrument_class"] == db.InstrumentClass.FUTURE]
def_df = def_df[["raw_symbol", "instrument_id", "asset", "min_price_increment"]]
# Next, download statistics data for all symbols
stats_data = client.timeseries.get_range(
dataset=dataset,
symbols="ALL_SYMBOLS",
schema="statistics",
start=start_date,
)
# Convert to DataFrame
stats_df = stats_data.to_df()
# Get cleared volume records
volume_df = stats_df[stats_df["stat_type"] == db.StatType.CLEARED_VOLUME]
volume_df = volume_df.drop_duplicates("instrument_id", keep="last")
volume_df = volume_df.rename(columns={"quantity": "volume"})
volume_df = volume_df[["instrument_id", "volume"]]
# Get open interest records
open_interest_df = stats_df[stats_df["stat_type"] == db.StatType.OPEN_INTEREST]
open_interest_df = open_interest_df.drop_duplicates("instrument_id", keep="last")
open_interest_df = open_interest_df.rename(columns={"quantity": "open_interest"})
open_interest_df = open_interest_df[["instrument_id", "open_interest"]]
# Merge volume and open interest data
stats_df = volume_df.merge(open_interest_df, on="instrument_id", how="inner")
# Merge definition data with statistics data
stats_df = stats_df.merge(def_df, on="instrument_id", how="inner")
# Sort by volume, keeping one instrument per product
stats_df = stats_df.sort_values("volume", ascending=False)
stats_df = stats_df.drop_duplicates("asset")
# Get instrument IDs for highest volume instruments
top_instruments = stats_df["instrument_id"].to_list()[:top_instruments_count]
# Download BBO-1s data for highest volume instruments
bbo_data = client.timeseries.get_range(
dataset=dataset,
symbols=top_instruments,
stype_in="instrument_id",
schema="bbo-1s",
start=start_date,
)
# Convert to DataFrame
bbo_df = bbo_data.to_df()
# Merge DataFrames
df = bbo_df.merge(stats_df, on="instrument_id", how="inner")
df["spread_ticks"] = (df["ask_px_00"] - df["bid_px_00"]) / df["min_price_increment"]
# Calculate aggregated values and sort by volume
df = (
df.groupby(by="instrument_id")
.agg(
product=("asset", "first"),
symbol=("raw_symbol", "first"),
volume=("volume", "first"),
open_interest=("open_interest", "first"),
median_bid_size=("bid_sz_00", lambda x: int(x.median())),
median_ask_size=("ask_sz_00", lambda x: int(x.median())),
median_tick_spread=("spread_ticks", lambda x: int(x.median().round())),
)
.sort_values("volume", ascending=False)
)
print(df)
Result
product symbol volume open_interest median_bid_size median_ask_size median_tick_spread
instrument_id
42004113 ZN ZNM5 3259518 4675273 903 946 1
5002 ES ESH5 2553819 2115168 9 9 1
42003617 MNQ MNQH5 2419630 154823 2 2 2
42325990 ZF ZFM5 2039292 6111849 483 492 1
42005347 MES MESH5 1931181 210864 12 12 1
42325992 ZT ZTM5 1320314 3854308 443 455 1
42002878 TN TNM5 962958 2206335 278 285 1
254274 SR3 SR3Z5 894673 979670 2864 2898 1
42288528 NQ NQH5 763150 273526 1 1 4
42004255 ZB ZBM5 708447 1770658 228 236 1
42001682 UB UBM5 474088 1757409 99 102 1
42272 6E 6EH5 392404 601400 15 14 1
625061 CL CLJ5 341632 239110 6 6 1
680969 ZC ZCK5 313858 756635 83 74 1
42001620 RTY RTYH5 258273 454862 2 3 2
57969 6J 6JH5 242466 278473 23 21 1
42011026 MYM MYMH5 216632 23321 3 3 2
892 NG NGJ5 202475 208149 3 3 2
457556 ZS ZSK5 192141 382968 16 15 1
42002868 YM YMH5 185559 70792 3 3 2
29307 6B 6BH5 178634 192142 39 40 1
19604 GC GCJ5 166364 329381 2 2 2
713217 ZQ ZQJ5 158838 497521 41383 11147 1
45908 6C 6CH5 137522 303329 27 28 1
52126 6A 6AH5 131315 180048 29 31 1