Options Greeks API: Real-Time Delta, Gamma, Theta, Vega for Any Ticker | FlashAlpha Research

Options Greeks API: Real-Time Delta, Gamma, Theta, Vega for Any Ticker

Options greeks quantify how an option's price responds to changes in underlying price, time, volatility, and interest rates. FlashAlpha's Greeks API gives you first-order and second-order greeks for any option in a single call — on every tier, including Free.


Tomasz Dobrowolski - Quant Engineer

  • #OptionsAPI #Greeks #BlackScholes #PortfolioRisk

Why Use an API for Greeks Instead of Computing Them Yourself

The Black-Scholes formula fits on a napkin. Implementing it correctly for production use does not. Here is what you actually have to solve once you move past the textbook:

  • Dividend handling — continuous yield? discrete dividends? ex-date adjustments?
  • American vs European exercise — early exercise premium changes delta and gamma near expiry
  • Risk-free rate selection — SOFR? Treasury curve? Which tenor matches your DTE?
  • IV calibration across the surface — a single implied volatility number hides an entire skew structure
  • Edge cases at expiry — gamma explodes, theta accelerates, numerical stability breaks down
  • Deep ITM / deep OTM behavior — floating-point precision issues in cumulative normal distribution tails
The honest pitch: You can build all of this yourself. You will spend two weeks on edge cases. Or you can call our endpoint and get production-grade greeks in 50 milliseconds.

Two Ways to Get Greeks

FlashAlpha provides two distinct paths to options greeks depending on your use case and plan tier.

Option 1: The Greeks Calculator (Free Tier)

The /v1/pricing/greeks endpoint is a pure calculator. You provide the inputs — spot price, strike, days to expiry, implied volatility, and option type — and the API returns all first-order and second-order greeks. No market data subscription required.

from flashalpha import FlashAlpha
fa = FlashAlpha("your_key")

result = fa.greeks(spot=580, strike=580, dte=30, sigma=0.18, type="call")

Response:

{
    "first_order": {
        "delta": 0.52,
        "gamma": 0.018,
        "theta": -0.15,
        "vega": 0.28,
        "rho": 0.045
    },
    "second_order": {
        "vanna": 0.012,
        "charm": -0.003,
        "vomma": 0.008,
        "speed": 0.0004
    }
}
Free Access

The greeks calculator is available on every tier including Free (50 requests/day). You supply the volatility; the API handles the math, edge cases, and numerical stability.

Option 2: Live Option Quotes (Growth+ Tier)

The /optionquote/{ticker} endpoint returns greeks computed from live market implied volatility. No inputs needed beyond the contract specification — the API sources real-time IV and computes greeks from it.

quote = fa.option_quote("SPY", expiry="2026-03-21", strike=580, type="C")

# Returns: delta, gamma, theta, vega, implied_vol, bid, ask, mid, open_interest

This endpoint requires the Growth plan ($299/mo) and is ideal when you need market-calibrated greeks without managing your own IV pipeline. For a deeper look at what option quotes include, see Greeks are included in every option quote.

Feature Greeks Calculator Live Option Quotes
Endpoint /v1/pricing/greeks /optionquote/{ticker}
You provide IV? Yes — full control No — sourced from market
Minimum tier Free ($0/mo) Growth ($299/mo)
Use case Scenario analysis, backtesting Live trading, portfolio monitoring
Second-order greeks Yes First-order only

Quick Start — Compute Greeks for Any Option

Install the Python SDK and compute greeks in five lines:

pip install flashalpha

(GitHub · PyPI)

from flashalpha import FlashAlpha

fa = FlashAlpha("your_key")
greeks = fa.greeks(spot=580, strike=580, dte=30, sigma=0.18, type="call")

print(f"Delta: {greeks['first_order']['delta']}")
print(f"Gamma: {greeks['first_order']['gamma']}")
print(f"Theta: {greeks['first_order']['theta']}")
print(f"Vega:  {greeks['first_order']['vega']}")
print(f"Vanna: {greeks['second_order']['vanna']}")

Output:

Delta: 0.52
Gamma: 0.018
Theta: -0.15
Vega:  0.28
Vanna: 0.012

The greeks endpoint accepts any combination of spot, strike, DTE, and volatility. If you do not have the implied volatility, you can extract it from a market price using the IV endpoint:

iv_result = fa.iv(spot=580, strike=580, dte=30, price=12.69, type="call")
# {"implied_volatility": 0.182, "implied_volatility_pct": "18.2%"}

Working Example: Portfolio Delta Calculator

A common use case: you hold multiple option positions and need to know your aggregate risk. This script pulls greeks for each leg and computes net portfolio delta, gamma, and theta.

from flashalpha import FlashAlpha

fa = FlashAlpha("your_key")

positions = [
    {"ticker": "SPY", "strike": 575, "dte": 30, "sigma": 0.19, "type": "call",  "qty": 10},
    {"ticker": "SPY", "strike": 585, "dte": 30, "sigma": 0.17, "type": "call",  "qty": -10},
    {"ticker": "SPY", "strike": 570, "dte": 30, "sigma": 0.20, "type": "put",   "qty": 5},
    {"ticker": "SPY", "strike": 590, "dte": 14, "sigma": 0.16, "type": "call",  "qty": -3},
    {"ticker": "SPY", "strike": 560, "dte": 45, "sigma": 0.22, "type": "put",   "qty": 8},
]

net_delta = 0
net_gamma = 0
net_theta = 0

for pos in positions:
    g = fa.greeks(
        spot=580,
        strike=pos["strike"],
        dte=pos["dte"],
        sigma=pos["sigma"],
        type=pos["type"]
    )
    contracts = pos["qty"] * 100  # each contract = 100 shares
    net_delta += g["first_order"]["delta"] * contracts
    net_gamma += g["first_order"]["gamma"] * contracts
    net_theta += g["first_order"]["theta"] * contracts

print(f"Net delta: {net_delta:+.1f}")
print(f"Net gamma: {net_gamma:+.1f}")
print(f"Net theta: ${net_theta:+.2f}/day")

Output:

Net delta: +45.2
Net gamma: +3.8
Net theta: -$127.50/day
Note: This example uses a fixed spot price of 580 for all positions. In production, you would source the live underlying price for each ticker. The qty field is signed — negative values represent short positions.

From here you can extend the script to rebalance: if net delta exceeds a threshold, compute the hedge ratio and submit an order. Aggregate gamma across all strikes gives you gamma exposure (GEX), a key metric for understanding dealer positioning. Full source code for this and other examples on GitHub.

Working Example: Greek Surface — How Delta Changes Across Strikes

Delta is not constant. It varies from near 1.0 for deep in-the-money calls to near 0.0 for deep out-of-the-money calls. This script maps the delta curve across a range of strikes:

from flashalpha import FlashAlpha

fa = FlashAlpha("your_key")

spot = 580
strikes = range(550, 615, 5)

print(f"{'Strike':>8} {'Delta':>8} {'Gamma':>8} {'Moneyness':>12}")
print("-" * 40)

for k in strikes:
    g = fa.greeks(spot=spot, strike=k, dte=30, sigma=0.18, type="call")
    moneyness = "ITM" if k < spot else ("ATM" if k == spot else "OTM")
    print(f"{k:>8} {g['first_order']['delta']:>8.3f} {g['first_order']['gamma']:>8.4f} {moneyness:>12}")

Output:

  Strike    Delta    Gamma    Moneyness
----------------------------------------
     550    0.941   0.0042          ITM
     555    0.912   0.0061          ITM
     560    0.871   0.0085          ITM
     565    0.815   0.0112          ITM
     570    0.742   0.0141          ITM
     575    0.652   0.0165          ITM
     580    0.520   0.0180          ATM
     585    0.412   0.0172          OTM
     590    0.308   0.0155          OTM
     595    0.218   0.0129          OTM
     600    0.146   0.0101          OTM
     605    0.092   0.0074          OTM
     610    0.055   0.0051          OTM
Key Insight

Notice that gamma peaks at the money (strike = 580) where delta is most sensitive to price changes. This is why ATM options carry the most gamma risk — and why dealers hedging ATM positions create the largest market impact.

For aggregated gamma across all strikes and open interest, see the GEX tool or call fa.gex("SPY") programmatically.

Accuracy & Methodology

The greeks endpoint uses Black-Scholes-Merton with continuous dividend yield adjustment. The model accounts for:

  • First-Order Greeks — Delta, Gamma, Theta, Vega, Rho
  • Second-Order Greeks — Vanna, Charm, Vomma, Speed
  • IV Source — User-provided or extracted via fa.iv()
  • Numerical Stability — Validated at expiry edges, deep ITM/OTM

If you do not have implied volatility for your contract, use fa.iv() to back it out from a market price, then pass the result into fa.greeks(). For an overview of all available data endpoints, see the developer's guide to real-time options data.

Get Started

The greeks calculator endpoint is available on every plan, including Free (50 requests/day). Sign up, grab an API key, and start computing greeks in under a minute.

PlanPriceDaily Requests
Free$0/mo50
Basic$49/mo250
Trader$129/mo1,000
Growth$299/mo2,500

View Pricing & Sign Up Try It in the Playground GitHub

Frequently Asked Questions

The /v1/pricing/greeks endpoint returns five first-order greeks (delta, gamma, theta, vega, rho) and four second-order greeks (vanna, charm, vomma, speed). All values are returned in a single response, organized into first_order and second_order objects.
For the greeks calculator (/v1/pricing/greeks), yes — you provide the sigma parameter. If you do not have implied volatility, use the IV endpoint (fa.iv()) to extract it from a market option price first. On the Growth plan, the option_quote endpoint returns greeks computed from live market IV automatically.
Yes. The /v1/pricing/greeks calculator endpoint is available on every tier, including the Free plan at 50 requests per day. The live option quotes endpoint (/optionquote/{ticker}), which includes market-calibrated greeks, requires the Growth plan ($299/mo).
The API uses Black-Scholes-Merton with continuous dividend yield adjustment. The implementation is numerically validated for edge cases including near-expiry options, deep in-the-money, and deep out-of-the-money contracts. Accuracy depends on the quality of your implied volatility input — for best results, use fa.iv() to extract IV from a recent market price.

Live Market Pulse

Get tick-by-tick visibility into market shifts with full-chain analytics streaming in real time.

Intelligent Screening

Screen millions of option pairs per second using your custom EV rules, filters, and setups.

Execution-Ready

Instantly send structured orders to Interactive Brokers right from your scan results.

Join the Community

Discord

Engage in real time conversations with us!

Twitter / X

Follow us for real-time updates and insights!

GitHub

Explore our open-source SDK, examples, and analytics resources!