Skip to content

Options · Reference and discovery

Options expirations

Listed expirations of an underlying.
GET/v1/options/expirationsoptionsExpirations
On this page

Every listed expiration with days to expiry, settlement style, open interest, volume, the forward, at-the-money implied volatility and the expected move. SPX returns both the SPX (monthly, AM) and SPXW (weekly and daily, PM) roots; SPXW only the weekly root.

Example request

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

1 parameter, 1 required.

ParameterType and limitsDescription
underlying_symbolqueryrequiredstringat most 8 characterspattern ^[A-Za-z][A-Za-z0-9.]{0,7}$Option root: SPX (both roots), SPXW, QQQ, NDXP, RUTW, XSP ...

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>required18 fields inside
    • atm_implied_volatilitynumber | nullrequiredAt-the-money implied volatility.
    • contractsintegerrequiredListed contracts.
    • date_of_expirystringdaterequiredExpiration date.
    • days_to_expiryintegerrequiredCalendar days from the trading date to expiration.
    • expected_movenumber | nullrequiredExpected move in index points or dollars.
    • expiredbooleanrequiredThe expiration time has passed.
    • expires_atinteger | nullunix-msrequiredExpiration instant. Unix epoch milliseconds (UTC).
    • forwardnumber | nullrequiredForward price implied by the chain.
    • forward_methodstring | nullrequiredHow the forward was obtained.parityinterpolatedcarrycarriednull
    • open_interest_callintegerrequiredCall open interest.
    • open_interest_putintegerrequiredPut open interest.
    • settlementstringrequiredSettlement style.ampm
    • strike_maxnumber | nullrequiredHighest listed strike.
    • strike_minnumber | nullrequiredLowest listed strike.
    • strike_stepnumber | nullrequiredStrike spacing near the money.
    • underlying_symbolstringrequiredOption root of this expiration.
    • volume_callintegerrequiredCall volume today.
    • volume_putintegerrequiredPut volume today.
  • metaobjectrequiredMeta object

Example response

{
  "data": [
    {
      "atm_implied_volatility": 0.142,
      "contracts": 612,
      "date_of_expiry": "2026-10-16",
      "days_to_expiry": 0,
      "expected_move": 24.6,
      "expired": false,
      "expires_at": 1760644800000,
      "forward": 6021.4,
      "forward_method": "parity",
      "open_interest_call": 41200,
      "open_interest_put": 52800,
      "settlement": "pm",
      "strike_max": 7500,
      "strike_min": 4500,
      "strike_step": 5,
      "underlying_symbol": "SPXW",
      "volume_call": 183000,
      "volume_put": 201000
    }
  ],
  "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.