From Orats — Strikes Data¶
Looking for a second source of option Greeks alongside Orats, or an independent set of Greeks to compare against your Orats SMV? Lavender delivers independently computed Greeks through Orats' own wire format — no code changes required.
Already fetching option Greeks and volatility data from Orats? Swap the host — your existing code works unchanged.
Differences from Orats¶
Lavender matches Orats' wire format with a few specific differences worth knowing when migrating:
- Market-data fields are zeroed.
callBidPrice,callAskPrice,callVolume,callOpenInterest, and the put-side equivalents come back with0values. Lavender computes Greeks; it does not redistribute OPRA quotes. - Multi-symbol querying limited. Comma-delimited
ticker=is accepted but only the first symbol is used; make one request per ticker. tokenparameter / auth header accepted-but-ignored. Leave it or remove it.
For the modeling differences (American exercise, discrete dividends, calibrated borrow), see How Lavender's Greeks Differ below.
What Changes¶
Swap the host. Your token parameter or auth header is accepted and ignored.
Try it in your browser¶
Paste this into any browser to see Orats-format Greeks rendered as an HTML table. No code needed.
Same Response Format¶
The JSON you get back has the same data array with one row per (expiration, strike) — both call and put data in the same row, just like Orats:
{
"data": [
{
"ticker": "SPY",
"tradeDate": "2026-03-14",
"expirDate": "2026-12-18",
"dte": 279,
"strike": 570.0,
"stockPrice": 567.41,
"spotPrice": 567.41,
"callVolume": 0,
"callOpenInterest": 0,
"callBidSize": 0,
"callAskSize": 0,
"callBidPrice": 0,
"callAskPrice": 0,
"callValue": 18.23,
"callBidIv": 0.2100,
"callMidIv": 0.2346,
"callAskIv": 0.2592,
"putVolume": 0,
"putOpenInterest": 0,
"putBidSize": 0,
"putAskSize": 0,
"putBidPrice": 0,
"putAskPrice": 0,
"putValue": 0.82,
"putBidIv": 0.2150,
"putMidIv": 0.2346,
"putAskIv": 0.2542,
"extCallValue": 18.23,
"extPutValue": 0.82,
"smvVol": 0.2346,
"extSmvVol": 0.2346,
"delta": 0.9512,
"gamma": 0.0223,
"theta": -0.0877,
"vega": 0.2514,
"rho": 0.3124,
"phi": 0,
"driftlessTheta": -0.0877,
"residualRate": 0,
"updatedAt": "2026-03-14T12:00:00Z",
"snapShotDate": "2026-03-14",
"quoteDate": "2026-03-14T12:00:00Z"
}
]
}
Market data fields are zeroed
Fields like callBidPrice, callAskPrice, callVolume, callOpenInterest (and their put-side equivalents) are zeroed. The Greeks, IV, and model value fields contain Lavender's computed values.
Endpoint¶
The .json and .csv path extensions are accepted and used as the format hint when the format query parameter is absent.
Parameters¶
| Parameter | Type | Required | Description |
|---|---|---|---|
ticker |
string | Yes | Underlying ticker (e.g., SPY). Comma-delimited supported; first symbol is used |
token |
string | No | API key — accepted and ignored |
dte |
string | No | DTE range filter as min,max (e.g., 0,30 for 0–30 days) |
delta |
string | No | Call-side delta range as min,max (e.g., .20,.80) |
Response Fields¶
Row Structure¶
Each element in the data array represents a single (expiration, strike) pair. Both call and put data appear in the same row — this matches Orats convention and differs from per-contract vendors.
Identification¶
| Field | Type | Description |
|---|---|---|
ticker |
string | Underlying symbol |
tradeDate |
string | Current date (YYYY-MM-DD) |
snapShotDate |
string | Trading date (YYYY-MM-DD). Same value as tradeDate. |
expirDate |
string | Expiration date (YYYY-MM-DD) |
dte |
integer | Calendar days to expiration |
strike |
number | Strike price |
stockPrice |
number | Current underlying price |
spotPrice |
number | Same as stockPrice |
Model Values¶
| Field | Type | Description |
|---|---|---|
callValue |
number | Theoretical call price |
putValue |
number | Theoretical put price |
extCallValue |
number | Same as callValue |
extPutValue |
number | Same as putValue |
Implied Volatility¶
| Field | Type | Description |
|---|---|---|
callBidIv |
number | Call IV at bid |
callMidIv |
number | Call IV at mid |
callAskIv |
number | Call IV at ask |
putBidIv |
number | Put IV at bid |
putMidIv |
number | Put IV at mid |
putAskIv |
number | Put IV at ask |
smvVol |
number | Smoothed model volatility |
extSmvVol |
number | Same as smvVol |
Greeks¶
Greeks are call-side — delta ranges from 0 to 1. To get put delta, subtract 1 (put delta = delta − 1).
| Field | Type | Description |
|---|---|---|
delta |
number | \(\partial V / \partial S\) — call-side (0 to 1) |
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\) |
phi |
number | Dividend rho (always 0) |
driftlessTheta |
number | Theta excluding drift (same as theta) |
residualRate |
number | Always 0 |
updatedAt |
string | Timestamp (ISO 8601) |
quoteDate |
string | Timestamp (ISO 8601). Same value as updatedAt. |
Greek Scaling¶
All Greeks are in natural units. Theta is returned per calendar day. All output values are rounded to 4 decimal places.
Call-side Greeks
Following Orats convention, delta is call delta (0 to 1). For put delta, compute delta - 1. Gamma, theta, vega, and rho are the same for both sides of a strike.
How Lavender's Greeks Differ¶
Running Lavender alongside Orats 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. The difference between theta and decay is most visible over weekends and around market holidays.
- Extended Greeks — access second and third-order Greeks via the Lavender API.
Migrating to the Lavender Native API¶
| ORATS | Lavender API |
|---|---|
ticker |
root |
expirDate |
expiry |
smvVol |
vol |
callValue / putValue |
theo |
delta (call-side only) |
delta (per contract) |
Error Responses¶
| Status | Condition |
|---|---|
200 |
Success |
400 |
Missing ticker parameter |
502 |
Upstream data unavailable |
Error response body¶
Errors return a JSON envelope:
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