VRP History API - Daily VRP Time Series - FlashAlpha Lab API
Lab API VRP History

VRP History API

Daily volatility risk premium time series for charting and backtesting, populated nightly after market close.

Endpoint

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

Parameters

Name In Required Default Description
symbol path yes - Stock/ETF ticker
days query no 30 Lookback days (1-365)
curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://lab.flashalpha.com/v1/vrp/SPY/history?days=30"
import requests

resp = requests.get(
    "https://lab.flashalpha.com/v1/vrp/SPY/history",
    headers={"X-Api-Key": "YOUR_API_KEY"},
    params={"days": 30}
)
data = resp.json()
print(f"Data points: {data['data_points']}")
const resp = await fetch(
  "https://lab.flashalpha.com/v1/vrp/SPY/history?days=30",
  { headers: { "X-Api-Key": "YOUR_API_KEY" } }
);
const data = await resp.json();
console.log("Data points: " + data.data_points);

Response

{
  "symbol": "SPY",
  "days": 30,
  "data_points": 22,
  "history": [
    {
      "date": "2026-05-30",
      "spot": 531.55,
      "atm_iv": 13.4,
      "rv_5d": 9.8,
      "rv_30d": 11.2,
      "vrp_20d": 2.2,
      "straddle": 6.85,
      "expected_move_1d": 4.32
    }
  ]
}

Key Response Fields

Field Type Description
symbolstringTicker symbol
daysnumberRequested lookback
data_pointsnumberNumber of data points returned
history[].datedateSnapshot date
history[].spotnumberClose price
history[].atm_ivnumber?ATM IV (%)
history[].rv_5d ... rv_30dnumber?Realized vol windows
history[].vrp_20dnumber?VRP spread (ATM_IV - RV20d)
history[].straddlenumber?ATM straddle price ($)
history[].expected_move_1dnumber?1-day expected move ($)

Errors

Status Description
403Requires Alpha plan or higher

About

VRP History returns a daily volatility risk premium time series for charting and backtesting. Each row pairs the close price with ATM IV, realized vol windows, the 20-day VRP spread (ATM_IV minus RV20d), ATM straddle price, and the 1-day expected move. The series is populated by the nightly data service after market close (4:35 PM ET).

ATM IV is computed via BSM from Thetadata option snapshots, independent of real-time pollers. Realized vol comes from Yahoo Finance historical closes using log returns and sample standard deviation. Z-score and percentile metrics become available after 5 or more data points have accumulated.

Common Use Cases

  • Chart the implied-versus-realized spread over time by plotting history[].atm_iv against the rv_5d...rv_30d windows per symbol
  • Backtest short-vol or long-vol entries against historical vrp_20d to measure the edge of selling when the spread is wide
  • Score expected-move accuracy by comparing expected_move_1d to the next day's realized close-to-close move
  • Build percentile or z-score overlays from the vrp_20d series once 5+ data_points exist, defining rich/cheap thresholds with no lookahead bias
  • Calibrate straddle pricing by tracking history[].straddle versus realized range to size premium-selling positions
  • Detect regime shifts where vrp_20d compresses or flips negative, flagging when realized vol is overtaking implied

Related reading

Complementary endpoints

  • VRP - the live VRP dashboard with z-score, percentile, and dealer risk
  • Realized Volatility - the RV windows that anchor the spread
  • VIX State - index-level vol regime context for the time series

Ready to build with FlashAlpha?

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

No credit card required Setup in 60 seconds Secure & reliable