Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Authorization not required, issuer https://firmtape.com
Authorization not required, issuer https://firmtape.com
Added "get_watched_sites" (13 tools before, 14 now)
Energy sites and ports watched from orbit — Oil refineries, export terminals, LNG plants, fuel depots and oil ports that FirmTape Geo watches by satellite, mainly in Russia, Crimea and the Gulf: NASA FIRMS thermal anomalies at each site measured against that site's own normal, dated Sentinel-2 images (true colour and SWIR, latest and before/after each anomaly) and, for ports, large vessels counted by Sentinel-1 radar as a weekly median against the port's own trailing 8 weeks. Every site has a page to cite. Use when: 'was there a fire at the Tuapse refinery', 'which Russian refineries had thermal anomalies this month', 'how many tankers…
Authorization not required, issuer https://firmtape.com
Authorization not required, issuer https://firmtape.com
Added "similar_days" (12 tools before, 13 now)
Similar days — Find the finished SPX sessions whose state at the same time of day was nearest to one moment, and what the rest of each of those days did. The state is eight volume-book measurements: distance from the zero-gamma flip, move since the open, distance from the session mean, net-gamma percentile, 0DTE ATM IV and its change since the open, the range so far, and the time spent above the flip. Returns the nearest days (one moment each, with a replay link), their shares (rest of day up, mean move to the close, closed above the flip) and the SAME shares over every archived moment in the same quarter-h…
Authorization not required, issuer https://firmtape.com
Authorization not required, issuer https://firmtape.com
Changed the definition of "get_level_history" and "get_levels"
⟨7 unchanged words⟩ recent finished sessions: the zero-gamma flip, callresistancewall and putsupportwall day by day, each session's change from ⟨119 unchanged words⟩
⟨6 unchanged words⟩ one finished SPX session: zero-gamma flip, callresistancewall, putsupport
Changed the definition of "get_gex_profile", "get_level_history", "get_levels" and 2 more
⟨2 unchanged words⟩ description":"Present when an ES/MES (or NQ/MNQ, RTY/M2K) symbol was asked: the futures basis every ⟨66 unchanged words⟩ :"The index whose book was moved: SPX, NDX orNDXRUT","type":"string"},"method":{ ⟨497 unchanged words⟩
⟨2 unchanged words⟩ description":"Present when an ES/MES (or NQ/MNQ
Authorization not required, issuer https://firmtape.com
Authorization not required, issuer https://firmtape.com
Authorization not required, issuer https://firmtape.com
Authorization not required, issuer https://firmtape.com
Added "get_coverage"; changed the definition of "get_events", "get_gex_profile", "get_level_history" and 5 more (11 tools before, 12 now)
{"properties":{"data_as_of":{"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"]},"events":{"description":"Scheduled US market events ⟨22 unchanged words⟩ from the archive, when measured: the flip,and the gamma sign at the start of the window, the expected-hold band","type":"string"},"date":{ ⟨150 unchanged words⟩ day, YYYY-MM-DD","type":"string"},"server_version":{"description":"Version of the FirmTape MCP server that produced this answer","type":"string"},"summary":{"description":"One sentence carrying this ⟨29 unchanged words⟩ :["summary","from","to","events","data_as_of","server_version"],"type":"object"}
Removed "options_strategy_test"; changed the definition of "fetch", "get_events", "get_gex_profile" and 8 more (12 tools before, 11 now)
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":true,"title":"Fetch a FirmTape document"}
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":true,"title":"Market calendar"}
Authorization not required, issuer https://firmtape.com
Changed the definition of "get_gex_profile" and "get_symbol_gamma"
⟨17 unchanged words⟩ the level set, and the heaviest strikes.ReadableRead 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),asor the OPEN_INTEREST convention every other public GEX chart draws,or as the VOLUME convention— the same minute through three lenses. The level set is the volume book's whichever ladder is read; the hold band is the measured book's (it has no volume twin). Use when: the question is about SHAPE ⟨108 unchanged words⟩
Authorization not required, issuer https://firmtape.com
Changed the definition of "get_gex_profile", "get_level_history", "get_levels" and 2 more
⟨108 unchanged words⟩ ), 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 ⟨32 unchanged words⟩
⟨22 unchanged words⟩ ,"volume"],"type":"string"},"contract":{"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"},"day":{"description":"A finished trading day ⟨116 unchanged words⟩ ":200,"minimum":1,"type":"integer"},"symbol":{"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
Authorization not required, issuer https://firmtape.com
Changed the definition of "get_events", "get_market_moving_minutes" and "get_session"
⟨39 unchanged words⟩ at the start of the window, thewallsexpected-hold band","type":"string"},"date":{ ⟨195 unchanged words⟩
⟨73 unchanged words⟩ 5 and 15 minutes and the flip andwallsexpected-hold band at that minute. Use when: 'what moved ⟨50 unchanged words⟩
Authorization not required, issuer https://firmtape.com
Authorization not required, issuer https://firmtape.com
Authorization not required, issuer https://firmtape.com
Authorization not required, issuer https://firmtape.com
Added "get_symbol_gamma" (11 tools before, 12 now)
Gamma for another symbol — The latest dealer gamma picture for a symbol OTHER than the SPX archive: index, ETF and stock option chains (for example QQQ, SPY, IWM, NDX, RUT, NVDA, TSLA, GLD, TLT). Returns spot, the zero-gamma flip, call and put walls and net gamma for the VOLUME book and the OPEN_INTEREST book, the heaviest strikes, a per-expiry table and a trust grade. Use when: the question is about a ticker's gamma exposure, flip or walls right now or at the last close. Not for: SPX history, a past date, or the tape-signed measured book (get_session, get_levels, get_gex_profile); anything inside a past session. Limit…
Authorization not required, issuer https://firmtape.com
Authorization not required, issuer https://firmtape.com
Added "screen_sessions"; changed the definition of "search" (10 tools before, 11 now)
⟨54 unchanged words⟩ prefer list_sessions / get_session / get_levels / get_level_history / screen_sessions instead — those return structured numbers rather than ⟨40 unchanged words⟩
Screen sessions — Filter the finished SPX sessions in the FirmTape archive by their closing measurements and count them: regime at the close and at the open, zero-gamma flip crossings, whether the expected-hold band held, direction and size of the move, net-gamma percentile, 0DTE ATM IV at the open, the calendar event, weekday and year. Returns how many sessions match, three shares over them (closed above the flip, band held, mean absolute move) printed next to the same shares over the whole archive, and the matched days. A matched share close to the archive's share is a base rate, not a pattern. Use when: 'ho…
Authorization not required, issuer https://firmtape.com
Authorization not required, issuer https://firmtape.com
Certificate recorded, valid to 2026-11-29
Authorization not required, issuer https://firmtape.com
First tool surface recorded: 10 tools (server version 0.2.1)
Showing the latest 35 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
⟨2 unchanged words⟩ description":"Present when an ES/MES (or NQ/MNQ, RTY/M2K) symbol was asked: the futures basis every ⟨66 unchanged words⟩ :"The index whose book was moved: SPX, NDX orNDXRUT","type":"string"},"method":{ ⟨312 unchanged words⟩
⟨2 unchanged words⟩ description":"Present when an ES/MES (or NQ/MNQ, RTY/M2K) symbol was asked: the futures basis every ⟨66 unchanged words⟩ :"The index whose book was moved: SPX, NDX orNDXRUT","type":"string"},"method":{ ⟨528 unchanged words⟩
Gamma for another symbol, ES, NQ orNQRTY
⟨28 unchanged words⟩ GLD, TLT), and the E-mini futures ES, NQ andNQRTY (MES, MNQ, M2K):ES/NQES/NQ/RTY are theSPX/NDXSPX/NDX/RUT books moved by the day's basis (future ⟨57 unchanged words⟩ now or at the last close, including ES, NQ orNQRTY gamma levels. Not for: SPX or ES ⟨80 unchanged words⟩
⟨29 unchanged words⟩ too.","examples":["ESZ26","NQH27","RTYZ26"],"pattern":"^M?^(ES|NQM?ES|M?NQ|RTY|M2K)[FGHJKMNQUVXZ]\\d{1,2}$","type" ⟨5 unchanged words⟩ or ES / MES / NQ / MNQ / RTY / M2K (a dated code such as ESZ26 or RTYZ26 works too). Carried symbols are listed at ⟨12 unchanged words⟩ ["QQQ","NVDA","ES","NQ","RTY"],"pattern":"^\\$?([A-Za-z]{1,5}|[Mm]2[Kk][A-Za-z]?)(\\d{1,2})?$","type":" ⟨5 unchanged words⟩
⟨8 unchanged words⟩ ,"title":"Gamma for another symbol, ES, NQ orNQRTY"}
⟨69 unchanged words⟩ set is the volume book's whichever ladder isread; the hold band is the measured book's (it has no volume twin).read. Use when: the question is about SHAPE ⟨108 unchanged words⟩
⟨158 unchanged words⟩ compared with","type":"string"},"data_as_of":{"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"]},"day":{"description":"Trading day, YYYY-MM-DD" ⟨85 unchanged words⟩ "type":["number","null"]},"hold_band":{"description":"[low, high] band where dealer hedging tends to pin price","items":{"type":["number","null"]},"maxItems":2,"minItems":2,"type":"array"},"put_support":{"description":"Largest positive-gamma strike below ⟨16 unchanged words⟩ "required":["zero_gamma_flip","call_resistance","put_support","hold_band"],"type":"object"},"minute":{ ⟨115 unchanged words⟩ is SPX's","type":"string"},"server_version":{"description":"Version of the FirmTape MCP server that produced this answer","type":"string"},"spot":{"description":"SPX at that minute ⟨111 unchanged words⟩ ","strikes_returned","net_gamma_in_window","heaviest","replay","data_as_of","server_version"],"type":"object"}
⟨129 unchanged words⟩ "type":["object","null"]},"data_as_of":{"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"]},"from":{"description":"Trading day, YYYY-MM-DD" ⟨186 unchanged words⟩ is SPX's","type":"string"},"server_version":{"description":"Version of the FirmTape MCP server that produced this answer","type":"string"},"sessions":{"description":"One entry per finished ⟨111 unchanged words⟩ "type":["number","null"]},"hold_band":{"description":"[low, high] band where dealer hedging tends to pin price","items":{"type":["number","null"]},"maxItems":2,"minItems":2,"type":"array"},"put_support":{"description":"Largest positive-gamma strike below ⟨16 unchanged words⟩ "required":["zero_gamma_flip","call_resistance","put_support","hold_band"],"type":"object"},"put_support_change":{ ⟨72 unchanged words⟩ ","to","sessions","movement","missing","data_as_of","server_version"],"type":"object"}
⟨10 unchanged words⟩ zero-gamma flip, call resistance, put support,hold band —plus where the session closed relative to them. ⟨87 unchanged words⟩
⟨153 unchanged words⟩ "type":["number","null"]},"data_as_of":{"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"]},"day":{"description":"Trading day, YYYY-MM-DD" ⟨36 unchanged words⟩ "type":["number","null"]},"hold_band":{"description":"[low, high] band where dealer hedging tends to pin price","items":{"type":["number","null"]},"maxItems":2,"minItems":2,"type":"array"},"put_support":{"description":"Largest positive-gamma strike below ⟨16 unchanged words⟩ "required":["zero_gamma_flip","call_resistance","put_support","hold_band"],"type":"object"},"note":{ ⟨50 unchanged words⟩ is SPX's","type":"string"},"server_version":{"description":"Version of the FirmTape MCP server that produced this answer","type":"string"},"summary":{"description":"One sentence carrying this ⟨46 unchanged words⟩ ","levels","close","close_minus_flip","replay","data_as_of","server_version"],"type":"object"}
⟨72 unchanged words⟩ next 5 and 15 minutes and the flipand expected-hold bandat that minute. Use when: 'what moved SPX ⟨49 unchanged words⟩
{"properties":{"data_as_of":{"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"]},"day":{"description":"Trading day, YYYY-MM-DD" ⟨55 unchanged words⟩ "type":["number","null"]},"hold_band":{"description":"The expected-hold band at the minute, 'lo / hi': the corridor of spot over which the measured book's gamma stays positive. Not the walls. (Was misnamed `walls` before 0.2.4.)","type":["string","null"]},"kind":{"description":"calendar (a scheduled ⟨223 unchanged words⟩ :"object"},"type":"array"},"server_version":{"description":"Version of the FirmTape MCP server that produced this answer","type":"string"},"summary":{"description":"One sentence carrying this ⟨21 unchanged words⟩ ,"required":["summary","day","minutes","data_as_of","server_version"],"type":"object"}
⟨15 unchanged words⟩ how often price crossed it, call/put walls,the hold band,net-gamma percentile, ATM IV at the open. Use ⟨74 unchanged words⟩
⟨129 unchanged words⟩ "type":["object","null"]},"data_as_of":{"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"]},"day":{"description":"Trading day, YYYY-MM-DD" ⟨66 unchanged words⟩ "type":["number","null"]},"hold_band":{"description":"[low, high] band where dealer hedging tends to pin price","items":{"type":["number","null"]},"maxItems":2,"minItems":2,"type":"array"},"put_support":{"description":"Largest positive-gamma strike below ⟨16 unchanged words⟩ "required":["zero_gamma_flip","call_resistance","put_support","hold_band"],"type":"object"},"net_gamma_percentile":{ ⟨66 unchanged words⟩ 15 minutes after the event, the flipand the expected-hold bandbefore and after, the net gamma sign; only ⟨109 unchanged words⟩ is SPX's","type":"string"},"server_version":{"description":"Version of the FirmTape MCP server that produced this answer","type":"string"},"session":{"description":"SPX price facts for ⟨116 unchanged words⟩ ","day","session","dealer_positioning","replay","data_as_of","server_version"],"type":"object"}
{"properties":{"data_as_of":{"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"]},"newest":{"description":"Trading days, newest ⟨7 unchanged words⟩ :"string"},"type":"array"},"server_version":{"description":"Version of the FirmTape MCP server that produced this answer","type":"string"},"summary":{"description":"One sentence carrying this ⟨33 unchanged words⟩ ,"required":["summary","total_sessions","newest","data_as_of","server_version"],"type":"object"}
⟨20 unchanged words⟩ and at the open, zero-gamma flip crossings,whether the expected-hold band held,direction and size of the move, net-gamma percentile ⟨10 unchanged words⟩ and year. Returns how many sessions match,threetwo shares over them (closed above the flip,band held,mean absolute move) printed next to the same ⟨30 unchanged words⟩ days close in negative gamma', 'the daysthethatbandclosedbrokebelow the flip with the percentile under 20', 'largest moves ⟨47 unchanged words⟩
{"additionalProperties":false,"properties":{"band":{"description":"Whether the expected-hold band held all session","enum":["held","broke"],"type":"string"},"cross":{"description":"Flip crossings in the ⟨310 unchanged words⟩
⟨6 unchanged words⟩ the archive","type":"integer"},"data_as_of":{"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"]},"filters":{"description":"The filters the screener ⟨63 unchanged words⟩ to screen","type":"integer"},"server_version":{"description":"Version of the FirmTape MCP server that produced this answer","type":"string"},"sessions":{"description":"Matched sessions in the ⟨44 unchanged words⟩ "type":["integer","null"]},"hold_band_held":{"type":["boolean","null"]},"move_pct":{"description":"Open-to-close move, percent" ⟨72 unchanged words⟩ "type":["number","null"]},"band_held_pct":{"description":"Percent of them whose expected-hold band held all session","type":["number","null"]},"mean_abs_move_pct":{"description":"Mean absolute open-to-close move ⟨25 unchanged words⟩ "type":["number","null"]},"band_held_pct":{"description":"Percent of them whose expected-hold band held all session","type":["number","null"]},"mean_abs_move_pct":{"description":"Mean absolute open-to-close move ⟨79 unchanged words⟩ ","archived","shares","truncated","sessions","data_as_of","server_version"],"type":"object"}
Archive coverage — What the free FirmTape SPX archive holds: the first and last finished session, how many sessions, and the NYSE trading days in that span that are MISSING from it (weekdays minus US market holidays; early closes count as trading days), optionally inside a from/to window. Use when: 'is 2024-03-15 in the archive', 'how complete is 2023', 'which days are missing' before a study that needs every session. Not for: the newest days themselves (list_sessions) or any measurement (get_session). Limits: the trading calendar covers 2022 to 2026; missing days are reported, never filled in.
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":true,"title":"Gamma by strike"}
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":true,"title":"Level history"}
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":true,"title":"Level set"}
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":true,"title":"Minutes that moved the tape"}
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":true,"title":"Session summary"}
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":true,"title":"Gamma for another symbol, ES or NQ"}
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":true,"title":"List sessions"}
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":true,"title":"Screen sessions"}
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":true,"title":"Search FirmTape"}
Test an options strategy on the archive — Test an SPX 0DTE options strategy — a condor, strangle, straddle or any leg set — against every session in the FirmTape archive on real quotes and real settlement. One call prices it 63 ways: seven widths of your geometry across nine entry times, so the answer is WHERE TO PUT THE STRIKES rather than a verdict on one guess. Short legs are sold at the bid and long legs bought at the ask, $1.25 a leg — measured on 13.1M prints, the median SPX 0DTE print pays the full quoted half-spread, so these fills are the median outcome and not a conservative one. Returns the marginal by width and by entry, …
{"additionalProperties":false,"properties":{"book":{"description":"Whichbookbook's ladder to read (defaultmeasuredvolume, the chart's book). open_interest is the convention rival tools print. ⟨218 unchanged words⟩
⟨117 unchanged words⟩ gamma levels. Not for: SPX or ES history,or a past date,or the tape-signed measured book(get_session, get_levels, get_gex_profile, which take symbol ES for past days); anything ⟨63 unchanged words⟩
{"properties":{"basis":{"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"]},"book":{"description":"Which book was read: measured, open_interest or ⟨78 unchanged words⟩ {"description":"Dealer-positioning levels in SPX indexpoints;points (in ES points when `symbol` is ES or MES); null when the session did not produce one" ⟨124 unchanged words⟩ "type":["number","null"]},"note":{"description":"Present when a future was asked and its basis is not measured for the day","type":"string"},"replay":{"description":"Free minute-by-minute replay of ⟨5 unchanged words⟩ ":"uri","type":"string"},"requested_symbol":{"description":"Present when a future was asked but the day has no measured basis, so the answer is SPX's","type":"string"},"spot":{"description":"SPX at that minute ⟨59 unchanged words⟩ quoted verbatim to a reader rather than paraphrased.","type":"string"},"symbol":{"description":"What the prices are in: SPX, or ES / MES when asked and the day's basis is measured","type":"string"},"unit":{ ⟨25 unchanged words⟩
⟨89 unchanged words⟩ or anything inside a session (get_gex_profile). ES: pass symbol ES (or MES) for the same series in E-mini prices, each session moved by its own ES basis. Limits: finished sessions only, max 40 per ⟨20 unchanged words⟩
{"additionalProperties":false,"properties":{"contract":{"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"},"days":{"description":"How many of the ⟨37 unchanged words⟩ :"^\\d{4}-\\d{2}-\\d{2}$","type":"string"},"symbol":{"description":"SPX (default), or ES / MES: each session's levels and close moved by that session's ES basis at its close. Sessions without a measured basis are left out and listed in no_basis; with fewer than two measured, the answer is SPX's and says so.","examples":["SPX","ES","MES"],"type":"string"},"to":{" ⟨29 unchanged words⟩
{"properties":{"basis":{"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"]},"from":{"description":"Trading day, YYYY-MM-DD" ⟨113 unchanged words⟩ ,"closes_below_flip"],"type":"object"},"no_basis":{"description":"ES only: sessions in the window with no measured basis, left out of the ES series rather than shown at SPX prices","items":{"description":"Trading day, YYYY-MM-DD","type":"string"},"type":"array"},"note":{"description":"Present when a future was asked and its basis is not measured for the day","type":"string"},"requested_symbol":{"description":"Present when a future was asked but the day has no measured basis, so the answer is SPX's","type":"string"},"sessions":{"description":"One entry per finished session, NEWEST FIRST, same order as list_sessions","items":{"properties":{"basis":{"description":"ES only: the session's basis at its close, index points, added to its levels and close","type":"number"},"call_resistance_change":{"type":["number","null" ⟨45 unchanged words⟩ {"description":"Dealer-positioning levels in SPX indexpoints;points (in ES points when `symbol` is ES or MES); null when the session did not produce one" ⟨93 unchanged words⟩ quoted verbatim to a reader rather than paraphrased.","type":"string"},"symbol":{"description":"What the prices are in: SPX, or ES / MES when asked and the day's basis is measured","type":"string"},"to":{ ⟨15 unchanged words⟩
⟨65 unchanged words⟩ (get_level_history); gamma by strike (get_gex_profile). ES: pass symbol ES (or MES) for ES gamma levels, the SPX levels moved by the day's ES basis (future minus index from put-call parity; no CME data); NQ levels come from get_symbol_gamma. Limits: finished sessions only, one day per call.
{"additionalProperties":false,"properties":{"contract":{"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"},"day":{"description":"A finished trading day ⟨21 unchanged words⟩ :"^\\d{4}-\\d{2}-\\d{2}$","type":"string"},"symbol":{"description":"SPX (default), or ES / MES for the E-mini: the SPX book moved by the day's ES basis (future minus index from put-call parity). A day without a measured basis answers with SPX index levels and says so.","examples":["SPX","ES","MES"],"type":"string"}},"required":[ ⟨3 unchanged words⟩
{"properties":{"basis":{"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"]},"close":{"description":"Session close","type ⟨27 unchanged words⟩ {"description":"Dealer-positioning levels in SPX indexpoints;points (in ES points when `symbol` is ES or MES); null when the session did not produce one" ⟨59 unchanged words⟩ ,"hold_band"],"type":"object"},"note":{"description":"Present when a future was asked and its basis is not measured for the day","type":"string"},"replay":{"description":"Free minute-by-minute replay of ⟨5 unchanged words⟩ ":"uri","type":"string"},"requested_symbol":{"description":"Present when a future was asked but the day has no measured basis, so the answer is SPX's","type":"string"},"summary":{"description":"One sentence carrying this ⟨11 unchanged words⟩ quoted verbatim to a reader rather than paraphrased.","type":"string"},"symbol":{"description":"What the prices are in: SPX, or ES / MES when asked and the day's basis is measured","type":"string"}},"required": ⟨8 unchanged words⟩
⟨62 unchanged words⟩ ), or gamma by strike (get_gex_profile). ES: pass symbol ES (or MES) for the same day in E-mini prices, the SPX book moved by the day's ES basis. Limits: finished sessions only, one day per ⟨10 unchanged words⟩
{"additionalProperties":false,"properties":{"contract":{"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"},"day":{"description":"A finished trading day ⟨21 unchanged words⟩ :"^\\d{4}-\\d{2}-\\d{2}$","type":"string"},"symbol":{"description":"SPX (default), or ES / MES for the E-mini: the SPX book moved by the day's ES basis (future minus index from put-call parity). A day without a measured basis answers with SPX index levels and says so.","examples":["SPX","ES","MES"],"type":"string"}},"required":[ ⟨3 unchanged words⟩
{"properties":{"basis":{"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"]},"day":{"description":"Trading day, YYYY-MM-DD","type":"string"} ⟨31 unchanged words⟩ {"description":"Dealer-positioning levels in SPX indexpoints;points (in ES points when `symbol` is ES or MES); null when the session did not produce one" ⟨203 unchanged words⟩ :"object"},"type":"array"},"note":{"description":"Present when a future was asked and its basis is not measured for the day","type":"string"},"replay":{"description":"Free minute-by-minute replay of ⟨5 unchanged words⟩ ":"uri","type":"string"},"requested_symbol":{"description":"Present when a future was asked but the day has no measured basis, so the answer is SPX's","type":"string"},"session":{"description":"SPX price facts for ⟨82 unchanged words⟩ quoted verbatim to a reader rather than paraphrased.","type":"string"},"symbol":{"description":"What the prices are in: SPX, or ES / MES when asked and the day's basis is measured","type":"string"}},"required": ⟨7 unchanged words⟩
Gamma for another symbol, ES or NQ⟨25 unchanged words⟩ , RUT, NVDA, TSLA, GLD, TLT), and the E-mini futures ES and NQ (MES, MNQ): ES/NQ are the SPX/NDX books moved by the day's basis (future minus index, from put-call parity on the index options; no CME data). Returns spot, the zero-gamma flip, call ⟨35 unchanged words⟩ or walls right now or at the lastclose.close, including ES or NQ gamma levels. Not for: SPX or ES history, a past date, or the tape-signed measured book (get_session, get_levels, get_gex_profile take symbol ES for past days); anything inside a past session. Limits: ⟨58 unchanged words⟩
{"additionalProperties":false,"properties":{"contract":{"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","NQH27"],"pattern":"^M?(ES|NQ)[FGHJKMNQUVXZ]\\d{1,2}$","type":"string"},"symbol":{"description":"Theticker.ticker, or ES / MES / NQ / MNQ (a dated code such as ESZ26 works too). Carried symbols are listed at https://firmtape.com/gex; an ⟨7 unchanged words⟩ page.","examples":["QQQ","NVDA","ES","NQ"],"pattern":"^^\\$?[A-Za-z]{1,5}$(\\d{1,2})?$","type":"string"}},"required": ⟨3 unchanged words⟩
⟨61 unchanged words⟩ "type":["number","null"]},"hold_band":{"description":"The expected-hold band at the minute, 'lo / hi': the corridor of spot over which the measured book's gamma stays positive. Not the walls. (Was misnamed `walls` before 0.2.4.)","type":["string","null"]},"kind":{"description":"calendar (a scheduled ⟨195 unchanged words⟩ continued the 5-minute move","type":"string"},"walls":{"description":"The put and call walls at the minute, 'lo / hi'","type":["string","null"]},"z":{"description":"The one-minute ⟨54 unchanged words⟩
⟨185 unchanged words⟩ after the event, the flip and thewallsexpected-hold band before and after, the net gamma sign; ⟨179 unchanged words⟩