Live vol dashboard

Every chart below is a live demo of what you can build with the CryptoVol API. CryptoVIX-style IV index, arbitrage-free 3D surfaces, term structure across sessions, smile comparison — all from public REST endpoints. Click View API call under any panel to see the exact request that powers it. Sign up free to start querying.

Implied Volatility Index
Click legend to isolate · last 6 months
LOADING DATA...
View API callGET /v1/vol-index
# Daily 30-day implied vol index, one row per (asset, date)
curl -H "X-CryptoVol-Key: cvk_live_..." \
  "https://cryptovol-api-nbakzshi6q-uc.a.run.app/v1/vol-index?ccy=BTC&tenor=30D&start_date=2025-12-01"

# Python SDK — pip install cryptovol
from cryptovol import CryptoVol
cv  = CryptoVol(api_key="cvk_live_...")
idx = cv.vol_index(ccy="BTC", tenor="30D", start_date="2025-12-01")
print(idx.data[-1].date, idx.data[-1].value)
# → 2026-05-30  42.18
ASSET
Controls the smile, term structure, and session charts below
Vol Surface (3D)
Arbitrage-free fitted surface · drag to rotate · scroll to zoom · hover for details
LOADING DATA...
View API callGET /v1/vol-surface/full
# Full arbitrage-free surface — all expiries × all strikes for one session
curl -H "X-CryptoVol-Key: cvk_live_..." \
  "https://cryptovol-api-nbakzshi6q-uc.a.run.app/v1/vol-surface/full?ccy=BTC&session=us"

# Python SDK
surf = cv.vol_surface_full(ccy="BTC", session="us")
for exp in surf.expiries:
    print(exp.expiry, exp.forward, len(exp.strikes), "strikes")
Vol Term Structure
Latest ATM vol across tenors by session
LOADING DATA...
View API callGET /v1/vol-surface/full
# Get the full surface, then pick ATM (moneyness=1.0) at each tenor
curl -H "X-CryptoVol-Key: cvk_live_..." \
  "https://cryptovol-api-nbakzshi6q-uc.a.run.app/v1/vol-surface/full?ccy=BTC&session=us"

# Python SDK — one call per session, pluck ATM row at each tenor
for sess in ["asia", "london", "us"]:
    s = cv.vol_surface_full(ccy="BTC", session=sess)
    term = [(e.tenor, e.atm_vol) for e in s.expiries]
Session Smile Comparison
Across Asia, London and US sessions · lines = fitted · dots = market quotes
LOADING DATA...
View API callGET /v1/vol-surface/full
# Compare smile across the three daily sessions for one expiry
for sess in ["asia", "london", "us"]:
    surf  = cv.vol_surface_full(ccy="BTC", session=sess)
    smile = next(e for e in surf.expiries if e.expiry == "2026-06-27")
    print(sess, smile.atm_vol, smile.rr_25d, smile.bf_25d)

Want to query this data from your code?

Everything you see above is built on top of the public CryptoVol API. Sign up for a free BASIC account (no card) and pull the same numbers into your backtester, dashboard, or trading bot.