Skip to content

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.

Differences from Alpaca

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

  • latestTrade and latestQuote are null. Lavender computes Greeks; it does not redistribute OPRA quotes.
  • Auth headers accepted-but-ignored. APCA-API-KEY-ID and APCA-API-SECRET-KEY are accepted by the listener and discarded. Leave them or remove them.

What Changes

curl -H "APCA-API-KEY-ID: YOUR_KEY" -H "APCA-API-SECRET-KEY: YOUR_SECRET" \
     "https://data.alpaca.markets/v1beta1/options/snapshots/AAPL"
#      ^^^^^^^^^^^^^^^^^^^^^^^^^
curl "http://localhost:2112/v1beta1/options/snapshots/AAPL"
#     ^^^^^^^^^^^^^^^^^^^^^^^^^^^

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

http://localhost:2112/v1beta1/options/snapshots/SPY?format=html

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": null,
      "latestQuote": null
    },
    "AAPL20261218P00230000": {
      "greeks": {
        "delta": -0.417,
        "gamma": 0.0198,
        "theta": -0.0983,
        "vega": 0.312,
        "rho": -0.269
      },
      "impliedVolatility": 0.248,
      "latestTrade": null,
      "latestQuote": null
    }
  },
  "next_page_token": null
}

No market data

latestTrade and latestQuote are null. The greeks and impliedVolatility fields contain Lavender's computed values.


Endpoint

GET /v1beta1/options/snapshots/{underlying}

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 (default 100, max 1000)
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

latestTrade and latestQuote are null — Lavender computes Greeks; it does not redistribute OPRA quotes.

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 to the Lavender Native API

Alpaca Lavender API
OCC key in snapshots dict osym (always included)
greeks.delta delta (flat)
impliedVolatility vol
/{underlying} in path underlying= query param

Error Responses

Status Condition
200 Success
400 Missing underlying symbol in path
502 Upstream data unavailable

Error response body

Errors return a JSON envelope:

{
  "code": 40000000,
  "message": "Missing underlying symbol in path"
}

See also