Spot-Vol Correlation API
Daily Pearson correlation between spot log-returns and first-differences of ATM implied vol, computed over 20-day and 60-day windows with a regime interpretation label.
Endpoint
X-Api-Key)
Rate Limited: Yes
Growth plan+
Parameters
| Name | In | Required | Default | Description |
|---|---|---|---|---|
symbol |
path | yes | - | Underlying symbol |
curl -H "X-Api-Key: YOUR_API_KEY" \
"https://lab.flashalpha.com/v1/volatility/spot-vol-correlation/SPY"
import requests
resp = requests.get(
"https://lab.flashalpha.com/v1/volatility/spot-vol-correlation/SPY",
headers={"X-Api-Key": "YOUR_API_KEY"}
)
data = resp.json()
print(f"20d corr: {data['spot_vol_correlation_20d']}")
const resp = await fetch(
"https://lab.flashalpha.com/v1/volatility/spot-vol-correlation/SPY",
{ headers: { "X-Api-Key": "YOUR_API_KEY" } }
);
const data = await resp.json();
console.log("20d corr: " + data.spot_vol_correlation_20d);
Response
{
"symbol": "SPY",
"as_of": "2026-05-30T15:30:00Z",
"spot_vol_correlation_20d": -0.62,
"spot_vol_correlation_60d": -0.58,
"data_points_20d": 20,
"data_points_60d": 60,
"interpretation": "Strongly inverse - vol spikes on spot down moves (typical equity regime)."
}
Key Response Fields
| Field | Description |
|---|---|
spot_vol_correlation_20d | Pearson(log_returns(spot), iv_deltas) over the last 20 daily snapshots. null when either series has zero variance or fewer than 20 points exist. |
spot_vol_correlation_60d | Same over the last 60. null when history is too short. |
data_points_* | The actual count of returns/deltas behind each correlation (matches the window). 0 when null. |
interpretation | Label keyed off the shorter window (preferred); falls back to 60d when 20d is null. Bands: < -0.5 strongly inverse, < -0.2 moderately inverse, < 0.2 decoupled, < 0.5 mildly positive, ≥ 0.5 strongly positive. |
Errors
| Status | Description |
|---|---|
404 | insufficient_history - Fewer than 3 daily snapshots exist for the symbol. |
About
Returns the daily Pearson correlation between spot log-returns and first-differences of ATM implied vol. Equity indices typically run strongly negative - vol spikes on spot down moves. The correlation is computed over 20-day and 60-day windows from the DailyVrpSnapshots table populated nightly by the VRP backfill job.
Daily IV here is the ATM IV stored in DailyVrpSnapshots (computed BSM from EOD option snapshots; same path as /v1/vrp/{symbol}/history). Inputs require both a non-null AtmIv and a positive UnderlyingPrice on each row.
Common Use Cases
- Confirm a name sits in the typical inverse equity regime (
spot_vol_correlation_20d< -0.5) before selling vol, using theinterpretationlabel as the quick read - Detect regime shifts when correlation decouples toward 0 or turns positive - a sign the usual leverage effect has broken down
- Compare
spot_vol_correlation_20dagainstspot_vol_correlation_60dto read whether the relationship is strengthening or fading - Screen for symbols whose spot-vol behavior diverges from the index to surface idiosyncratic vol setups
- Gate
nullreadings ondata_points_*so thin-history names don't trip a regime signal - Feed the correlation as a leverage-effect input into hedging or skew-pricing models
Related
Related reading
- Volatility skew trading strategies with live data - how the spot-vol leverage effect shows up as the skew this correlation underpins
Complementary endpoints
- VIX State - the index-level overvixing / undervixing regime alongside this leverage read
- Volatility - the ATM IV series whose first-differences drive this correlation
- Skew Term Structure - the skew-implied side of the same leverage effect
Ready to build?
Get your free API key and start pulling live options data in 30 seconds.