# FlashAlpha Plan Tiers & Endpoint Access

## Plans

| Plan | Daily Requests | What It Unlocks |
|------|---------------|-----------------|
| Free | 5 | Stock quotes, GEX by strike, key levels, BSM greeks, IV solver, tickers, options chain meta, symbols, vol surface grid, stock summary (delayed for anonymous callers; live with any API key; CME futures delayed below Growth) |
| Basic | 250 | Everything in Free + DEX/VEX/CHEX exposure, max pain analysis, index symbols, structures (P&L curve, position greeks), expiry-positioning strategy, sell-window (through November 2026; Growth from December 1), expected move |
| Growth | 2,500 | Everything in Basic + exposure summary, narrative, 0DTE analytics, volatility analytics, option quotes (with greeks), full-chain GEX (no expiry filter), Kelly sizing, flow analytics (`/v1/flow/levels`, `/pin-risk`, `/summary`, `/gex`, `/dex`, `/dealer-risk`), earnings endpoints, skew/term-structure/tail-pricing/flow-anomaly/yield-enhancement/sell-window strategies, VIX-state macro, liquidity scores, expected-move endpoint, SPY/QQQ expiry impact and exact-strike gamma attribution (`/v1/exposure/expiry-impact`, `/v1/exposure/strike-dependency`), gamma concentration on exposure term structure, latest stored volatility context on `/v1/volatility`, income diagnostics on yield enhancement |
| Alpha | Unlimited | Everything in Growth + advanced volatility (SVI, variance surfaces, arbitrage detection, greeks surfaces, var swap), VRP analytics (dashboard + history), SVI-smoothed IV on option quotes, raw OI simulator state (`/v1/flow/oi`), flow bundle (`/v1/flow/live`), unusual-flow signal feed (`/v1/flow/signals`), raw option/stock flow data (`/v1/flow/options/*`, `/v1/flow/stocks/*`), dispersion/implied-correlation, vol-carry and surface-anomaly strategies, sell-window backtesting on the historical API, earnings VRP/dealer-positioning/strategies/screener, historical replay on historical.flashalpha.com (including expiry impact, strike dependency, income replay and research packs), daily SPY/QQQ skew, volatility-curve, normalized IV/RV and expected-move history (release pending) |
| Enterprise | Unlimited | Everything in Alpha + the Enterprise snapshot trigger |

## Data freshness by plan

Paid plans (Basic, Growth, Alpha and Enterprise) serve live data. A Free API key gets delayed data and covers about 250 tracked symbols. Plans also control endpoint/symbol access, fields, quotas and concurrency. Upstream data may itself be delayed, stale or unavailable. Live data is not a guarantee of exchange-real-time data or response latency.

Stock and index summaries are an explicit exception: `/v1/stock/{symbol}/summary` serves the newest available snapshot captured before today in US Eastern time to anonymous callers. Every authenticated plan uses the live path, except for CME futures: live futures are Growth, so Free and Basic keys get the same delayed snapshot for `ES=F`, `NQ=F` and the other futures tickers. Failed captures can leave older data; this is not a guaranteed 48-hour delay. Missing eligible snapshots return `404 no_cached_data`; there is no live fallback.

Delayed summaries preserve capture-time `data_as_of` feed metadata and expose `snapshot_as_of.captured_at` with `delayed: true`. Older snapshots without recorded feed metadata report null feed timestamps rather than the current feed clock.

Screener, historical data and the public volatility surface follow their own refresh schedules. Macro quotes are refreshed independently.

Current prices are on the pricing page: https://flashalpha.com/pricing

## Symbol-Class Gating

Three symbol classes are gated independently of the endpoint. A caller can hold a
plan that unlocks an endpoint and still get `403 tier_restricted` because of the
symbol they named.

| Symbol class | Examples | Minimum plan |
|--------------|----------|--------------|
| Equities | AAPL, NVDA, MSFT | Free |
| Listed ETFs | SPY, QQQ, IWM | **Basic** |
| Listed index symbols | SPX, SPXW, RUT, VIX, XSP, DJX | **Basic** |
| CME futures | ES=F, NQ=F, GC=F, CL=F | **Growth** (delayed summary below Growth) |

Symbol access is subject to the endpoint and plan requirements below. The exact `GET /v1/stock/{symbol}/summary` route offers delayed previews: stocks and indexes to anonymous callers, futures to every caller below Growth. Live futures data remains Growth-only on every other data route.

## Index Symbol Gating (Basic+)

Index-symbol access requires Basic or higher, subject to each endpoint's plan requirements. A higher plan can be required for the analytics requested.

## 0DTE Access Gating (Growth+)

Requests with `?expiration=` set to today's date (0DTE) require **Growth plan or higher**. This applies to GEX, DEX, VEX, CHEX, Levels, and the `/v1/strategies/zero-dte` endpoint. Non-0DTE expiration filters work on all plans. Accounts that subscribed before 2026-03-20 are grandfathered and retain 0DTE access on their current plan tier. That grandfathering applies only to the `expiration`-parameter gate. `/v1/strategies/zero-dte` carries no `expiration` parameter and is gated by its endpoint tier instead, so a grandfathered account below Growth still gets a 403 there.

## Diagnosing a 403

A `403` response with `error: tier_restricted` means one of:
- The endpoint requires a higher plan than the caller's current tier (see table above).
- The symbol is an **ETF** (SPY, QQQ, IWM ...) and the caller is on the Free plan. Requires **Basic**.
- The symbol is a **listed index symbol** (SPX, SPXW, RUT, VIX, XSP ...) and the caller is on the Free plan. Requires **Basic**.
- The symbol is a **CME future** (ES=F, NQ=F, GC=F ...) and the caller is below Growth, on any route except `GET /v1/stock/{symbol}/summary` (delayed). Live futures data requires **Growth**.
- The `expiration` parameter is today's date (0DTE) and the caller is below Growth.
- `?polarity=flow` was requested on a `/v1/flow/*` endpoint and the caller is below **Alpha**. The endpoint itself may be Growth; the flow-signed polarity is Alpha-only, so a Growth caller gets the endpoint on `convention` polarity and a 403 on `flow`.

The endpoint tier and the symbol tier are independent, and the stricter of the two
wins. A Free caller needs Basic for SPY even when the endpoint itself is available on Free. A Basic caller gets a 403 on `ES=F`
even on a Basic endpoint, because futures
require Growth. Conversely a Growth caller is entitled to every gated symbol class,
so any 403 they see is an endpoint restriction rather than a symbol one.

Recommend the lowest plan tier that unlocks the requested endpoint or symbol class.
