From Alpaca — Options Snapshots¶
Looking for a second source of option Greeks alongside Alpaca, or an alternative options API with dividend-aware, early-exercise-aware pricing and extended Greeks? Lavender delivers independently computed Greeks through Alpaca's own wire format — no code changes required.
Already fetching option snapshots from Alpaca? Swap the host — everything else stays the same.
Beta compatibility
This compatibility layer has automated test coverage but has not yet been validated against live Alpaca API traffic. If you encounter any inconsistencies with Alpaca's wire format, please contact support@lavender-ts.com.
What Changes¶
Swap the host. Your Alpaca auth headers are accepted and ignored — leave them or remove them. Same path, same response shape.
Try it in your browser¶
Paste this into any browser to see Alpaca-format Greeks rendered as an HTML table. No code needed.
Same Response Format¶
The JSON you get back has the same structure — a snapshots dictionary keyed by OCC symbol:
{
"snapshots": {
"AAPL20261218C00230000": {
"greeks": {
"delta": 0.583,
"gamma": 0.0198,
"theta": -0.1425,
"vega": 0.312,
"rho": 0.301
},
"impliedVolatility": 0.245,
"latestTrade": {
"t": "2026-03-13T15:30:45.123Z",
"x": "",
"p": 0,
"s": 0,
"c": ""
},
"latestQuote": {
"t": "2026-03-13T15:30:45.123Z",
"bx": "",
"bp": 0,
"bs": 0,
"ax": "",
"ap": 0,
"as": 0,
"c": ""
}
},
"AAPL20261218P00230000": {
"greeks": {
"delta": -0.417,
"gamma": 0.0198,
"theta": -0.0983,
"vega": 0.312,
"rho": -0.269
},
"impliedVolatility": 0.248,
"latestTrade": {
"t": "2026-03-13T15:30:45.123Z",
"x": "",
"p": 0,
"s": 0,
"c": ""
},
"latestQuote": {
"t": "2026-03-13T15:30:45.123Z",
"bx": "",
"bp": 0,
"bs": 0,
"ax": "",
"ap": 0,
"as": 0,
"c": ""
}
}
},
"next_page_token": null
}
Market data fields are zeroed
The latestTrade and latestQuote fields are returned with zeroed prices and empty strings. The greeks and impliedVolatility fields contain Lavender's computed values.
Endpoint¶
The underlying symbol is part of the URL path (e.g., /v1beta1/options/snapshots/SPY). Case-insensitive.
Query Parameters¶
All parameters are optional:
| Parameter | Type | Description |
|---|---|---|
type |
string | call or put |
limit |
integer | Max results (1–10,000, default 10,000) |
page_token |
string | Pagination cursor (OCC symbol from next_page_token) |
expiration_date |
string | Exact expiration (YYYY-MM-DD) |
expiration_date_gte |
string | Expiration >= date |
expiration_date_lte |
string | Expiration <= date |
strike_price_gte |
number | Strike >= value |
strike_price_lte |
number | Strike <= value |
root_symbol |
string | Filter by root symbol |
Alpaca's feed and updated_since parameters are accepted but not applied. If your workflow depends on either, contact support@lavender-ts.com.
Response Fields¶
Top Level¶
| Field | Type | Description |
|---|---|---|
snapshots |
object | Dictionary of option contracts, keyed by OCC symbol (spaces removed) |
next_page_token |
string/null | Pagination cursor for next page, or null if no more results |
Per-Contract Snapshot¶
Each key in snapshots is an OCC symbol without spaces (e.g., AAPL20261218C00230000).
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¶
| Field | Type | Description |
|---|---|---|
impliedVolatility |
number | Annualized implied volatility (decimal, e.g., 0.245 = 24.5%) |
Market Data (zeroed)¶
The latestTrade and latestQuote objects are present for wire compatibility but contain zeroed values. latestTrade includes t (timestamp), x, p, s, and c. latestQuote includes t, bx, bp, bs, ax, ap, as, and c. All prices are 0, all strings are "". The JSON example above shows the exact structure.
Greek Scaling¶
Theta is returned per calendar day. All other Greeks pass through without rescaling. All output values are rounded to up to 4 decimal places.
Migrating from Alpaca¶
One change:
- Base URL — replace
https://data.alpaca.marketswithhttp://localhost:2112
Your Alpaca auth headers (APCA-API-KEY-ID / APCA-API-SECRET-KEY) are accepted and ignored — leave them or remove them.
The endpoint path, response shape, and field names are identical.
How Lavender's Greeks Differ¶
Alpaca computes Greeks using Black-Scholes with European-style assumptions. While Alpaca supports American options for trading, its Greeks don't account for early exercise value. Running Lavender alongside Alpaca gives you:
- Early exercise — Lavender prices American options, capturing the early exercise premium that Black-Scholes misses — especially relevant for deep ITM options near ex-dividend dates
- 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¶
| Alpaca | Lavender API |
|---|---|
| OCC key in snapshots dict | osym (always included) |
greeks.delta |
delta (flat) |
impliedVolatility |
lav_vol |
/{underlying} in path |
underlying= query param |
Error Responses¶
| Status | Condition |
|---|---|
200 |
Success |
400 |
Missing underlying symbol in path |
502 |
Upstream data unavailable |