Introducing Cboe Futures Exchange (CFE)

April 15, 2026
Title picture for Introducing Cboe Futures Exchange (CFE)

We're excited to announce that Cboe Futures Exchange (CFE) is now available on Databento, with real-time data and historical coverage dating back to 2018.

CFE is the exclusive venue for futures on the Cboe Volatility Index (VIX), a widely used benchmark for expected U.S. equity market volatility. Its coverage also extends to corporate bond index, equity index, and cryptocurrency contracts.

  • Volatility products: VIX futures (VX), Mini VIX futures (VXM), options on VIX futures (UX), and Cboe S&P 500 Variance futures (VA), which reference realized variance of the S&P 500.
  • Corporate bond and credit derivatives: IBHY, IBIG, and IEMD futures and options tied to U.S. high-yield, investment-grade, and emerging-market debt.
  • Cryptocurrency futures: Regulated exposure to Bitcoin and Ethereum within a U.S. exchange environment.

Data is sourced directly from the primary CFE Multicast PITCH feed and provides full order book depth across all listed futures, options, spreads, and combination instruments for every expiration. See our catalog for more information.

CFE data can be requested using its dataset ID: XCBF.PITCH.

Historical data is available for usage-based rates, starting at $27.00/GB or with any CFE subscription. Coverage begins on November 4th, 2018.

The example below demonstrates how to request one day of MBO (L3) data for a VIX futures contract using our Python client library.

import databento as db

client = db.Historical("YOUR_API_KEY")

df = client.timeseries.get_range(
    dataset="XCBF.PITCH",
    schema="mbo",
    symbols=["VX/K6"],
    start="2026-04-08",
    end="2026-04-09",
).to_df()

print(df)

Real-time data is included with any CFE subscription plan.

The example below shows how to stream trades data for front-month VIX futures and Mini VIX contracts.

import databento as db

live = db.Live("YOUR_API_KEY")

live.subscribe(
    dataset="XCBF.PITCH",
    schema="trades",
    stype_in="continuous",
    symbols=["VX.n.0", "VXM.n.0"],
)

for record in live:
    print(record)