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.
Beta compatibility
This compatibility layer has automated test coverage but has not yet been validated against live LiveVol API traffic. If you encounter any inconsistencies with LiveVol's wire format, please contact support@lavender-ts.com.
What Changes¶
Swap the host. Your LiveVol auth header is accepted and ignored.
Try it in your browser¶
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 a flat array of option quotes — the same structure LiveVol returns:
[
{
"symbol": "SPY",
"root": "SPY",
"expiry": "2026-12-18",
"strike": 570.0,
"option_type": "C",
"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_open": null,
"option_high": null,
"option_low": null,
"option_close": null,
"option_prev_day_close": null,
"option_volume": 0,
"option_trade_count": 0,
"open_interest": 0,
"option_bid_size": 0,
"option_ask_size": 0,
"underlying_bid": 567.41,
"underlying_ask": 567.41,
"underlying_mid": 567.41
}
]
Market data fields are zeroed
Fields like option_bid, option_ask, option_volume, and open_interest are zeroed. The Greeks, iv, mid_iv, and cboe_theo fields contain Lavender's computed values.
Endpoint¶
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) |
date |
string | No | Quote date (YYYY-MM-DD) — accepted but not used for filtering |
Response Fields¶
The response is a flat JSON array (no envelope wrapper). Each element is one option contract.
Identification¶
| Field | Type | Description |
|---|---|---|
symbol |
string | Underlying symbol |
root |
string | Root symbol |
expiry |
string | Expiration date (YYYY-MM-DD) |
strike |
number | Strike price |
option_type |
string | "C" (call) or "P" (put) |
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 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 for wire compatibility but contain zeroed or null values. The JSON example above shows the exact structure.
Underlying¶
| Field | Type | Description |
|---|---|---|
underlying_bid |
number | Underlying price |
underlying_ask |
number | Underlying price |
underlying_mid |
number | Underlying price |
Greek Scaling¶
All Greeks are in natural units. Theta is returned per calendar day. All output values are rounded to 4 decimal places.
Migrating from LiveVol¶
One change:
- Base URL — replace
https://api.livevol.com/v1/live(or/v1/delayed) withhttp://localhost:2112
Your LiveVol auth header is accepted and ignored — leave it or remove it.
The endpoint path, query parameters, response shape, and field names are identical.
How Lavender's Greeks Compare¶
LiveVol is powered by the Hanweck analytics engine — one of the most sophisticated options analytics platforms in the industry. If you're using LiveVol today, your Greeks already account for early exercise, discrete dividends, and advanced modeling effects.
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 |
lav_vol |
cboe_theo |
lav_theo |
Error Responses¶
| Status | Condition |
|---|---|
200 |
Success |
400 |
Missing symbol parameter |
502 |
Upstream data unavailable |