Skip to content

From Tradier — Option Chains

Looking for a second source of option Greeks alongside Tradier, or an alternative option chain API with extended Greeks? Lavender delivers independently computed Greeks through Tradier's own wire format — no code changes required.

Already fetching option chains and Greeks from Tradier? Swap the host — your existing code works unchanged.

Differences from Tradier

Lavender matches Tradier's wire format with two specific differences worth knowing when migrating:

  • Market-data fields are zeroed. bid, ask, last, volume, open_interest, and related 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 Tradier Authorization: Bearer header 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_TRADIER_TOKEN" \
     "https://api.tradier.com/v1/markets/options/chains?symbol=SPY&expiration=2026-12-18&greeks=true"
#      ^^^^^^^^^^^^^^^^^^^^^
curl "http://localhost:2112/v1/markets/options/chains?symbol=SPY&expiration=2026-12-18&greeks=true"
#     ^^^^^^^^^^^^^^^^^^^^^^^^^^^

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

Try it in your browser

http://localhost:2112/v1/markets/options/chains?symbol=SPY&greeks=true&format=html

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

Same Response Format

The JSON you get back has the same options.option structure Tradier returns:

{
  "options": {
    "option": [
      {
        "symbol": "SPY261218C00570000",
        "description": "SPY Dec 18 2026 $570.00 Call",
        "exch": "X",
        "type": "option",
        "last": 0,
        "change": 0,
        "change_percentage": null,
        "volume": 0,
        "average_volume": 0,
        "last_volume": 0,
        "trade_date": 1710417600,
        "open": null,
        "high": null,
        "low": null,
        "close": null,
        "prevclose": null,
        "week_52_high": 0,
        "week_52_low": 0,
        "bid": 0,
        "bidsize": 0,
        "bidexch": "X",
        "bid_date": 1710417600,
        "ask": 0,
        "asksize": 0,
        "askexch": "X",
        "ask_date": 1710417600,
        "open_interest": 0,
        "underlying": "SPY",
        "strike": 570.0,
        "contract_size": 100,
        "expiration_date": "2026-12-18",
        "expiration_type": "standard",
        "option_type": "call",
        "root_symbol": "SPY",
        "greeks": {
          "delta": 0.4512,
          "gamma": 0.0223,
          "theta": -0.0877,
          "vega": 0.2514,
          "rho": 0.3124,
          "phi": 0,
          "bid_iv": 0.2100,
          "mid_iv": 0.2346,
          "ask_iv": 0.2592,
          "smv_vol": 0.2346,
          "updated_at": "2026-03-14 12:00:00"
        }
      }
    ]
  }
}

Market data fields are zeroed

Fields like bid, ask, last, volume, and open_interest are zeroed. The greeks object and IV fields contain Lavender's computed values.


Endpoint

GET /v1/markets/options/chains

Parameters

Parameter Type Required Description
symbol string Yes Underlying ticker (e.g., SPY)
expiration string No YYYY-MM-DD or * for all expirations
greeks string No true to include the nested greeks object

Response Fields

Per-Contract — Identification

Field Type Description
symbol string OCC symbol (e.g., SPY261218C00570000)
description string Human-readable description
exch string Exchange code
type string Always "option"
underlying string Underlying ticker
strike number Strike price
option_type string "call" or "put"
expiration_date string YYYY-MM-DD
expiration_type string One of "standard" (3rd Friday monthly), "weeklys" (weekly/W-root expiries), or "eom" (end-of-month)
root_symbol string Root symbol
contract_size integer Always 100

Per-Contract — Market Data (zeroed)

The remaining per-contract fields (last, change, change_percentage, volume, average_volume, last_volume, trade_date, open, high, low, close, prevclose, week_52_high, week_52_low, bid, bidsize, bidexch, bid_date, ask, asksize, askexch, ask_date, open_interest) are present for wire compatibility but contain zeroed or null values. The JSON example above shows the exact structure and values for each field.

Greeks (when greeks=true)

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\)
phi number Dividend rho — \(\partial V / \partial q\), per-1% dividend yield convention
bid_iv number Implied volatility at bid
mid_iv number Implied volatility at mid
ask_iv number Implied volatility at ask
smv_vol number Smoothed model volatility
updated_at string Timestamp (YYYY-MM-DD HH:MM:SS)

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 Tradier gives you a second, independently computed perspective on the same contracts:

  • Independent model — Lavender computes Greeks using the Lavender model with different assumptions. Where the two reports agree, you have confirmation. Where they diverge, 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

Tradier Lavender API
symbol root
expiration_date expiry
greeks.delta delta (flat)
greeks.smv_vol vol
greeks.mid_iv vol

Error Responses

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

Error response body

Errors return a JSON envelope:

{
  "errors": {
    "error": ["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