Skip to content

KB/api

GET /api/v1/signals/gamma/front-expiry

Last verified

Auto-generated. This article is rebuilt from FastAPI route introspection by scripts/build_api_kb.py. Edit the route docstring in app/ and re-run the script β€” do not edit this file directly.

GET /api/v1/signals/gamma/front-expiry

Handler: app.signals.routes.get_gamma_front_expiry
Methods: GET

Description

Front-expiry (nearest-expiration) per-strike gamma profile β€” the 0DTE rail.

The public gamma surfaces so far serve the AGGREGATE: /signals/gamma and the gamma-rail’s wide grain fold the nearest ~5 expirations into one per-strike map, so expiration identity is gone. For a short-dated trader the front expiration’s own wall structure is the truer intraday map β€” the strikes that actually pin today’s tape.

Reads the gamma_profile_expiry_daily per-expiration substrate (built from option-chain analytics, forward-only capture from 2026-06 β€” there is no historical chain to reconstruct from, so the table accrues from deploy).

Distinct from the gamma-rail’s near grain (Law 3 β€” different measures get different names). near AGGREGATES the front TWO stored expirations into one ladder, truncated to the top ~20 strikes by abs(net_gex), selected purely by sort order. This route serves ONE expiration β€” the nearest whose expiration_date is on/after today’s ET date, so an already-expired row can never be served as the front rail β€” and returns its FULL stored strike list, untruncated. Walls for both come from the one shared _derive_expiry_walls helper, so the two grains can never disagree about the same strikes.

spot is the underlying_price stamped on the rows at capture, not a live quote β€” the walls and the spot they are measured against are as-of the same snapshot.

Per DOCTRINE P0 this route NEVER 404s and NEVER 500s. Every absence β€” nothing captured yet, nothing captured for this underlying, every stored expiration already past, a failed read β€” returns HTTP 200 with null fields and a plain-language reason. A malformed underlying param is the one loud case (HTTP 400): a typo must not be indistinguishable from a genuinely empty substrate.

Parameters

In Name Type Default Description
query underlying str 'SPY'

Curl

curl -s https://bigclawd.com/api/v1/signals/gamma/front-expiry