Skip to content

Options · Exposure, levels, volatility and OI

Options exposure history

Net modeled gamma exposure through time (SPX and SPXW).
GET/v1/options/exposure/historyoptionsExposureHistory
On this page

The 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=SPXW

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

Parameters

7 parameters, 1 required.

ParameterType and limitsDescription
underlying_symbolqueryrequiredstringat most 8 characterspattern ^[A-Za-z][A-Za-z0-9.]{0,7}$SPX or SPXW (the retained history covers those roots only).
start_timequeryoptionalintegerunix-msmin 946684800000max 4102444800000Start of the window (inclusive). Default: one hour before end_time.
end_timequeryoptionalintegerunix-msmin 946684800000max 4102444800000End of the window (exclusive). Default: now.
intervalqueryoptionalstring1m5m15m30m1hdefault 5mStep: 1m, 5m, 15m, 30m or 1h.
contract_typequeryoptionalstringcallputCalls or puts. Omit for both.
date_of_expiryqueryoptionalstringdateOnly this expiration.
max_dtequeryoptionalintegermin 0max 3650Only expirations within this many days.

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

  • dataarray<object>required6 fields inside
    • availablebooleanrequiredThe 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.