Option Quote API
Retrieve options chain data enriched with BSM Greeks, SVI-smoothed implied volatility, open interest, and volume.
What Is the Option Quote Endpoint?
The Option Quote endpoint returns live options contract data for any tracked underlying. Each contract includes standard quote fields (bid, ask, mid), the full set of Black-Scholes-Merton Greeks (delta, gamma, theta, vega, rho, vanna, charm), SVI-smoothed implied volatility, open interest, and daily volume. You can query the entire chain, filter by expiration or type, or pinpoint a single contract by specifying all three filters.
Common Use Cases
- Options screening — scan an entire chain to find contracts matching specific delta, IV, or open interest criteria
- Greeks analysis — retrieve delta, gamma, theta, vega, vanna, and charm for risk assessment and position sizing
- Volatility surface construction — use SVI-smoothed IV across strikes and expirations to build a vol surface
- Spread pricing — pull quotes for multiple legs to price vertical spreads, iron condors, or calendar spreads
- Execution monitoring — track bid-ask spreads and volume to time entries and exits
Filter Behavior
- No filters — returns all contracts for the symbol (array)
- Partial filters — returns matching subset (array)
- All three filters (
expiry,strike,type) — returns a single contract (object)
When to Use This Endpoint
Use /optionquote/{ticker} when you need contract-level pricing and Greeks. For the underlying equity price alone, use the Stock Quote endpoint. For aggregated exposure metrics like GEX or DEX across all contracts, use the Exposure Analytics endpoints — they pre-compute the heavy lifting so you don't need to aggregate the chain yourself.
Endpoint
Authentication: Required — X-Api-Key header
Rate Limited: Yes
Plan: Requires Growth plan or higher
Parameters
| Name | In | Required | Description |
|---|---|---|---|
ticker |
path | required | Underlying symbol |
expiry |
query | optional | Expiration date (yyyy-MM-dd) |
strike |
query | optional | Strike price |
type |
query | optional | C or Call (call), P or Put (put) |
Example Request
curl -H "X-Api-Key: YOUR_API_KEY" \
"https://lab.flashalpha.com/optionquote/SPY?expiry=2026-03-20&strike=590&type=C"
import requests
resp = requests.get(
"https://lab.flashalpha.com/optionquote/SPY",
headers={"X-Api-Key": "YOUR_API_KEY"},
params={"expiry": "2026-03-20", "strike": 590, "type": "C"}
)
data = resp.json()
print(f"Delta: {data['delta']}, IV: {data['implied_vol']}")
const params = new URLSearchParams({
expiry: "2026-03-20", strike: "590", type: "C"
});
const resp = await fetch(
`https://lab.flashalpha.com/optionquote/SPY?${params}`,
{ headers: { "X-Api-Key": "YOUR_API_KEY" } }
);
const data = await resp.json();
console.log(`Delta: ${data.delta}, IV: ${data.implied_vol}`);
Response 200 OK
{
"underlying": "SPY",
"type": "C",
"expiry": "2026-03-20",
"strike": 590.0,
"bid": 15.25,
"ask": 15.35,
"mid": 15.30,
"bidSize": 1200,
"askSize": 1500,
"lastUpdate": "2026-02-28T16:30:45Z",
"implied_vol": 0.1823,
"delta": 0.6543,
"gamma": 0.0089,
"theta": -0.0234,
"vega": 0.0456,
"rho": 0.1234,
"vanna": 0.0078,
"charm": -0.0045,
"svi_vol": 0.1820,
"open_interest": 45000,
"volume": 3250
}
Response Fields
| Field | Type | Description |
|---|---|---|
underlying |
string | Underlying symbol |
type |
string | C for call, P for put |
expiry |
string | Expiration date |
strike |
number | Strike price |
bid / ask / mid |
number | Quote prices |
bidSize / askSize |
number | Size at bid/ask |
lastUpdate |
string | ISO 8601 timestamp |
implied_vol |
number | BSM implied volatility from mid price |
delta |
number | Rate of change per $1 move. Calls 0–1, Puts −1 to 0 |
gamma |
number | Rate of change of delta. Highest near ATM |
theta |
number | Daily time decay in dollars |
vega |
number | Price change per 1% IV move |
rho |
number | Sensitivity to 1% rate change |
vanna |
number | dDelta/dVol — how delta changes when IV moves |
charm |
number | dDelta/dTime — how delta changes as time passes |
svi_vol |
number | SVI-smoothed IV (Gatheral parametric fit) |
open_interest |
number | Open interest |
volume |
number | Daily volume |
Errors
| Status | Description |
|---|---|
400 |
Invalid expiry format or unrecognized type value |
403 |
Requires Growth plan or higher |
404 |
No matching options found for the given filters |