Skip to content

Options · Exposure, levels, volatility and OI

Options volatility rank

Implied volatility rank and percentile of a constant-maturity volatility.
On this page

Where the current constant-maturity implied volatility stands in its range over the lookback: the rank ((current - minimum) / (maximum - minimum)) and the percentile (the share of days with a lower volatility), with the daily series they are computed from. The history is the platform's own daily record; coverage_ratio is the share of lookback days it holds, and history_status reports a series that is still loading. The default window is the longest your plan allows, up to 365 days.

Example request

curl -sS --get "https://api.ordermap.si/v1/options/volatility/rank" \
  -H "Authorization: Bearer $ORDERMAP_API_KEY" \
  --data-urlencode underlying_symbol=SPXW

Set ORDERMAP_API_KEY to your key. Replace the dates with a recent trading date.

Parameters

5 parameters, 1 required.

ParameterType and limitsDescription
underlying_symbolqueryrequiredstringat most 8 characterspattern ^[A-Za-z][A-Za-z0-9.]{0,7}$Option root or family: SPX covers the SPX and SPXW roots, SPXW only the weekly root, QQQ, NDXP, RUTW, XSP ...
maturityqueryoptionalstring714306090180365default 30Constant maturity of the volatility, in days: 7, 14, 30, 60, 90, 180 or 365.
lookbackqueryoptionalintegerdefault 365min 20max 365Days the rank is measured over; never more than your plan's history window (a longer request is shortened, with a warning).
start_timequeryoptionalintegerunix-msmin 946684800000max 4102444800000Start of the returned series. Default: the start of your plan's history window (up to 365 days).
end_timequeryoptionalintegerunix-msmin 946684800000max 4102444800000Evaluation time. Default: now.

Response

StatusMeaningBody
200Successful response.Schema below
400Invalid, unknown or repeated parameters, or an invalid cursor.Error object
401Missing or invalid API key.Error object
403The plan, dataset release or account state does not allow this request.Error object
422The request is valid but no data exists for it.Error object
429Rate limit, burst limit or cooldown; wait Retry-After seconds.Retry-AfterError object
500Internal error.Error object
503Data temporarily unavailable; retry after Retry-After seconds.Retry-AfterError object
504The request timed out.Error object

Authenticated responses carry the X-RateLimit-* headers (see rate limits); 429 and 503 add Retry-After.

200 response body

  • dataobjectrequiredImplied volatility rank.22 fields inside
    • currentobjectrequiredThe latest value.7 fields inside
      • coverage_rationumber | nullrequiredShare of the window's days with data, 0 to 1.
      • datestringrequiredDate of the latest value.
      • implied_volatilitynumber | nullrequiredImplied volatility as a decimal.
      • percentilenumber | nullrequiredPercentile, 0 to 1.
      • ranknumber | nullrequiredRank, 0 to 1.
      • window_maximumnumber | nullrequiredHighest volatility in the window.
      • window_minimumnumber | nullrequiredLowest volatility in the window.
    • historyarray<object>requiredDaily series, oldest first.5 fields inside
      • datestringdaterequiredDate.
      • implied_volatilitynumber | nullrequiredImplied volatility.
      • percentilenumber | nullrequiredPercentile on that date.
      • ranknumber | nullrequiredRank on that date.
      • underlying_pricenumber | nullrequiredUnderlying close.
    • history_statusobjectrequiredState of the stored history.4 fields inside
      • fromstring | nullrequiredFirst date being loaded.
      • progressnumber | nullrequiredProgress while loading, 0 to 1.
      • statestringrequiredready; queued or running while missing days load; failed; or unavailable when missing days are not stored and not being loaded.readyqueuedrunningfailedunavailable
      • tostring | nullrequiredLast date being loaded.
    • lookback_daysintegerrequiredRank window.
    • maturity_daysintegerrequiredConstant maturity.
    • underlying_symbolstringrequiredThe requested underlying.
  • metaobjectrequiredMeta object

Example response

{
  "data": {
    "current": {
      "coverage_ratio": 1,
      "date": "2026-10-16",
      "implied_volatility": 0.171,
      "percentile": 0.41,
      "rank": 0.28,
      "window_maximum": 0.452,
      "window_minimum": 0.109
    },
    "history": [
      {
        "date": "2026-10-15",
        "implied_volatility": 0.169,
        "percentile": 0.4,
        "rank": 0.27,
        "underlying_price": 6004.8
      }
    ],
    "history_status": {
      "from": null,
      "progress": 1,
      "state": "ready",
      "to": null
    },
    "lookback_days": 365,
    "maturity_days": 30,
    "underlying_symbol": "SPX"
  },
  "meta": {
    "as_of": 1760659200123,
    "coverage": {
      "complete": true
    },
    "delay_ms": 0,
    "delayed": false,
    "request_id": "0199f0c2-5a1e-7c3b-9d4e-2b6f8a1c3d5e",
    "source": "opra"
  }
}

Values are illustrative. Missing values are null, never 0.