Quick Start Guide
Get your API key and make your first options exposure call in under 2 minutes. No credit card required.
ES=F (E-mini S&P 500) and NQ=F (E-mini Nasdaq-100) - URL-encode the = as %3D, e.g. /v1/exposure/gex/ES%3DF. Options-on-futures use Black-76 ($50/pt ES, $20/pt NQ); CME futures are Growth-tier. See the futures hub.
What You'll Get
The FlashAlpha Lab API gives you programmatic access to real-time options exposure analytics:
- GEX - Gamma exposure by strike (dealer hedging pressure)
- DEX - Delta exposure (directional positioning)
- VEX - Vanna exposure (vol-sensitivity of dealer delta)
- CHEX - Charm exposure (time-decay of dealer delta)
- Stock & option quotes, key levels, AI narrative, and more
The Free plan includes 5 requests/day - enough to explore the API. You can also use the interactive tools to visualize exposure data without writing code.
Step 1: Create Your Free Account
- Go to flashalpha.com/pricing
- Click Get Started Free under the Free plan
- Enter your email and choose a password
- Check your inbox for a 6-digit code and enter it to verify your email
No credit card required. The Free plan has no time limit - upgrade when you need higher limits.
Step 2: Copy Your API Key
- Sign in to your FlashAlpha account
- Your API key is displayed on the Profile page
- Click the copy button next to your key
Your API key authenticates every request. Pass it in the X-Api-Key header.
Step 3: Make Your First Call
Make your first meaningful request on AAPL, a supported individual equity. First discover its listed expirations; then request one date after today. This uses two requests from the Free allowance of 5 requests/day.
Authenticated SPY/QQQ requests require Basic and above for a single future expiry. Full-chain GEX requires Growth and above; today's expiry requires Growth and above. These are API access rules, not a promise of a hosted SPY/QQQ chart.
Download the complete Python example (Python 3.10+, standard library). Set the FLASHALPHA_API_KEY environment variable locally; keep your key out of shared notebooks and source control. Then run python first-gex.py.
import json
import os
from datetime import datetime, timezone
from urllib.error import HTTPError, URLError
from urllib.parse import urlencode
from urllib.request import Request, urlopen
def get(path, params=None):
key = os.environ.get("FLASHALPHA_API_KEY")
if not key:
raise RuntimeError("Set FLASHALPHA_API_KEY to your API key.")
url = "https://lab.flashalpha.com" + path
if params:
url += "?" + urlencode(params)
try:
with urlopen(Request(url, headers={"X-Api-Key": key}), timeout=20) as response:
return json.load(response)
except HTTPError as error:
hints = {401: "Check your API key.", 403: "Check symbol, expiry and plan access.",
429: "Request allowance or concurrency limit reached; wait before retrying."}
raise RuntimeError(f"HTTP {error.code}. " + hints.get(error.code, "API request failed.")) from None
except (URLError, TimeoutError, json.JSONDecodeError):
raise RuntimeError("No usable API response; check service status and retry later.") from None
def main():
symbol = "AAPL"
options = get(f"/v1/options/{symbol}")
# UTC is a conservative date cutoff: any later date is also after today in New York.
# Near midnight UTC this can skip an otherwise eligible next-day NY expiration.
today = datetime.now(timezone.utc).date().isoformat()
expiries = sorted(row["expiration"] for row in options.get("expirations", [])
if row.get("expiration", "") > today)
if not expiries:
raise RuntimeError("No listed future expiry returned. Do not invent an expiration.")
expiry = expiries[0]
result = get(f"/v1/exposure/gex/{symbol}", {"expiration": expiry})
print(f"Symbol: {symbol}; expiration: {expiry}")
print(f"Response as_of: {result.get('as_of', 'not supplied')}")
print(f"Net GEX ($ per 1% move): {result.get('net_gex')}")
print(f"Gamma flip: {result.get('gamma_flip')}; status: {result.get('gamma_flip_status', 'not supplied')}")
print(json.dumps(result, indent=2))
main()
# 1. List supported equity expirations (one API request)
curl --fail-with-body -H "X-Api-Key: YOUR_API_KEY" \
"https://lab.flashalpha.com/v1/options/AAPL"
# 2. Replace YYYY-MM-DD with one listed date after today (second request)
curl --fail-with-body -H "X-Api-Key: YOUR_API_KEY" \
"https://lab.flashalpha.com/v1/exposure/gex/AAPL?expiration=YYYY-MM-DD"
Inspect the returned result: confirm as_of, the selected expiration, net_gex and gamma_flip_status. A missing/unavailable flip is a valid result; do not replace it with zero or infer it by summing strike bars. A 403 means access must be checked; a 429 means wait before retrying. Neither is a successful evaluation.
For SPY full-chain aggregation and downloadable charts you build yourself, continue with the runnable dashboard guide. For all SDKs, use the GEX endpoint reference.
Step 4: Try the Interactive Tools
Don't want to write code yet? Use the interactive tools to visualize exposure data in your browser:
- Gamma Exposure (GEX) - dealer hedging pressure by strike
- Delta Exposure (DEX) - directional positioning
- Vanna Exposure (VEX) - vol-sensitivity flows
- Charm Exposure (CHEX) - time-decay flows
- Volatility Surface - 3D IV surface across strikes and expirations
Sign in on a tool page to use your API key. Tool requests use your plan allowance and symbol/endpoint access rules; a Free key does not unlock every ticker or tool. Start with AAPL in the GEX tool.