Skip to main content
Glama

FirmTape - SPX, ES, NQ, RTY gamma levels, 100+ symbols

Gamma by strike

get_gex_profile
Read-onlyIdempotent

The SPX dealer gamma LADDER for one minute of a finished session: gamma by strike around spot, the level set, and the heaviest strikes. Read by default as the VOLUME book, the one the terminal's chart draws; also as the MEASURED book (signed off the trade tape, FirmTape's own read) or the OPEN_INTEREST convention every other public GEX chart draws — the same minute through three lenses. The level set is the volume book's whichever ladder is read. Use when: the question is about SHAPE — where gamma sits, how heavy a wall is, how far the three conventions disagree — or about one moment inside a session rather than the day as a whole. Not for: a day's headline numbers (get_session), the level set alone (get_levels), or movement across days (get_level_history). ES: pass symbol ES (or MES) for ES strikes, the SPX ladder moved by the ES basis at the frame's minute. Limits: finished sessions only, one frame every 5 minutes (a requested minute snaps back to the frame at or before it), published window ±2.5% of spot; the three books are not comparable in magnitude. Measurements only, no buy/sell signals.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dayYesA finished trading day, YYYY-MM-DD. Call list_sessions if unsure which days exist.
bookNoWhich book's ladder to read (default volume, the chart's book). open_interest is the convention rival tools print.
minuteNoET minute HH:MM inside 09:30-16:00. Snaps back to the frame at or before it, so quote the minute the answer returns. Default: the last frame of the session.
symbolNoSPX (default), or ES / MES: every strike, spot and level moved by the ES basis at the frame's minute. A day without a measured basis answers with SPX strikes and says so.
contractNoOptional dated contract for a future symbol. Default is the front contract; in the two weeks before a roll the next one is measured too.
expiry_scopeNoall = every expiry the session's book was pulled with (default); 0dte = the same-day slice alone
strikes_around_spotNoHow many strikes to return each side of spot (default 20). Raise it for the whole published window, which is +/-2.5% of spot.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
dayYesTrading day, YYYY-MM-DD
bookYesWhich book was read: measured, open_interest or volume
noteNoPresent when a future was asked and its basis is not measured for the day
spotYesSPX at that minute
unitYesUnit of every gamma number below
basisNoPresent when an ES/MES (or NQ/MNQ, RTY/M2K) symbol was asked: the futures basis every price here was moved by; null when the day has no measured basis and the answer is the index's
levelsYesDealer-positioning levels in SPX index points (in ES points when `symbol` is ES or MES); null when the session did not produce one
minuteYesThe ET minute (HH:MM) this profile actually belongs to. The archive keeps a frame every 5 minutes, so a requested minute snaps back to the frame at or before it — quote the minute returned here, not the one asked for.
replayYesFree minute-by-minute replay of the session on FirmTape
symbolNoWhat the prices are in: SPX, or ES / MES when asked and the day's basis is measured
strikesYesDealer gamma by strike at that minute, lowest strike first
summaryYesOne sentence carrying this answer's numbers, its trading day and its source, written to be quoted verbatim to a reader rather than paraphrased.
heaviestYesThe largest strikes by absolute gamma inside the window, heaviest first
book_noteNoHow this book is built, and what it can and cannot be compared with
data_as_ofYesThe time this answer's data is true as of, ISO 8601 with the ET offset: a finished session's close (13:00 on an early close), the minute a ladder was read at, or the source's own build stamp. Null when the source states none.
expiry_scopeYesall = every expiry this session's book was pulled with; 0dte = the same-day slice alone
server_versionYesVersion of the FirmTape MCP server that produced this answer
requested_symbolNoPresent when a future was asked but the day has no measured basis, so the answer is SPX's
strikes_returnedYesHow many strikes the window actually held
net_gamma_in_windowYesSum of the returned strikes — a window total, not the session's net gamma

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedOutput schema / properties / basis / description
      Previous value: -"Present when an ES/MES (or NQ/MNQ) symbol was asked: the futures basis every price here was moved by; null when the day has no measured basis and the answer is the index's"New value: +"Present when an ES/MES (or NQ/MNQ, RTY/M2K) symbol was asked: the futures basis every price here was moved by; null when the day has no measured basis and the answer is the index's"
    • changedOutput schema / properties / basis / properties / index / description
      Previous value: -"The index whose book was moved: SPX or NDX"New value: +"The index whose book was moved: SPX, NDX or RUT"
  2. Changed5 schema fields changed
    • addedOutput schema / properties / data_as_of
      Added value: +{
      +  "description": "The time this answer's data is true as of, ISO 8601 with the ET offset: a finished session's close (13:00 on an early close), the minute a ladder was read at, or the source's own build stamp. Null when the source states none.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • removedOutput schema / properties / levels / properties / hold_band
      Removed value: -{
      -  "description": "[low, high] band where dealer hedging tends to pin price",
      -  "items": {
      -    "type": [
      -      "number",
      -      "null"
      -    ]
      -  },
      -  "maxItems": 2,
      -  "minItems": 2,
      -  "type": "array"
      -}
    • changedOutput schema / properties / levels / required
      Previous value: -[
      -  "zero_gamma_flip",
      -  "call_resistance",
      -  "put_support",
      -  "hold_band"
      -]New value: +[
      +  "zero_gamma_flip",
      +  "call_resistance",
      +  "put_support"
      +]
    • addedOutput schema / properties / server_version
      Added value: +{
      +  "description": "Version of the FirmTape MCP server that produced this answer",
      +  "type": "string"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "summary",
      -  "day",
      -  "minute",
      -  "book",
      -  "expiry_scope",
      -  "unit",
      -  "spot",
      -  "levels",
      -  "strikes",
      -  "strikes_returned",
      -  "net_gamma_in_window",
      -  "heaviest",
      -  "replay"
      -]New value: +[
      +  "summary",
      +  "day",
      +  "minute",
      +  "book",
      +  "expiry_scope",
      +  "unit",
      +  "spot",
      +  "levels",
      +  "strikes",
      +  "strikes_returned",
      +  "net_gamma_in_window",
      +  "heaviest",
      +  "replay",
      +  "data_as_of",
      +  "server_version"
      +]
  3. Changed1 schema field changed
    • changedInput schema / properties / book / description
      Previous value: -"Which book to read (default measured). open_interest is the convention rival tools print."New value: +"Which book's ladder to read (default volume, the chart's book). open_interest is the convention rival tools print."
  4. Changed7 schema fields changed
    • addedInput schema / properties / contract
      Added value: +{
      +  "description": "Optional dated contract for a future symbol. Default is the front contract; in the two weeks before a roll the next one is measured too.",
      +  "examples": [
      +    "ESZ26",
      +    "ESH27"
      +  ],
      +  "pattern": "^M?(ES|NQ)[FGHJKMNQUVXZ]\\d{1,2}$",
      +  "type": "string"
      +}
    • addedInput schema / properties / symbol
      Added value: +{
      +  "description": "SPX (default), or ES / MES: every strike, spot and level moved by the ES basis at the frame's minute. A day without a measured basis answers with SPX strikes and says so.",
      +  "examples": [
      +    "SPX",
      +    "ES",
      +    "MES"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / basis
      Added value: +{
      +  "description": "Present when an ES/MES (or NQ/MNQ) symbol was asked: the futures basis every price here was moved by; null when the day has no measured basis and the answer is the index's",
      +  "properties": {
      +    "at": {
      +      "description": "ET minute the basis belongs to",
      +      "type": "string"
      +    },
      +    "contract": {
      +      "description": "The quarterly contract, e.g. ESZ26",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "contracts": {
      +      "description": "History only: the contracts the window's sessions were priced as",
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "expiry": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "future": {
      +      "type": "string"
      +    },
      +    "index": {
      +      "description": "The index whose book was moved: SPX or NDX",
      +      "type": "string"
      +    },
      +    "method": {
      +      "type": "string"
      +    },
      +    "name": {
      +      "type": "string"
      +    },
      +    "passes": {
      +      "description": "Basis passes measured that day",
      +      "type": "integer"
      +    },
      +    "points": {
      +      "description": "Future minus index, index points, added to every level, strike and spot",
      +      "type": "number"
      +    },
      +    "source": {
      +      "format": "uri",
      +      "type": "string"
      +    }
      +  },
      +  "type": [
      +    "object",
      +    "null"
      +  ]
      +}
    • changedOutput schema / properties / levels / description
      Previous value: -"Dealer-positioning levels in SPX index points; null when the session did not produce one"New value: +"Dealer-positioning levels in SPX index points (in ES points when `symbol` is ES or MES); null when the session did not produce one"
    • addedOutput schema / properties / note
      Added value: +{
      +  "description": "Present when a future was asked and its basis is not measured for the day",
      +  "type": "string"
      +}
    • addedOutput schema / properties / requested_symbol
      Added value: +{
      +  "description": "Present when a future was asked but the day has no measured basis, so the answer is SPX's",
      +  "type": "string"
      +}
    • addedOutput schema / properties / symbol
      Added value: +{
      +  "description": "What the prices are in: SPX, or ES / MES when asked and the day's basis is measured",
      +  "type": "string"
      +}
  5. First observed

TDQS

Score is being calculated.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources