Skip to content

From LiveVol — Option Quotes

Looking for a second source of option Greeks alongside LiveVol, or an independent set of Greeks to compare against the Hanweck analytics engine? Lavender delivers independently computed Greeks through LiveVol's own wire format — no code changes required.

Already fetching option quotes from the Cboe All Access API? Swap the host — your existing code works unchanged.

Differences from LiveVol

Lavender matches LiveVol's wire format with a few specific differences worth knowing when migrating:

  • Market-data fields are zeroed. option_bid, option_ask, option_volume, open_interest, and other quote/trade fields come back with 0 or null values. Lavender computes Greeks; it does not redistribute OPRA quotes.
  • Auth header accepted-but-ignored. Your LiveVol Bearer token is accepted by the listener and discarded.

For the modeling differences (American exercise, discrete dividends, calibrated borrow), see How Lavender's Greeks Differ below.

What Changes

curl -H "Authorization: Bearer YOUR_LIVEVOL_TOKEN" \
     "https://api.livevol.com/v1/live/allaccess/market/option-and-underlying-quotes?symbol=SPY&date=2026-03-14"
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
curl "http://localhost:2112/allaccess/market/option-and-underlying-quotes?symbol=SPY"
#     ^^^^^^^^^^^^^^^^^^

Swap the host. Your LiveVol auth header is accepted and ignored.

Try it in your browser

http://localhost:2112/allaccess/market/option-and-underlying-quotes?symbol=SPY&format=html

Paste this into any browser to see LiveVol-format Greeks rendered as an HTML table. No code needed.

Same Response Format

The JSON you get back is an envelope object with a top-level options[] array plus aggregate snapshot fields (timestamp, symbol, iv30 family, underlying NBBO + OHLC) — the same structure CBOE LiveVol returns:

{
  "symbol": "SPY",
  "timestamp": "15:30:45.123",
  "iv30": 0,
  "iv30_change": 0,
  "iv30_change_percent": 0,
  "seq_no": 1842,
  "implied_underlying_bid": 567.41,
  "implied_underlying_ask": 567.41,
  "implied_underlying_mid": 567.41,
  "implied_underlying_bid_size": 0,
  "implied_underlying_ask_size": 0,
  "implied_underlying_indicator": "green",
  "underlying_bid": 567.41,
  "underlying_ask": 567.41,
  "underlying_mid": 567.41,
  "underlying_last_trade_price": null,
  "underlying_last_trade_size": null,
  "underlying_open": null,
  "underlying_high": null,
  "underlying_low": null,
  "underlying_close": null,
  "underlying_prev_day_close": null,
  "underlying_volume": null,
  "options": [
    {
      "symbol": "SPY",
      "root": "SPY",
      "expiry": "2026-12-18",
      "strike": 570.0,
      "option_type": "C",
      "timestamp": "15:30:45.123",
      "option": "SPY261218C00570000",
      "delta": 0.4512,
      "gamma": 0.0223,
      "theta": -0.0877,
      "vega": 0.2514,
      "rho": 0.3124,
      "iv": 0.2346,
      "mid_iv": 0.2346,
      "cboe_theo": 18.23,
      "option_bid": 0,
      "option_ask": 0,
      "option_mid": 0,
      "option_last_trade_price": null,
      "option_volume": 0,
      "option_trade_count": 0,
      "open_interest": 0,
      "option_bid_size": 0,
      "option_ask_size": 0
    }
  ]
}

CSV and NDJSON are flat per-row (one row per option, no envelope wrap).

Market data fields are zeroed

Per-option option_bid, option_ask, option_volume, and open_interest are zeroed. Top-level underlying NBBO is synthesized from the root mid; OHLC fields are null. The Greeks, iv, mid_iv, and cboe_theo fields contain Lavender's computed values.


Endpoint

GET /allaccess/market/option-and-underlying-quotes

Parameters

Parameter Type Required Description
symbol string Yes Underlying ticker (e.g., SPY)
option_type string No C for calls, P for puts (omit for both)
root string No Filter by root symbol
min_strike number No Minimum strike price
max_strike number No Maximum strike price
min_expiry string No Minimum expiration (YYYY-MM-DD)
max_expiry string No Maximum expiration (YYYY-MM-DD)

Response Fields

The response is an envelope object: top-level fields describe the snapshot as a whole, and options[] is the per-option array.

Top-level fields

Field Type Description
symbol string Underlying ticker the request was for
timestamp string Snapshot time, HH:mm:ss.fff
seq_no integer Monotonic per-process counter
iv30, iv30_change, iv30_change_percent number 30-day implied vol family. All 0 -- Lavender does not compute a 30-day surface IV here.
implied_underlying_bid, _ask, _mid number Synthesized from the root mid with a zero spread.
implied_underlying_bid_size, _ask_size integer 0
implied_underlying_indicator string "green"
underlying_bid, _ask, _mid number Synthesized from the root mid.
underlying_last_trade_price, _last_trade_size, _open, _high, _low, _close, _prev_day_close, _volume number/null All null -- Lavender computes Greeks; it does not redistribute OPRA quotes.

Per-option identification

Field Type Description
symbol string Underlying ticker (matches the top-level symbol)
root string Option root
expiry string Expiration date (YYYY-MM-DD)
strike number Strike price
option_type string "C" (call) or "P" (put)
timestamp string Snapshot time, HH:mm:ss.fff
option string OCC symbol (spaces removed)

Greeks

Field Type Description
delta number \(\partial V / \partial S\)
gamma number \(\partial^2 V / \partial S^2\)
theta number \(\partial V / \partial t\) — per calendar day
vega number \(\partial V / \partial \sigma\)
rho number \(\partial V / \partial r\)

Volatility & Pricing

Field Type Description
iv number Theoretical implied volatility
mid_iv number Mid-market implied volatility
cboe_theo number Theoretical option price

Option Market Data (zeroed)

The remaining per-option fields (option_bid, option_ask, option_mid, option_last_trade_price, option_open, option_high, option_low, option_close, option_prev_day_close, option_volume, option_trade_count, open_interest, option_bid_size, option_ask_size) are present in the response with zeroed or null values.

Greek Scaling

All Greeks are in natural units. Theta is returned per calendar day. All output values are rounded to 4 decimal places.

How Lavender's Greeks Differ

Running Lavender alongside LiveVol gives you a second, independently computed perspective on the same contracts:

  • Independent model — Lavender computes Greeks using different modeling assumptions. Where the two reports agree, you have confirmation. Where they diverge — particularly around ex-dates, deep ITM, or illiquid strikes — you have a signal worth investigating.
  • Two views of time decay — conventional theta (\(\partial V / \partial t\)) on this endpoint, plus a separate decay metric (expected change to next trading day, accounting for weekends and holidays) on the Lavender API
  • Extended Greeks — access second and third-order Greeks via the Lavender API.

Migrating to the Lavender Native API

LiveVol Lavender API
symbol underlying= (expands to all roots)
root (filter) root= (single root)
expiry expiry
iv vol
cboe_theo theo

Error Responses

Status Condition
200 Success
400 Missing symbol parameter
502 Upstream data unavailable

Error response body

Errors return a JSON envelope:

{
  "Message": "Missing symbol"
}

See also

  • Field Reference — every L1 field with units, source, and example values
  • Greek Conventions — sign conventions, units, and the full extended Greeks catalog
  • Verify the Greeks — derive each Greek from first principles and check against the API