Lab API
VRP Analytics
VRP Analytics API ALPHA+
Real-time Volatility Risk Premium dashboard - VRP spreads across windows, z-scores, directional VRP, GEX-conditioned regime analysis, strategy suitability scores, and dealer flow risk.
α
Alpha+ Plan Required
These endpoints require the Alpha+ plan. View pricing →
New to VRP?
The Practical Guide to Trading VRP covers z-scores, directional decomposition, GEX-conditioned regimes, and strategy selection.
Works with CME index futures.
Pass
ES=F or NQ=F and URL-encode the = as %3D - e.g. /v1/vrp/ES%3DF. Options-on-futures are priced with Black-76 using the CME multiplier ($50/pt ES, $20/pt NQ); CME index futures are Growth-tier. See the futures hub.
VRP Dashboard
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) |
date |
query | no | Historical date (yyyy-MM-dd). Returns the persisted VRP snapshot for that date instead of the live dashboard; 404 if no snapshot exists. |
curl -H "X-Api-Key: YOUR_API_KEY" \
"https://lab.flashalpha.com/v1/vrp/SPY"
import requests
resp = requests.get(
"https://lab.flashalpha.com/v1/vrp/SPY",
headers={"X-Api-Key": "YOUR_API_KEY"}
)
data = resp.json()
print(f"VRP 30d: {data['vrp']['vrp_30d']}%")
print(f"Z-score: {data['vrp']['z_score']}")
print(f"Regime: {data['regime']['gamma']}")
const resp = await fetch(
"https://lab.flashalpha.com/v1/vrp/SPY",
{ headers: { "X-Api-Key": "YOUR_API_KEY" } }
);
const data = await resp.json();
console.log(`VRP 30d: ${data.vrp.vrp_30d}%`);
console.log(`Z-score: ${data.vrp.z_score}`);
console.log(`Regime: ${data.regime.gamma}`);
Dashboard Response
{
"symbol": "SPY",
"underlying_price": 580.51,
"as_of": "2026-03-27T15:30:00Z",
"market_open": true,
"vrp": {
"atm_iv": 18.45,
"rv_5d": 15.33, "rv_10d": 13.60, "rv_20d": 13.04, "rv_30d": 12.67,
"vrp_5d": 3.12, "vrp_10d": 4.85, "vrp_20d": 5.41, "vrp_30d": 5.78,
"z_score": 1.34, "percentile": 82, "history_days": 252
},
"variance_risk_premium": 0.042,
"convexity_premium": 2.15,
"fair_vol": 20.60,
"directional": {
"put_wing_iv_25d": 21.03, "call_wing_iv_25d": 16.82,
"downside_rv_20d": 13.68, "upside_rv_20d": 12.61,
"downside_vrp": 7.35, "upside_vrp": 4.21
},
"term_vrp": [
{ "dte": 7, "iv": 15.89, "rv": 12.77, "vrp": 3.12 },
{ "dte": 14, "iv": 17.22, "rv": 12.37, "vrp": 4.85 },
{ "dte": 30, "iv": 18.45, "rv": 12.67, "vrp": 5.78 }
],
"gex_conditioned": {
"regime": "positive_gamma",
"harvest_score": 0.82,
"interpretation": "Dealers long gamma - dampening moves, supportive for premium selling."
},
"vanna_conditioned": {
"outlook": "Supportive - vol compression accelerating",
"interpretation": "Positive vanna with spot above flip: compression strengthening."
},
"regime": {
"gamma": "positive_gamma",
"vrp_regime": "elevated",
"net_gex": 4200000000,
"gamma_flip": 572.50
},
"strategy_scores": {
"short_straddle": 78,
"short_strangle": 82,
"iron_condor": 85,
"calendar_spread": 61,
"jade_lizard": 74
},
"net_harvest_score": 0.78,
"dealer_flow_risk": 15,
"warnings": [],
"macro": {
"vix": 16.42, "vix_3m": 17.85, "vix_term_slope": 1.087,
"dgs10": 4.33, "hy_spread": 3.17, "fed_funds": 3.64
}
}
Dashboard Fields
| Section | Field | Description |
|---|---|---|
| VRP | vrp.atm_iv | ATM implied volatility (%) |
| VRP | vrp.rv_5d .. rv_30d | Realized volatility across 4 windows (5d, 10d, 20d, 30d) |
| VRP | vrp.vrp_5d .. vrp_30d | IV minus RV across 4 rolling windows (percentage points) - see volatility risk premium |
| VRP | vrp.z_score | VRP z-score vs trailing 252-day history (null if insufficient history) |
| VRP | vrp.percentile | VRP percentile rank (0-100) over lookback window (null if insufficient history) |
| VRP | vrp.history_days | Number of days of VRP history available for z-score/percentile calculation |
| Top Level | variance_risk_premium | Variance risk premium as a decimal (e.g. 0.042 = 4.2%) - see VRP |
| Top Level | convexity_premium | Convexity premium in vol points - wing richness vs ATM |
| Top Level | fair_vol | Model-estimated fair vol from variance-swap integration |
| Directional | directional.put_wing_iv_25d | 25-delta put implied volatility |
| Directional | directional.call_wing_iv_25d | 25-delta call implied volatility |
| Directional | directional.downside_rv_20d | 20-day downside realized vol proxy |
| Directional | directional.upside_rv_20d | 20-day upside realized vol proxy |
| Directional | directional.downside_vrp | Put-side VRP - see directional VRP |
| Directional | directional.upside_vrp | Call-side VRP - see directional VRP |
| Term VRP | term_vrp[].dte | Days to expiry for term VRP bucket (7, 14, 30) |
| Term VRP | term_vrp[].iv, rv, vrp | Implied vol, realized vol, and term VRP spread for each DTE bucket |
| GEX Conditioned | gex_conditioned.regime | Current GEX-conditioned regime - positive_gamma or negative_gamma |
| GEX Conditioned | gex_conditioned.harvest_score | Premium harvest suitability score (0-1) |
| GEX Conditioned | gex_conditioned.interpretation | Human-readable regime interpretation for VRP context |
| Vanna Conditioned | vanna_conditioned.outlook | Vanna-driven vol outlook summary |
| Regime | regime.gamma | Gamma regime label - positive_gamma or negative_gamma |
| Regime | regime.net_gex | Net gamma exposure in dollars |
| Regime | regime.gamma_flip | Price level where gamma regime flips |
| Strategy Scores | strategy_scores | Strategy scores (0-100) for short strangle, iron condor, calendar spread - null if insufficient data |
| Top Level | dealer_flow_risk | Dealer flow risk score (0-100) - higher means more dealer rebalancing risk |
| Warnings | warnings | Array of risk flags (e.g. negative_gamma, FOMC imminent, earnings, low liquidity) |
| Macro | macro.vix | Current VIX level |
| Macro | macro.vix_3m | 3-month VIX level |
| Macro | macro.vix_term_slope | VIX / VIX3M ratio - below 1.0 indicates contango, above 1.0 indicates backwardation |
| Macro | macro.dgs10 | 10-year Treasury yield |
| Macro | macro.hy_spread | High-yield credit spread |
| Macro | macro.fed_funds | Federal funds rate |
Use Cases
- Time premium-selling entries - read the VRP
z_scoreandpercentileto fire short-vol structures only when the premium is statistically rich - Pick the richer side - compare upside vs downside VRP to decide whether to sell puts or calls and lean skew trades the right way
- Gate on the gamma regime - pair the VRP spread with the GEX-conditioned regime to confirm whether dealers are suppressing or amplifying realized vol before sizing
- Avoid trading into trapped risk - check the dealer risk level and
warningsarray to skip names where the premium reflects genuine event risk, not edge - Frame against macro - use the macro context (
dgs10,hy_spread,fed_funds) to size short-vol exposure for the rate and credit backdrop - Seed your own history - archive daily
/v1/vrpsnapshots via cron to build a backtestable VRP time series, or read VRP History directly
Related
Related reading
- Realized vs implied volatility & the risk premium - the foundation for why VRP exists and how to read the spread
- VRP z-score timing: a statistical edge for premium selling - turn the
z_scoreinto disciplined entry and exit rules
Complementary endpoints
- VRP History - the daily VRP time series for charting and backtesting
- Realized Volatility - the RV leg of the spread across windows
- Volatility - IV, IV-RV spreads, skew, and term structure context
- Expected Move - the straddle-implied move the premium is paying for
Ready to build?
Get your free API key and start pulling live options data in 30 seconds.