Historical VRP Data API
Volatility Risk Premium with date-bounded percentile and z-score references. Historical queries use reference rows with SnapshotDate < at.Date. Replay RV uses prior closes, while those reference rows retain their live nightly RV convention; see the limitation below. Same shape as live /v1/vrp.
Endpoint
historical.flashalpha.comAuth: X-Api-KeyTier: Alphacurl -H "X-Api-Key: YOUR_API_KEY" \
"https://historical.flashalpha.com/v1/vrp/SPY?at=2026-03-05T15:30:00"
Response
{
"symbol": "SPY",
"underlying_price": 679.46,
"as_of": "2026-03-05T15:30:00",
"vrp": {
"atm_iv": 18.37,
"rv_5d": 11.38,
"rv_20d": 10.26,
"vrp_5d": 6.99,
"vrp_20d": 8.11,
"z_score": 2.84,
"percentile": 100,
"history_days": 60
},
"variance_risk_premium": 0.0232,
"convexity_premium": 5.43,
"fair_vol": 23.8,
"term_vrp": [ { "dte": 7, "iv": "...", "rv": "...", "vrp": "..." } ],
"directional": { "downside_vrp": "...", "upside_vrp": "..." },
"gex_conditioned": { "regime": "...", "harvest_score": "..." },
"vanna_conditioned": { "outlook": "...", "interpretation": "..." },
"regime": { "gamma": "positive_gamma", "vrp_regime": "...", "gamma_flip": 677.5 },
"strategy_scores": { "short_put_spread": "...", "short_strangle": "...", "iron_condor": "...", "calendar_spread": "..." },
"macro": { "vix": 23.75, "vix_3m": "...", "vix_term_slope": "...", "dgs10": "...", "hy_spread": 3.5 }
}
Daily-input convention: replay RV and macro use dates strictly before the requested ET date, even at or after close. Percentile and z-score reference rows are also restricted to earlier dates, but remain live nightly observations calculated with same-day RV. Those ranks compare against the live nightly distribution, not a uniformly recomputed prior-settled replay distribution. Moving the history cutoff back another day does not recalculate its stored values. See daily-input timing.
What This Unlocks
- Compare replay VRP with earlier nightly observations - use
percentileandz_scorewith the RV-convention limitation above. - Validate "VRP > X percentile" entry rules using
vrp_5d/vrp_20dagainst the actual historical sequence. - Replay regime-conditioned VRP -
gex_conditioned.harvest_scoreacross positive vs negative gamma for strategy scoring. - Score structures in replay -
strategy_scores(short strangle, iron condor, calendar) use replay-calculated VRP and the documented reference-history convention. - Condition on macro - join
convexity_premiumandfair_volagainst the as-ofmacro.vix_term_slopeto isolate VRP that survives a VIX-term filter.
Related Historical Endpoints
- Historical Volatility - IV vs HV ladder
- Historical IV Surface
- Historical Stock Summary
- VRP (live) - the live version of this endpoint
Related reading
- Complete guide to quant options backtesting - using VRP in a backtest workflow.
- Replaying GEX, VRP & dealer positioning - reconstruct regime-conditioned VRP across past sessions.