Advanced Volatility API - SVI Parameters, Variance Surfaces, Arbitrage Detection - FlashAlpha Lab API
Lab API Advanced Volatility

Advanced Volatility API ALPHA

Raw SVI parameters, total variance surface grids, arbitrage detection, greeks surfaces, and variance swap fair values.

α Alpha Plan Required

These endpoints require the Alpha+ plan. View pricing →

New to SVI surfaces? Advanced Volatility API Guide explains SVI parameterization, variance surfaces, and arbitrage detection. Also see: Build an IV Surface in Python for a hands-on tutorial.

Endpoint

GET /v1/adv_volatility/{symbol}
Auth required (X-Api-Key) Rate Limited: Yes Alpha 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/adv_volatility/SPY"
import requests

resp = requests.get(
    "https://lab.flashalpha.com/v1/adv_volatility/SPY",
    headers={"X-Api-Key": "YOUR_API_KEY"}
)
data = resp.json()
print(f"SVI a: {data['svi_parameters'][0]['a']}")
print(f"ATM IV: {data['svi_parameters'][0]['atm_iv']}%")
print(f"Arbitrage flags: {len(data['arbitrage_flags'])}")
const resp = await fetch(
  "https://lab.flashalpha.com/v1/adv_volatility/SPY",
  { headers: { "X-Api-Key": "YOUR_API_KEY" } }
);
const data = await resp.json();
console.log(`SVI a: ${data.svi_parameters[0].a}`);
console.log(`ATM IV: ${data.svi_parameters[0].atm_iv}%`);
console.log(`Arbitrage flags: ${data.arbitrage_flags.length}`);

Response

{
  "symbol": "SPY",
  "underlying_price": 580.51,
  "as_of": "2026-03-25T15:00:00Z",
  "market_open": true,
  "svi_parameters": [
    {
      "expiry": "2026-04-04",
      "days_to_expiry": 10,
      "forward": 581.25,
      "a": 0.004521,
      "b": 0.031245,
      "rho": -0.182345,
      "m": 0.012345,
      "sigma": 0.098765,
      "atm_total_variance": 0.008912,
      "atm_iv": 17.85
    }
  ],
  "forward_prices": [
    {
      "expiry": "2026-04-04",
      "days_to_expiry": 10,
      "forward": 581.25,
      "spot": 580.51,
      "basis_pct": 0.1275
    }
  ],
  "total_variance_surface": {
    "moneyness": [-0.5, -0.475, 0.475, 0.5],
    "expiries": ["2026-04-04", "2026-04-17"],
    "tenors": [0.027397, 0.063014],
    "total_variance": [[0.0089, 0.0087], [0.0092, 0.0090]],
    "implied_vol": [[18.05, 17.92], [18.12, 17.98]]
  },
  "arbitrage_flags": [
    {
      "expiry": "2026-04-04",
      "type": "butterfly",
      "strike_or_k": -0.35,
      "description": "Negative butterfly at k=-0.350: d²w/dk²=-0.0152"
    }
  ],
  "variance_swap_fair_values": [
    {
      "expiry": "2026-04-04",
      "days_to_expiry": 10,
      "fair_variance": 0.009234,
      "fair_vol": 18.35,
      "atm_iv": 17.85,
      "convexity_adjustment": 0.50
    }
  ],
  "greeks_surfaces": {
    "vanna": {
      "strikes": [555, 560, 565, 600, 605],
      "expiries": ["2026-04-04", "2026-04-17"],
      "values": [[0.00012, 0.00023], [0.00015, 0.00028]]
    },
    "charm": {
      "strikes": [555, 560, 565, 600, 605],
      "expiries": ["2026-04-04", "2026-04-17"],
      "values": [[0.00045, 0.00038], [0.00052, 0.00041]]
    },
    "volga": {
      "strikes": [555, 560, 565, 600, 605],
      "expiries": ["2026-04-04", "2026-04-17"],
      "values": [[0.00089, 0.00076], [0.00095, 0.00082]]
    },
    "speed": {
      "strikes": [555, 560, 565, 600, 605],
      "expiries": ["2026-04-04", "2026-04-17"],
      "values": [[-0.000003, -0.000002], [-0.000004, -0.000003]]
    }
  }
}

Response Fields

Section Field Description
SVI Parametersa, b, ρ, m, σRaw SVI parameterization: w(k) = a + b(ρ(k−m) + √((k−m)² + σ²))
SVI ParametersforwardImplied forward price from put-call parity
SVI Parametersatm_total_variancew(0) — total variance at-the-money
SVI Parametersatm_ivATM implied vol (%) derived from total variance
Forward Pricesbasis_pct(Forward − Spot) / Spot × 100
Total Variance SurfacemoneynessLog-moneyness grid for the variance surface: −0.5 to +0.5 in 0.025 steps
Total Variance SurfacetenorsTime to expiry in years
Total Variance Surfacetotal_variancew(k,T) values — rows=expiries, columns=moneyness
Total Variance Surfaceimplied_volIV (%) from total variance: σ = √(w/T) × 100
Arbitrage FlagstypeArbitrage type: butterfly (∂²w/∂k² < 0) or calendar (w decreasing in T)
Arbitrage Flagsstrike_or_kLog-moneyness where violation occurs
Variance Swapfair_varianceIntegrated fair variance for the variance swap over [−15%, +15%] moneyness
Variance Swapfair_vol√(fair_variance / T) × 100
Variance Swapconvexity_adjustmentfair_vol − atm_iv — positive = convexity premium from wings
Greeks Surfacesvanna∂²V/∂S∂σ surface across strikes and expiries
Greeks Surfacescharm∂²V/∂S∂t surface
Greeks Surfacesvolga∂²V/∂σ² surface
Greeks Surfacesspeed∂³V/∂S³ surface

Use Cases

  • Vol surface construction - use SVI parameters to build arbitrage-free implied volatility surfaces for any expiry
  • Variance swap pricing - compare fair variance vs ATM IV to identify the convexity premium priced into wings
  • Arbitrage scanning - detect butterfly and calendar arbitrage violations across the vol surface in real time
  • Greeks surface analysis - visualize vanna, charm, volga, and speed exposure across strikes and expiries for portfolio risk
  • Model calibration - use raw SVI parameters as inputs to exotic pricing models, local vol, or stochastic vol frameworks

Ready to build?

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