From Intrinio — Options Chain¶
Looking for a second source of option Greeks alongside Intrinio, or an alternative options chain API with dividend-aware, early-exercise-aware pricing? Lavender delivers independently computed Greeks through Intrinio's own wire format — no code changes required.
Already fetching option chains from Intrinio? 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 Intrinio API traffic. If you encounter any inconsistencies with Intrinio's wire format, please contact support@lavender-ts.com.
What Changes¶
Swap the host. Your api_key parameter or auth header is accepted and ignored.
Try it in your browser¶
Paste this into any browser to see Intrinio-format Greeks rendered as an HTML table. No code needed.
Same Response Format¶
The JSON you get back has the same chain array with nested option, price, and stats objects — just like Intrinio:
{
"chain": [
{
"option": {
"code": "AAPL261218C00230000",
"ticker": "AAPL",
"expiration": "2026-12-18",
"expiration_time": "04:00 PM EST",
"strike": 230.0,
"type": "call"
},
"price": {
"last": 0,
"last_size": 0,
"last_timestamp": "2026-03-14T14:30:45.123Z",
"volume": 0,
"bid": 0,
"bid_size": 0,
"bid_timestamp": "2026-03-14T14:30:45.123Z",
"ask": 0,
"ask_size": 0,
"ask_timestamp": "2026-03-14T14:30:45.123Z",
"open_interest": 0,
"exercise_style": "A"
},
"stats": {
"implied_volatility": 0.245,
"delta": 0.5834,
"gamma": 0.0198,
"theta": -0.1425,
"vega": 0.312,
"underlying_price": 233.15
}
}
]
}
Market data fields are zeroed
The price object fields (last, bid, ask, volume, open_interest, etc.) are zeroed. The stats object contains Lavender's computed Greeks and implied volatility.
Endpoint¶
Both path parameters are required:
{symbol}— underlying ticker (e.g.,AAPL), case-insensitive{expiration}— expiration date (YYYY-MM-DD) or*for all expirations
Query Parameters¶
| Parameter | Type | Required | Description |
|---|---|---|---|
show_stats |
string | No | true to include the stats object with Greeks. Otherwise stats is null |
type |
string | No | call or put (omit for both) |
strike |
number | No | Exact strike price |
strike_greater_than |
number | No | Strike > value |
strike_less_than |
number | No | Strike < value |
api_key |
string | No | API key — accepted and ignored |
Response Fields¶
Top Level¶
| Field | Type | Description |
|---|---|---|
chain |
array | Array of option chain items |
Per-Contract — Option¶
| Field | Type | Description |
|---|---|---|
code |
string | OCC symbol (e.g., AAPL261218C00230000) |
ticker |
string | Underlying symbol |
expiration |
string | Expiration date (YYYY-MM-DD) |
expiration_time |
string | "04:00 PM EST" for PM-settled options, "09:30 AM EST" for AM-settled options |
strike |
number | Strike price |
type |
string | "call" or "put" |
Per-Contract — Price (zeroed)¶
The price object is present for wire compatibility. Market data fields (last, last_size, volume, bid, bid_size, ask, ask_size, open_interest) are zeroed. Timestamp fields contain the current time. The exercise_style field is "A" (American) or "E" (European) based on the option root. The JSON example above shows the exact structure.
Per-Contract — Stats (when show_stats=true)¶
| Field | Type | Description |
|---|---|---|
implied_volatility |
number | Annualized implied volatility |
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\) |
underlying_price |
number | Current underlying spot price |
When show_stats is not true, the stats field is null.
Greek Scaling¶
Theta is returned per calendar day. All other Greeks pass through without rescaling. All output values are rounded to 4 decimal places.
Migrating from Intrinio¶
One change:
- Base URL — replace
https://api-v2.intrinio.comwithhttp://localhost:2112
Your api_key parameter or Authorization 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 Differ¶
Intrinio computes Greeks using Black-Scholes with European-style assumptions. Running Lavender alongside Intrinio gives you a second perspective that accounts for:
- Early exercise — Lavender prices American options, capturing the early exercise premium that Black-Scholes misses
- Discrete dividends — Lavender uses the actual dividend schedule rather than a continuous yield approximation
- Implied borrow rates — Lavender solves for the borrow rate per expiry to enforce put-call parity, producing consistent call/put Greeks even in hard-to-borrow names
- 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 vanna, charm, volga, speed, and more via the Lavender API
Migrating to the Lavender Native API¶
| Intrinio | Lavender API |
|---|---|
/{symbol} in path |
underlying= query param |
option.expiration |
expiry |
stats.implied_volatility |
lav_vol |
stats.delta |
delta (flat) |
Error Responses¶
| Status | Condition |
|---|---|
200 |
Success |
400 |
Missing or invalid symbol or expiration in path |
502 |
Upstream data unavailable |