Skip to content

Options · Exposure, levels, volatility and OI

Options open interest change

Change in open interest per contract between the two latest open interest dates.
On this page

The contracts whose open interest changed between the two most recent open interest dates, with the previous and current figures, the change and the percent change; contracts new on the latest date are flagged. Sorted by the size of the change unless sort says otherwise. Pages follow a snapshot by row offset: if the underlying data was refreshed between pages the response carries the warning snapshot_changed, and rows may repeat or be skipped.

Example request

curl -sS --get "https://api.ordermap.si/v1/options/open-interest/change" \
  -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

16 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 ...
datequeryoptionalstringdateTrading date (YYYY-MM-DD). Default: the most recent open interest date.
contract_typequeryoptionalstringcallputCalls or puts. Omit for both.
date_of_expiryqueryoptionalstringdateOnly this expiration.
expirationsqueryoptionalarray<string>comma-separated in one parameter1 to 64 itemseach at most 128 characterspattern ^[0-9]{4}-[0-9]{2}-[0-9]{2}$Only these expirations, comma separated (YYYY-MM-DD), at most 64.
expiry_modequeryoptionalstring0dte1dteweeklymonthlylte30lte90Expiration set: 0dte, 1dte, weekly, monthly, lte30 or lte90.
min_dtequeryoptionalintegermin 0max 3650Minimum days to expiration (0 = expires on the trading date).
max_dtequeryoptionalintegermin 0max 3650Maximum days to expiration.
min_strikequeryoptionalnumber> 0max 1000000Lowest strike in dollars.
max_strikequeryoptionalnumber> 0max 1000000Highest strike in dollars.
min_changequeryoptionalintegermin 0max 1000000000Minimum absolute change in contracts.
min_change_percentqueryoptionalnumbermin 0max 1000000000Minimum absolute change in percent.
sortqueryoptionalstringabs_changechangechange_percentcurrentpreviousdefault abs_changeSort field: abs_change (default), change, change_percent, current or previous.
orderqueryoptionalstringdescascdefault descDescending (largest first) or ascending.
limitqueryoptionalintegerdefault 100min 1max 500Maximum rows to return.
cursor_idqueryoptionalstringat most 1024 charactersOpaque cursor returned as pagination.next_cursor_id; resumes the same query on the next page.

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>required9 fields inside
    • changeintegerrequiredCurrent minus previous.
    • change_percentnumber | nullrequiredChange in percent of the previous open interest; null when it was zero.
    • contract_typestringrequiredCall or put.callput
    • current_open_interestintegerrequiredOpen interest on the latest date.
    • date_of_expirystringdaterequiredExpiration date.
    • is_new_listingbooleanrequiredThe contract was listed after the previous date.
    • previous_open_interestintegerrequiredOpen interest on the previous date.
    • strikenumberrequiredStrike in dollars.
    • underlying_symbolstringrequiredOption root of the contract.
  • metaobjectrequiredMeta object
  • paginationobjectrequiredPagination object

Example response

{
  "data": [
    {
      "change": 5900,
      "change_percent": 32.42,
      "contract_type": "call",
      "current_open_interest": 24100,
      "date_of_expiry": "2026-10-16",
      "is_new_listing": false,
      "previous_open_interest": 18200,
      "strike": 6050,
      "underlying_symbol": "SPXW"
    }
  ],
  "meta": {
    "as_of": 1760659200123,
    "coverage": {
      "complete": true
    },
    "delay_ms": 0,
    "delayed": false,
    "request_id": "0199f0c2-5a1e-7c3b-9d4e-2b6f8a1c3d5e",
    "source": "opra"
  },
  "pagination": {
    "count": 1,
    "has_more": false,
    "limit": 100,
    "next_cursor_id": null,
    "next_url": null
  }
}

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