Options · Exposure, levels, volatility and OI
Options exposure history
/v1/options/exposure/historyoptionsExposureHistoryThe net modeled dealer gamma exposure of the SPX or SPXW chain at each step of a window of at most 24 hours and 500 points, replayed from the chain and underlying price retained for the last seven days. A step the retained inputs cannot support (no chain, or inputs older than 60 seconds) is returned with available false and a reason, never filled in. The default window is the last hour; without the overnight entitlement it starts no earlier than 09:25 ET, and between 20:15 and 09:25 ET a request without start_time and end_time returns data_unavailable. A window that reaches into the overnight hours (20:15 to 09:25 ET) needs the overnight entitlement (API Pro). Exposure uses the classic open interest model: calls long and puts short, an assumption about dealer positioning and not an observation.
Example request
curl -sS --get "https://api.ordermap.si/v1/options/exposure/history" \
-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/exposure/history?${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
7 parameters, 1 required.
| Parameter | Type and limits | Description |
|---|---|---|
underlying_queryrequired | stringat most 8 characterspattern ^[A-Za-z][A-Za-z0-9.]{0,7}$ | SPX or SPXW (the retained history covers those roots only). |
start_queryoptional | integerunix-msmin 946684800000max 4102444800000 | Start of the window (inclusive). Default: one hour before end_time. |
end_queryoptional | integerunix-msmin 946684800000max 4102444800000 | End of the window (exclusive). Default: now. |
intervalqueryoptional | string1m5m15m30m1hdefault 5m | Step: 1m, 5m, 15m, 30m or 1h. |
contract_queryoptional | stringcallput | Calls or puts. Omit for both. |
date_queryoptional | stringdate | Only this expiration. |
max_queryoptional | integermin 0max 3650 | Only expirations within this many days. |
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>required6 fields insideavailablebooleanrequiredThe retained inputs supported a valuation at this step.chain_timestampinteger | nullunix-msrequiredTime of the retained option chain used. Unix epoch milliseconds (UTC).net_exposurenumber | nullrequiredNet modeled dealer gamma exposure in dollars per 1% move; null when unavailable.reasonstring | nullrequiredWhy the step could not be valued.timestampintegerunix-msrequiredTime of the step. Unix epoch milliseconds (UTC).underlying_timestampinteger | nullunix-msrequiredTime of the retained underlying price used. Unix epoch milliseconds (UTC).
metaobjectrequiredMeta object
Example response
{
"data": [
{
"available": true,
"chain_timestamp": 1792160990000,
"net_exposure": -1200000000,
"reason": null,
"timestamp": 1792161000000,
"underlying_timestamp": 1792160999000
}
],
"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.