Options · Exposure, levels, volatility and OI
Options volatility expected move
/v1/options/volatility/expected-moveoptionsVolatilityExpectedMoveFor each listed expiration, the move the options market implies for the underlying by that expiration at one standard deviation (price x at-the-money implied volatility x the square root of the time to expiry), in points and percent, with the resulting lower and upper bound around the current price. It is a statistic of option prices, not a forecast; roughly two thirds of outcomes fall inside the bounds if the volatility is right.
Example request
curl -sS --get "https://api.ordermap.si/v1/options/volatility/expected-move" \
-H "Authorization: Bearer $ORDERMAP_API_KEY" \
--data-urlencode underlying_symbol=SPXWconst params = new URLSearchParams({
underlying_symbol: "SPXW",
});
const res = await fetch(`https://api.ordermap.si/v1/options/volatility/expected-move?${params}`, {
headers: { Authorization: `Bearer ${process.env.ORDERMAP_API_KEY}` },
});
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
const { data, meta } = await res.json();
console.log(data, meta.coverage);Set ORDERMAP_API_KEY to your key. Replace the dates with a recent trading date.
Parameters
6 parameters, 1 required.
| Parameter | Type and limits | Description |
|---|---|---|
underlying_queryrequired | stringat 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 ... |
datequeryoptional | stringdate | Trading date (YYYY-MM-DD). Default: the current session, else the most recent completed one. |
sessionqueryoptional | stringrthgthdefault rth | Trading session: rth is the regular session, gth the overnight (global trading hours) session before the trading date. Overnight data requires the Pro plan and exists only for underlyings with an overnight session; GET /v1/options/sessions shows which. |
min_queryoptional | integermin 0max 3650 | Minimum days to expiration (0 = expires on the trading date). |
max_queryoptional | integermin 0max 3650 | Maximum days to expiration. |
max_queryoptional | integerdefault 20min 1max 100 | Number of expirations to return, soonest first. |
Response
| Status | Meaning | Body |
|---|---|---|
200 | Successful response. | Schema below |
400 | Invalid, unknown or repeated parameters, or an invalid cursor. | Error object |
401 | Missing or invalid API key. | Error object |
403 | The plan, dataset release or account state does not allow this request. | Error object |
422 | The request is valid but no data exists for it. | Error object |
429 | Rate limit, burst limit or cooldown; wait Retry-After seconds.Retry-After | Error object |
500 | Internal error. | Error object |
503 | Data temporarily unavailable; retry after Retry-After seconds.Retry-After | Error object |
504 | The request timed out. | Error object |
Authenticated responses carry the X-RateLimit-* headers (see rate limits); 429 and 503 add Retry-After.
200 response body
dataarray<object>required11 fields insideatm_implied_volatilitynumber | nullrequiredAt-the-money implied volatility.date_of_expirystringdaterequiredExpiration.days_to_expiryintegerrequiredDays from the trading date.expected_movenumber | nullrequiredOne standard deviation in points.expected_move_percentnumber | nullrequiredThe move in percent of the underlying price.forwardnumber | nullrequiredForward price.lower_boundnumber | nullrequiredUnderlying price minus the expected move.settlementstringrequiredam (settles on the opening prices) or pm (the close).ampmunderlying_pricenumber | nullrequiredUnderlying price.underlying_symbolstringrequiredOption root of the expiration.upper_boundnumber | nullrequiredUnderlying price plus the expected move.
metaobjectrequiredMeta object
Example response
{
"data": [
{
"atm_implied_volatility": 0.142,
"date_of_expiry": "2026-10-16",
"days_to_expiry": 0,
"expected_move": 24.6,
"expected_move_percent": 0.4085,
"forward": 6021.5,
"lower_bound": 5996.8,
"settlement": "pm",
"underlying_price": 6021.4,
"underlying_symbol": "SPXW",
"upper_bound": 6046
}
],
"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.