Volatility Analysis API - Realized Vol, Skew, Hedging Scenarios - FlashAlpha Lab API
Lab API Volatility Analysis

Volatility Analysis API

Comprehensive volatility analysis: realized vol across multiple windows, IV-RV spreads, delta-based skew profiles, GEX by DTE, theta decay, hedging scenarios, OI concentration, and liquidity metrics.

New to volatility analytics? Complete Guide to Options Volatility explains IV, RV, VRP, skew, and term structure. Also see: Realized vs Implied Volatility for understanding the risk premium.

Endpoint

GET /v1/volatility/{symbol}
Auth required (X-Api-Key) Rate Limited: Yes Growth plan+

Parameters

Name In Required Description
symbol path yes Underlying symbol (e.g. SPY, TSLA, AAPL)
curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://lab.flashalpha.com/v1/volatility/TSLA"
import requests

resp = requests.get(
    "https://lab.flashalpha.com/v1/volatility/TSLA",
    headers={"X-Api-Key": "YOUR_API_KEY"}
)
data = resp.json()
print(f"ATM IV: {data['atm_iv']:.1f}%")
print(f"RV 20D: {data['realized_vol']['rv_20d']:.1f}%")
print(f"VRP Assessment: {data['iv_rv_spreads']['assessment']}")
const resp = await fetch(
  "https://lab.flashalpha.com/v1/volatility/TSLA",
  { headers: { "X-Api-Key": "YOUR_API_KEY" } }
);
const data = await resp.json();
console.log(`ATM IV: ${data.atm_iv.toFixed(1)}%`);
console.log(`RV 20D: ${data.realized_vol.rv_20d.toFixed(1)}%`);
console.log(`Assessment: ${data.iv_rv_spreads.assessment}`);

Response

{
  "symbol": "TSLA",
  "underlying_price": 265.50,
  "as_of": "2026-03-09T15:30:00Z",
  "market_open": true,
  "realized_vol": {
    "rv_5d": 52.31, "rv_10d": 48.12, "rv_20d": 45.80,
    "rv_30d": 44.20, "rv_60d": 42.15
  },
  "atm_iv": 48.50,
  "iv_rv_spreads": {
    "vrp_5d": -3.81, "vrp_10d": 0.38, "vrp_20d": 2.70,
    "vrp_30d": 4.30, "vrp_60d": 6.35,
    "assessment": "moderate_premium"
  },
  "skew_profiles": [
    {
      "expiry": "2026-03-14", "days_to_expiry": 5,
      "put_10d_iv": 62.50, "put_25d_iv": 54.20,
      "atm_iv": 48.50, "call_25d_iv": 45.10, "call_10d_iv": 43.80,
      "skew_25d": 9.10, "smile_ratio": 1.202, "tail_convexity": 2.60
    }
  ],
  "term_structure": {
    "near_slope_pct": 5.20, "far_slope_pct": 3.10, "state": "contango"
  },
  "iv_dispersion": { "cross_expiry": 3.45, "cross_strike": 12.80 },
  "gex_by_dte": [
    { "bucket": "0-7d", "net_gex": 1200000, "pct_of_total": 35.2, "contract_count": 450 },
    { "bucket": "8-30d", "net_gex": 800000, "pct_of_total": 23.5, "contract_count": 1200 },
    { "bucket": "31-60d", "net_gex": 950000, "pct_of_total": 27.9, "contract_count": 800 },
    { "bucket": "60d+", "net_gex": 460000, "pct_of_total": 13.4, "contract_count": 600 }
  ],
  "theta_by_dte": [
    { "bucket": "0-7d", "net_theta": -450000, "contract_count": 450 },
    { "bucket": "8-30d", "net_theta": -320000, "contract_count": 1200 }
  ],
  "put_call_profile": {
    "by_expiry": [
      { "expiry": "2026-03-14", "call_oi": 120000, "put_oi": 95000,
        "pc_ratio_oi": 0.792, "call_volume": 45000, "put_volume": 38000, "pc_ratio_volume": 0.844 }
    ],
    "by_moneyness": {
      "otm_call_oi": 85000, "atm_call_oi": 25000, "itm_call_oi": 10000,
      "otm_put_oi": 60000, "atm_put_oi": 20000, "itm_put_oi": 15000
    }
  },
  "oi_concentration": {
    "top_3_pct": 18.5, "top_5_pct": 28.2, "top_10_pct": 45.0, "herfindahl": 0.032
  },
  "hedging_scenarios": [
    { "move_pct": -5, "dealer_shares": 850000, "direction": "buy", "notional_usd": 225575000 },
    { "move_pct": -2, "dealer_shares": 340000, "direction": "buy", "notional_usd": 90230000 },
    { "move_pct": -1, "dealer_shares": 170000, "direction": "buy", "notional_usd": 45115000 },
    { "move_pct": 1, "dealer_shares": -170000, "direction": "sell", "notional_usd": 45115000 },
    { "move_pct": 2, "dealer_shares": -340000, "direction": "sell", "notional_usd": 90230000 },
    { "move_pct": 5, "dealer_shares": -850000, "direction": "sell", "notional_usd": 225575000 }
  ],
  "liquidity": {
    "atm_avg_spread_pct": 1.85, "wing_avg_spread_pct": 45.20,
    "atm_contracts": 120, "wing_contracts": 340
  }
}

Response Fields

Section Field Description
realized_volrv_5drv_60dAnnualized realized volatility (%) for 5, 10, 20, 30, 60 day windows. Log-returns, sample std dev, ×√252.
atm_iv - At-the-money implied volatility from nearest expiry (%)
iv_rv_spreadsvrp_NdIV minus RV spread per window. Positive = IV rich.
iv_rv_spreadsassessmentVRP regime: very_high_premium, healthy_premium, moderate_premium, thin_premium, negative_spread, danger_zone
skew_profiles[]skew_25d25-delta risk reversal: put_25d − call_25d. See skew
skew_profiles[]smile_ratioPut 25d IV / Call 25d IV. >1 = put skew dominant
skew_profiles[]tail_convexityWing curvature: (put10-put25) − (put25-ATM). Positive = steep tail
term_structurestatecontango, backwardation, mixed, or unknown. See term structure
gex_by_dte[]bucket, net_gex, pct_of_totalGEX bucketed by DTE: 0-7d, 8-30d, 31-60d, 60d+
theta_by_dte[]net_thetaAggregate theta × OI × 100 per DTE bucket
oi_concentrationherfindahlHerfindahl index (0-1). Higher = more concentrated. See OI concentration
hedging_scenarios[]move_pct, dealer_shares, notional_usdEstimated dealer hedging for ±1%, ±2%, ±5% moves
liquidityatm_avg_spread_pctAverage bid-ask spread % for ATM options (within 2% of spot). See liquidity
liquiditywing_avg_spread_pctAverage bid-ask spread % for wings (>10% OTM)

Notes

  • Realized vol uses close-to-close log-returns with sample standard deviation (N-1), annualized by √252.
  • Skew profiles use delta-to-moneyness approximation: k = ±σ√t × Φ¹(δ). 25-delta uses 0.6745, 10-delta uses 1.2816.
  • Tail convexity measures the second difference of the skew. Positive values indicate steep left-wing curvature (crash protection being bid).
  • GEX by DTE uses the SpotGamma convention: gamma × OI × 100 × spot² × 0.01.
  • Herfindahl index ranges from 1/N (perfectly even) to 1.0 (all OI at one strike). Values above 0.10 suggest high concentration.
  • Hedging scenarios assume dealers are net short options. Positive GEX + upward move = dealers sell shares.
α Need SVI-calibrated vol surfaces?

This endpoint returns BSM-derived IV. The Alpha plan unlocks /v1/adv_volatility - raw SVI parameters per expiry, total variance surface grids, butterfly/calendar arbitrage detection, greeks surfaces (vanna, charm, volga, speed), and variance swap fair values. Plus svi_vol on every option quote.

Upgrade to Alpha →

What Is the Volatility Analysis Endpoint?

The /v1/volatility/{symbol} endpoint returns a deep volatility profile for any US equity or ETF. It covers realized volatility across 5 windows (5d, 10d, 20d, 30d, 60d), IV-RV spread assessments, delta-based skew profiles per expiry, IV term structure analysis, gamma exposure bucketed by days to expiry, theta decay by DTE, put/call breakdowns by expiry and moneyness, OI concentration metrics (Herfindahl index), multi-move dealer hedging scenarios (±1%, ±2%, ±5%), and options liquidity analysis.

Common Use Cases

  • Vol premium trading - compare realized vol across windows to ATM IV to identify rich/cheap vol regimes
  • Skew analysis - 10-delta and 25-delta skew profiles per expiry reveal crash protection demand and tail risk pricing
  • DTE-based strategies - GEX and theta bucketed by DTE help select optimal expiries for calendar spreads or wheel strategies
  • Risk management - multi-move hedging scenarios show estimated dealer flow for ±1%, ±2%, and ±5% spot moves
  • Liquidity scoring - ATM vs wing bid-ask spreads help assess execution cost before entering a position
  • Concentration risk - OI Herfindahl index and top-strike percentages reveal pin risk and gamma clustering

Ready to build?

Get your free API key and start pulling live options data in 30 seconds.