Skip to content

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 with 0 values. 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.
  • token parameter / 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

curl -H "Authorization: Bearer YOUR_Orats_TOKEN" \
     "https://api.orats.io/datav2/strikes?ticker=SPY&dte=0,30"
#      ^^^^^^^^^^^^^^^^^
curl "http://localhost:2112/datav2/strikes?ticker=SPY&dte=0,30"
#     ^^^^^^^^^^^^^^^^^^^^^^^^^^^

Swap the host. Your token parameter or auth header is accepted and ignored.

Try it in your browser

http://localhost:2112/datav2/strikes?ticker=SPY&dte=0,30&format=html

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

GET /datav2/strikes
GET /datav2/strikes.json
GET /datav2/strikes.csv

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-sidedelta 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:

{
  "message": "Missing ticker"
}

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