Skip to content

Options · Single contract

Options contract quote at time

The best bid and offer of one contract at an instant.
GET/v1/options/contract/quote-at-timeoptionsContractQuoteAtTime
On this page

The national best bid and offer that prevailed at the given instant: the last quote at or before it. quote.timestamp is when that quote was published.

Example request

curl -sS --get "https://api.ordermap.si/v1/options/contract/quote-at-time" \
  -H "Authorization: Bearer $ORDERMAP_API_KEY" \
  --data-urlencode underlying_symbol=SPXW \
  --data-urlencode contract_type=call \
  --data-urlencode strike=5800 \
  --data-urlencode date_of_expiry=2026-10-16 \
  --data-urlencode timestamp=1792157400000

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

Parameters

5 parameters, 5 required.

ParameterType and limitsDescription
underlying_symbolqueryrequiredstringat most 8 characterspattern ^[A-Za-z][A-Za-z0-9.]{0,7}$Option root of the contract, at most six characters: SPXW (weekly and daily, PM-settled) and SPX (monthly, AM-settled) are different roots, as are NDXP and NDX, RUTW and RUT, QQQ, SPY, XSP ...
contract_typequeryrequiredstringcallputcall or put.
strikequeryrequirednumber> 0max 99999.999Strike price in dollars with at most three decimals, for example 5800 or 5812.5.
date_of_expiryqueryrequiredstringdateExpiration date of the contract, YYYY-MM-DD.
timestampqueryrequiredintegerunix-msmin 946684800000max 4102444800000The instant, Unix epoch milliseconds. Instants outside the regular session (09:30-16:15 ET) require the overnight entitlement.

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

  • dataobjectrequiredThe best bid and offer of one contract at an instant.16 fields inside
    • contract_typestringrequiredCall or put.callput
    • date_of_expirystringdaterequiredExpiration date.
    • option_symbolstringrequiredOCC option symbol of the contract: root padded to six characters, expiration YYMMDD, C or P and the strike in thousandths over eight digits.
    • quoteobject | nullrequiredThe quote.9 fields inside
      • asknumber | nullrequiredBest offer price.
      • ask_conditioninteger | nullrequiredQuote condition code of the offer.
      • ask_exchangeinteger | nullrequiredExchange code of the best offer.
      • ask_sizeinteger | nullrequiredContracts offered.
      • bidnumber | nullrequiredBest bid price.
      • bid_conditioninteger | nullrequiredQuote condition code of the bid.
      • bid_exchangeinteger | nullrequiredExchange code of the best bid.
      • bid_sizeinteger | nullrequiredContracts bid.
      • timestampintegerunix-msrequiredTime of the quote. Unix epoch milliseconds (UTC).
    • requested_timestampintegerunix-msrequiredThe instant that was asked for. Unix epoch milliseconds (UTC).
    • strikenumberrequiredStrike price in dollars.
    • underlying_symbolstringrequiredOption root of the contract.
  • metaobjectrequiredMeta object

Example response

{
  "data": {
    "option_symbol": "SPXW  261016C05800000",
    "underlying_symbol": "SPXW",
    "contract_type": "call",
    "strike": 5800,
    "date_of_expiry": "2026-10-16",
    "requested_timestamp": 1792157400000,
    "quote": {
      "timestamp": 1792157399870,
      "bid": 12.3,
      "bid_size": 10,
      "bid_exchange": 5,
      "bid_condition": 50,
      "ask": 12.6,
      "ask_size": 12,
      "ask_exchange": 5,
      "ask_condition": 50
    }
  },
  "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.