IV Rank

Overview

IV Rank returns per-session-date implied-volatility context for one ticker, looking back over a window you control. For each session, the response gives the last IV, the window min, and the window max for both call and put legs. Compute rank as (lastIv - windowMinIv) / (windowMaxIv - windowMinIv) for the leg of interest.

POST/v1/options/tool/iv-rank
curl -X POST https://api.quantdata.us/v1/options/tool/iv-rank \
  -H "Authorization: Bearer <YOUR_API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{
    "filter": { "ticker": "AAPL" },
    "lookBackPeriod": 30,
    "maturity": 30
  }'

Required fields

Three required fields. There is no sessionDate, timeRange, or filterExpression on this endpoint.

  • filter.ticker: the single ticker to chart.
  • lookBackPeriod: window size in days, between 1 and 365 inclusive.
  • maturity: target days to expiration, between 1 and 365 inclusive. Contracts within a ±50% band of this value are selected.

filter.contractTypes is the only other optional field; when omitted both calls and puts contribute to the response.

Calls only, 90 day look-back, 14 day maturity

Request · calls + tighter window
{
  "filter": {
    "ticker": "AAPL",
    "contractTypes": ["CALL"]
  },
  "lookBackPeriod": 90,
  "maturity": 14
}

Response shape

datais an object keyed by session date. The entries are ordered by session date in ascending order. Each entry carries the IV summary for both legs, the contract's expirationDate, and the underlying stockPrice. expirationDates at the top level lists every distinct expiration that was sampled.

200 OK · application/json
{
  "expirationDates": ["2026-05-16", "2026-05-23"],
  "data": {
    "2026-04-14": {
      "contractTypeToIVData": {
        "CALL": { "lastIv": 0.2538, "windowMaxIv": 0.3120, "windowMinIv": 0.1840 },
        "PUT": { "lastIv": 0.2612, "windowMaxIv": 0.3210, "windowMinIv": 0.1910 }
      },
      "expirationDate": "2026-05-16",
      "stockPrice": 208.45
    },
    "2026-05-13": {
      "contractTypeToIVData": {
        "CALL": { "lastIv": 0.2412, "windowMaxIv": 0.3120, "windowMinIv": 0.1840 },
        "PUT": { "lastIv": 0.2502, "windowMaxIv": 0.3210, "windowMinIv": 0.1910 }
      },
      "expirationDate": "2026-05-16",
      "stockPrice": 213.45
    }
  }
}

Per-session fields:

  • contractTypeToIVData: map keyed by CALL / PUT. Each entry has lastIv, windowMinIv, windowMaxIv. All three are fractional, where 0.25 means 25%.
  • expirationDate: the contract expiration sampled for this session.
  • stockPrice: underlying price at the session close.

Where to go next