{"openapi":"3.1.0","info":{"title":"ImpliedOptions API","version":"1.0.0","description":"Options flow, chains, IV, GEX, P&L modeling and portfolio tracking as typed tools for agents.","x-mcp":"https://impliedoptions.com/mcp","x-llms-txt":"https://impliedoptions.com/llms.txt"},"servers":[{"url":"https://impliedoptions.com/api/v1"}],"tags":[{"name":"Data","description":"Market data, flow, chains, IV and positioning"},{"name":"Model","description":"P&L and scenario modeling"},{"name":"Track","description":"Positions, watchlist and alerts"}],"security":[{"apiKey":[]},{"oauth2":["read"]}],"paths":{"/tools/market.status":{"post":{"operationId":"market_status","summary":"Market status","description":"Whether US equity markets are open right now, the current session, and the next regular-session open.","tags":["Data"],"security":[{"apiKey":[]},{"oauth2":["read"]},{}],"x-tier":"free","x-access":"read","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":false},"examples":{"example1":{"summary":"No arguments","value":{}}}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"open":{"type":"boolean"},"session":{"type":"string","enum":["pre","regular","post","closed"]},"next_open":{"type":"string"},"as_of":{"type":"string"},"timezone":{"type":"string","enum":["America/New_York"]}},"required":["open","session","as_of","timezone"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"description":"Error (RFC 9457 problem+json)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}},"get":{"operationId":"market_status_get","summary":"Market status","description":"Whether US equity markets are open right now, the current session, and the next regular-session open.","tags":["Data"],"security":[{"apiKey":[]},{"oauth2":["read"]},{}],"x-tier":"free","x-access":"read","parameters":[],"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"open":{"type":"boolean"},"session":{"type":"string","enum":["pre","regular","post","closed"]},"next_open":{"type":"string"},"as_of":{"type":"string"},"timezone":{"type":"string","enum":["America/New_York"]}},"required":["open","session","as_of","timezone"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"description":"Error (RFC 9457 problem+json)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/tools/flow.search":{"post":{"operationId":"flow_search","summary":"Search options flow","description":"Unusual options prints (blocks, sweeps, complex, strategies) filtered by ticker, type, side, premium and DTE. Free callers get 15-minute delayed prints capped at 50 rows.","tags":["Data"],"security":[{"apiKey":[]},{"oauth2":["read"]},{}],"x-tier":"free","x-access":"read","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"tickers":{"type":"array","items":{"allOf":[{"type":"string"},{"type":"string","pattern":"^[A-Z]{1,6}$"}],"description":"Ticker symbol, e.g. SPY"},"minItems":1,"maxItems":50,"description":"Ticker symbols"},"types":{"type":"array","items":{"type":"string","enum":["block","sweep","complex","strategy"]},"minItems":1,"description":"Print types; default all"},"rights":{"type":"array","items":{"type":"string","enum":["C","P"],"description":"C = call, P = put"},"minItems":1},"sides":{"type":"array","items":{"type":"string","enum":["BUY","SELL"]},"minItems":1},"min_premium":{"type":"number","minimum":0,"description":"Minimum premium in USD"},"min_dte":{"type":"integer","minimum":0},"max_dte":{"type":"integer","minimum":0},"sentiment":{"type":"string","enum":["bullish","bearish"]},"since":{"type":"string","format":"date-time","description":"Only prints strictly after this timestamp"},"window":{"type":"string","pattern":"^(\\d+)(m|h|d)$","description":"Historical lookback window (e.g. 3h, 1d); free ≤3d, paid ≤5d"},"limit":{"type":"integer","minimum":1,"maximum":2000,"default":100,"description":"Max rows (1–2000)"}},"additionalProperties":false},"examples":{"example1":{"summary":"Large SPY/QQQ prints","value":{"tickers":["SPY","QQQ"],"min_premium":1000000,"limit":20}},"example2":{"summary":"Bullish short-dated sweeps","value":{"types":["sweep"],"sides":["BUY"],"sentiment":"bullish","max_dte":30,"limit":50}},"example3":{"summary":"Yesterday and today for NVDA","value":{"tickers":["NVDA"],"window":"1d","limit":100}}}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"prints":{"type":"array","items":{"type":"object","properties":{"ts":{"type":"string"},"ticker":{"type":"string"},"occ":{"type":"string"},"expiration":{"type":"string"},"strike":{"type":"number"},"right":{"type":"string","enum":["C","P"],"description":"C = call, P = put"},"type":{"type":"string","enum":["block","sweep","complex","strategy"]},"side":{"type":"string","enum":["BUY","SELL"]},"size":{"type":"number"},"price":{"type":"number"},"premium":{"type":"number"},"sentiment":{"type":"string"},"dte":{"type":"number"},"volume_ratio":{"type":"number"},"unusual":{"type":"boolean"}},"required":["ts","ticker","occ","expiration","strike","right","type","side","size","price","premium","dte"],"additionalProperties":false}}},"required":["prints"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"description":"Error (RFC 9457 problem+json)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}},"get":{"operationId":"flow_search_get","summary":"Search options flow","description":"Unusual options prints (blocks, sweeps, complex, strategies) filtered by ticker, type, side, premium and DTE. Free callers get 15-minute delayed prints capped at 50 rows.","tags":["Data"],"security":[{"apiKey":[]},{"oauth2":["read"]},{}],"x-tier":"free","x-access":"read","parameters":[{"name":"tickers","in":"query","required":false,"description":"Ticker symbols","schema":{"type":"array","items":{"allOf":[{"type":"string"},{"type":"string","pattern":"^[A-Z]{1,6}$"}],"description":"Ticker symbol, e.g. SPY"},"minItems":1,"maxItems":50,"description":"Ticker symbols"},"style":"form","explode":false},{"name":"types","in":"query","required":false,"description":"Print types; default all","schema":{"type":"array","items":{"type":"string","enum":["block","sweep","complex","strategy"]},"minItems":1,"description":"Print types; default all"},"style":"form","explode":false},{"name":"rights","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","enum":["C","P"],"description":"C = call, P = put"},"minItems":1},"style":"form","explode":false},{"name":"sides","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","enum":["BUY","SELL"]},"minItems":1},"style":"form","explode":false},{"name":"min_premium","in":"query","required":false,"description":"Minimum premium in USD","schema":{"type":"number","minimum":0,"description":"Minimum premium in USD"}},{"name":"min_dte","in":"query","required":false,"schema":{"type":"integer","minimum":0}},{"name":"max_dte","in":"query","required":false,"schema":{"type":"integer","minimum":0}},{"name":"sentiment","in":"query","required":false,"schema":{"type":"string","enum":["bullish","bearish"]}},{"name":"since","in":"query","required":false,"description":"Only prints strictly after this timestamp","schema":{"type":"string","format":"date-time","description":"Only prints strictly after this timestamp"}},{"name":"window","in":"query","required":false,"description":"Historical lookback window (e.g. 3h, 1d); free ≤3d, paid ≤5d","schema":{"type":"string","pattern":"^(\\d+)(m|h|d)$","description":"Historical lookback window (e.g. 3h, 1d); free ≤3d, paid ≤5d"}},{"name":"limit","in":"query","required":false,"description":"Max rows (1–2000)","schema":{"type":"integer","minimum":1,"maximum":2000,"default":100,"description":"Max rows (1–2000)"}}],"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"prints":{"type":"array","items":{"type":"object","properties":{"ts":{"type":"string"},"ticker":{"type":"string"},"occ":{"type":"string"},"expiration":{"type":"string"},"strike":{"type":"number"},"right":{"type":"string","enum":["C","P"],"description":"C = call, P = put"},"type":{"type":"string","enum":["block","sweep","complex","strategy"]},"side":{"type":"string","enum":["BUY","SELL"]},"size":{"type":"number"},"price":{"type":"number"},"premium":{"type":"number"},"sentiment":{"type":"string"},"dte":{"type":"number"},"volume_ratio":{"type":"number"},"unusual":{"type":"boolean"}},"required":["ts","ticker","occ","expiration","strike","right","type","side","size","price","premium","dte"],"additionalProperties":false}}},"required":["prints"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"description":"Error (RFC 9457 problem+json)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/tools/flow.summary":{"post":{"operationId":"flow_summary","summary":"Flow summary","description":"Aggregate options-flow posture over a window: print counts by type, buy vs sell, net call/put premium and the top tickers by premium.","tags":["Data"],"security":[{"apiKey":[]},{"oauth2":["read"]},{}],"x-tier":"free","x-access":"read","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"window":{"type":"string","enum":["1h","4h","24h"],"default":"24h"},"tickers":{"type":"array","items":{"allOf":[{"type":"string"},{"type":"string","pattern":"^[A-Z]{1,6}$"}],"description":"Ticker symbol, e.g. SPY"},"minItems":1,"maxItems":50,"description":"Ticker symbols"},"min_premium":{"type":"number","minimum":0,"description":"Minimum premium in USD"}},"additionalProperties":false},"examples":{"example1":{"summary":"Whole-market posture today","value":{"window":"24h"}},"example2":{"summary":"Index ETFs, last 4 hours","value":{"window":"4h","tickers":["SPY","QQQ"],"min_premium":100000}}}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"window":{"type":"string","enum":["1h","4h","24h"]},"counts":{"type":"object","properties":{"total":{"type":"number"},"block":{"type":"number"},"sweep":{"type":"number"},"complex":{"type":"number"},"strategy":{"type":"number"}},"required":["total","block","sweep","complex","strategy"],"additionalProperties":false},"buy_sell":{"type":"object","properties":{"buy":{"type":"number"},"sell":{"type":"number"}},"required":["buy","sell"],"additionalProperties":false},"net_premium":{"type":"object","properties":{"calls":{"type":"number"},"puts":{"type":"number"}},"required":["calls","puts"],"additionalProperties":false},"top_tickers":{"type":"array","items":{"type":"object","properties":{"ticker":{"type":"string"},"premium":{"type":"number"}},"required":["ticker","premium"],"additionalProperties":false}}},"required":["window","counts","buy_sell","net_premium","top_tickers"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"description":"Error (RFC 9457 problem+json)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}},"get":{"operationId":"flow_summary_get","summary":"Flow summary","description":"Aggregate options-flow posture over a window: print counts by type, buy vs sell, net call/put premium and the top tickers by premium.","tags":["Data"],"security":[{"apiKey":[]},{"oauth2":["read"]},{}],"x-tier":"free","x-access":"read","parameters":[{"name":"window","in":"query","required":false,"schema":{"type":"string","enum":["1h","4h","24h"],"default":"24h"}},{"name":"tickers","in":"query","required":false,"description":"Ticker symbols","schema":{"type":"array","items":{"allOf":[{"type":"string"},{"type":"string","pattern":"^[A-Z]{1,6}$"}],"description":"Ticker symbol, e.g. SPY"},"minItems":1,"maxItems":50,"description":"Ticker symbols"},"style":"form","explode":false},{"name":"min_premium","in":"query","required":false,"description":"Minimum premium in USD","schema":{"type":"number","minimum":0,"description":"Minimum premium in USD"}}],"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"window":{"type":"string","enum":["1h","4h","24h"]},"counts":{"type":"object","properties":{"total":{"type":"number"},"block":{"type":"number"},"sweep":{"type":"number"},"complex":{"type":"number"},"strategy":{"type":"number"}},"required":["total","block","sweep","complex","strategy"],"additionalProperties":false},"buy_sell":{"type":"object","properties":{"buy":{"type":"number"},"sell":{"type":"number"}},"required":["buy","sell"],"additionalProperties":false},"net_premium":{"type":"object","properties":{"calls":{"type":"number"},"puts":{"type":"number"}},"required":["calls","puts"],"additionalProperties":false},"top_tickers":{"type":"array","items":{"type":"object","properties":{"ticker":{"type":"string"},"premium":{"type":"number"}},"required":["ticker","premium"],"additionalProperties":false}}},"required":["window","counts","buy_sell","net_premium","top_tickers"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"description":"Error (RFC 9457 problem+json)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/tools/flow.filings":{"post":{"operationId":"flow_filings","summary":"Congress and insider filings","description":"Recent stock transactions disclosed by members of Congress or by corporate insiders (SEC Form 4). Insider lookups require tickers.","tags":["Data"],"security":[{"apiKey":[]},{"oauth2":["read"]},{}],"x-tier":"free","x-access":"read","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"source":{"type":"string","enum":["congress","insider"]},"tickers":{"type":"array","items":{"allOf":[{"type":"string"},{"type":"string","pattern":"^[A-Z]{1,6}$"}],"description":"Ticker symbol, e.g. SPY"},"minItems":1,"maxItems":50,"description":"Ticker symbols"},"chamber":{"type":"string","enum":["senate","house"],"description":"Congress only"},"limit":{"type":"integer","minimum":1,"maximum":200,"default":50,"description":"Max rows (1–200)"}},"required":["source"],"additionalProperties":false},"examples":{"example1":{"summary":"Latest Senate disclosures","value":{"source":"congress","chamber":"senate","limit":25}},"example2":{"summary":"Form 4 activity for two tickers","value":{"source":"insider","tickers":["NVDA","AAPL"],"limit":50}}}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"filings":{"type":"array","items":{"type":"object","properties":{"source":{"type":"string","enum":["congress","insider"]},"date":{"type":"string"},"ticker":{"type":"string"},"name":{"type":"string","description":"Congress member or insider"},"role":{"type":"string","description":"Chamber or insider relationship title"},"type":{"type":"string"},"amount":{"type":"string","description":"Reported amount range (congress)"},"value":{"type":"number","description":"Transaction value in USD (insider)"},"url":{"type":"string"}},"required":["source","date","ticker","name","role","type"],"additionalProperties":false}}},"required":["filings"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"description":"Error (RFC 9457 problem+json)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}},"get":{"operationId":"flow_filings_get","summary":"Congress and insider filings","description":"Recent stock transactions disclosed by members of Congress or by corporate insiders (SEC Form 4). Insider lookups require tickers.","tags":["Data"],"security":[{"apiKey":[]},{"oauth2":["read"]},{}],"x-tier":"free","x-access":"read","parameters":[{"name":"source","in":"query","required":true,"schema":{"type":"string","enum":["congress","insider"]}},{"name":"tickers","in":"query","required":false,"description":"Ticker symbols","schema":{"type":"array","items":{"allOf":[{"type":"string"},{"type":"string","pattern":"^[A-Z]{1,6}$"}],"description":"Ticker symbol, e.g. SPY"},"minItems":1,"maxItems":50,"description":"Ticker symbols"},"style":"form","explode":false},{"name":"chamber","in":"query","required":false,"description":"Congress only","schema":{"type":"string","enum":["senate","house"],"description":"Congress only"}},{"name":"limit","in":"query","required":false,"description":"Max rows (1–200)","schema":{"type":"integer","minimum":1,"maximum":200,"default":50,"description":"Max rows (1–200)"}}],"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"filings":{"type":"array","items":{"type":"object","properties":{"source":{"type":"string","enum":["congress","insider"]},"date":{"type":"string"},"ticker":{"type":"string"},"name":{"type":"string","description":"Congress member or insider"},"role":{"type":"string","description":"Chamber or insider relationship title"},"type":{"type":"string"},"amount":{"type":"string","description":"Reported amount range (congress)"},"value":{"type":"number","description":"Transaction value in USD (insider)"},"url":{"type":"string"}},"required":["source","date","ticker","name","role","type"],"additionalProperties":false}}},"required":["filings"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"description":"Error (RFC 9457 problem+json)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/tools/screener.run":{"post":{"operationId":"screener_run","summary":"Run screener","description":"Market-wide leaderboards: most active tickers, most active option contracts, IV rank leaders, or largest expected moves. Paid callers get the live intraday snapshot; others get the latest end-of-day table.","tags":["Data"],"security":[{"apiKey":[]},{"oauth2":["read"]},{}],"x-tier":"free","x-access":"read","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"view":{"type":"string","enum":["most_active","options","iv","expected_moves"]},"limit":{"type":"integer","minimum":1,"maximum":500,"default":50,"description":"Max rows (1–500)"},"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Historical trade date; omitted = live (paid) or latest available"}},"required":["view"],"additionalProperties":false},"examples":{"example1":{"summary":"Top 25 tickers by options volume","value":{"view":"most_active","limit":25}},"example2":{"summary":"Highest IV rank","value":{"view":"iv","limit":50}},"example3":{"summary":"Expected moves on a past date","value":{"view":"expected_moves","date":"2026-08-28","limit":20}}}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"view":{"type":"string","enum":["most_active","options","iv","expected_moves"]},"as_of_date":{"type":"string"},"rows":{"type":"array","items":{"type":"object","additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"},{"type":"boolean"},{"enum":["null"],"nullable":true}]}}}},"required":["view","as_of_date","rows"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"description":"Error (RFC 9457 problem+json)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}},"get":{"operationId":"screener_run_get","summary":"Run screener","description":"Market-wide leaderboards: most active tickers, most active option contracts, IV rank leaders, or largest expected moves. Paid callers get the live intraday snapshot; others get the latest end-of-day table.","tags":["Data"],"security":[{"apiKey":[]},{"oauth2":["read"]},{}],"x-tier":"free","x-access":"read","parameters":[{"name":"view","in":"query","required":true,"schema":{"type":"string","enum":["most_active","options","iv","expected_moves"]}},{"name":"limit","in":"query","required":false,"description":"Max rows (1–500)","schema":{"type":"integer","minimum":1,"maximum":500,"default":50,"description":"Max rows (1–500)"}},{"name":"date","in":"query","required":false,"description":"Historical trade date; omitted = live (paid) or latest available","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Historical trade date; omitted = live (paid) or latest available"}}],"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"view":{"type":"string","enum":["most_active","options","iv","expected_moves"]},"as_of_date":{"type":"string"},"rows":{"type":"array","items":{"type":"object","additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"},{"type":"boolean"},{"enum":["null"],"nullable":true}]}}}},"required":["view","as_of_date","rows"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"description":"Error (RFC 9457 problem+json)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/tools/ticker.research":{"post":{"operationId":"ticker_research","summary":"Ticker research","description":"One-call research brief for a symbol: price and volume, IV rank and percentile, expected moves, gamma exposure, max pain and the latest unusual flow. Unavailable sections are null.","tags":["Data"],"security":[{"apiKey":[]},{"oauth2":["read"]},{}],"x-tier":"free","x-access":"read","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"symbol":{"allOf":[{"type":"string"},{"type":"string","pattern":"^[A-Z]{1,6}$"}],"description":"Ticker symbol, e.g. SPY"}},"required":["symbol"],"additionalProperties":false},"examples":{"example1":{"summary":"Full brief for NVDA","value":{"symbol":"NVDA"}}}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"symbol":{"allOf":[{"type":"string"},{"type":"string","pattern":"^[A-Z]{1,6}$"}],"description":"Ticker symbol, e.g. SPY"},"price":{"type":"number","nullable":true},"as_of_date":{"type":"string","nullable":true},"volume":{"type":"object","properties":{"total":{"type":"number","nullable":true},"calls":{"type":"number","nullable":true},"puts":{"type":"number","nullable":true},"put_call_ratio":{"type":"number","nullable":true},"avg_daily_volume":{"type":"number","nullable":true}},"required":["total","calls","puts","put_call_ratio","avg_daily_volume"],"additionalProperties":false,"nullable":true},"iv":{"type":"object","properties":{"current_iv":{"type":"number","nullable":true},"iv_rank":{"type":"number","nullable":true},"iv_percentile":{"type":"number","nullable":true},"iv_min":{"type":"number","nullable":true},"iv_max":{"type":"number","nullable":true},"iv_mean":{"type":"number","nullable":true}},"required":["current_iv","iv_rank","iv_percentile","iv_min","iv_max","iv_mean"],"additionalProperties":false,"nullable":true},"expected_moves":{"type":"object","properties":{"1d":{"type":"object","properties":{"move":{"type":"number","nullable":true},"move_pct":{"type":"number","nullable":true},"range_low":{"type":"number","nullable":true},"range_high":{"type":"number","nullable":true}},"required":["move","move_pct","range_low","range_high"],"additionalProperties":false},"1w":{"type":"object","properties":{"move":{"type":"number","nullable":true},"move_pct":{"type":"number","nullable":true},"range_low":{"type":"number","nullable":true},"range_high":{"type":"number","nullable":true}},"required":["move","move_pct","range_low","range_high"],"additionalProperties":false},"2w":{"type":"object","properties":{"move":{"type":"number","nullable":true},"move_pct":{"type":"number","nullable":true},"range_low":{"type":"number","nullable":true},"range_high":{"type":"number","nullable":true}},"required":["move","move_pct","range_low","range_high"],"additionalProperties":false},"1m":{"type":"object","properties":{"move":{"type":"number","nullable":true},"move_pct":{"type":"number","nullable":true},"range_low":{"type":"number","nullable":true},"range_high":{"type":"number","nullable":true}},"required":["move","move_pct","range_low","range_high"],"additionalProperties":false}},"required":["1d","1w","2w","1m"],"additionalProperties":false,"nullable":true},"gex":{"type":"object","properties":{"total_net_gex":{"type":"number"},"flip_strike":{"type":"number","nullable":true},"interpretation":{"type":"string","enum":["positive","negative"]},"as_of_date":{"type":"string"}},"required":["total_net_gex","flip_strike","interpretation","as_of_date"],"additionalProperties":false,"nullable":true},"max_pain":{"type":"object","properties":{"nearest_expiration":{"type":"string"},"strike":{"type":"number"},"as_of_date":{"type":"string"}},"required":["nearest_expiration","strike","as_of_date"],"additionalProperties":false,"nullable":true},"recent_flow":{"type":"array","items":{"type":"object","properties":{"ts":{"type":"string"},"ticker":{"type":"string"},"occ":{"type":"string"},"expiration":{"type":"string"},"strike":{"type":"number"},"right":{"type":"string","enum":["C","P"],"description":"C = call, P = put"},"type":{"type":"string","enum":["block","sweep","complex","strategy"]},"side":{"type":"string","enum":["BUY","SELL"]},"size":{"type":"number"},"price":{"type":"number"},"premium":{"type":"number"},"sentiment":{"type":"string"},"dte":{"type":"number"},"volume_ratio":{"type":"number"},"unusual":{"type":"boolean"}},"required":["ts","ticker","occ","expiration","strike","right","type","side","size","price","premium","dte"],"additionalProperties":false}}},"required":["symbol","price","as_of_date","volume","iv","expected_moves","gex","max_pain","recent_flow"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"description":"Error (RFC 9457 problem+json)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}},"get":{"operationId":"ticker_research_get","summary":"Ticker research","description":"One-call research brief for a symbol: price and volume, IV rank and percentile, expected moves, gamma exposure, max pain and the latest unusual flow. Unavailable sections are null.","tags":["Data"],"security":[{"apiKey":[]},{"oauth2":["read"]},{}],"x-tier":"free","x-access":"read","parameters":[{"name":"symbol","in":"query","required":true,"description":"Ticker symbol, e.g. SPY","schema":{"allOf":[{"type":"string"},{"type":"string","pattern":"^[A-Z]{1,6}$"}],"description":"Ticker symbol, e.g. SPY"}}],"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"symbol":{"allOf":[{"type":"string"},{"type":"string","pattern":"^[A-Z]{1,6}$"}],"description":"Ticker symbol, e.g. SPY"},"price":{"type":"number","nullable":true},"as_of_date":{"type":"string","nullable":true},"volume":{"type":"object","properties":{"total":{"type":"number","nullable":true},"calls":{"type":"number","nullable":true},"puts":{"type":"number","nullable":true},"put_call_ratio":{"type":"number","nullable":true},"avg_daily_volume":{"type":"number","nullable":true}},"required":["total","calls","puts","put_call_ratio","avg_daily_volume"],"additionalProperties":false,"nullable":true},"iv":{"type":"object","properties":{"current_iv":{"type":"number","nullable":true},"iv_rank":{"type":"number","nullable":true},"iv_percentile":{"type":"number","nullable":true},"iv_min":{"type":"number","nullable":true},"iv_max":{"type":"number","nullable":true},"iv_mean":{"type":"number","nullable":true}},"required":["current_iv","iv_rank","iv_percentile","iv_min","iv_max","iv_mean"],"additionalProperties":false,"nullable":true},"expected_moves":{"type":"object","properties":{"1d":{"type":"object","properties":{"move":{"type":"number","nullable":true},"move_pct":{"type":"number","nullable":true},"range_low":{"type":"number","nullable":true},"range_high":{"type":"number","nullable":true}},"required":["move","move_pct","range_low","range_high"],"additionalProperties":false},"1w":{"type":"object","properties":{"move":{"type":"number","nullable":true},"move_pct":{"type":"number","nullable":true},"range_low":{"type":"number","nullable":true},"range_high":{"type":"number","nullable":true}},"required":["move","move_pct","range_low","range_high"],"additionalProperties":false},"2w":{"type":"object","properties":{"move":{"type":"number","nullable":true},"move_pct":{"type":"number","nullable":true},"range_low":{"type":"number","nullable":true},"range_high":{"type":"number","nullable":true}},"required":["move","move_pct","range_low","range_high"],"additionalProperties":false},"1m":{"type":"object","properties":{"move":{"type":"number","nullable":true},"move_pct":{"type":"number","nullable":true},"range_low":{"type":"number","nullable":true},"range_high":{"type":"number","nullable":true}},"required":["move","move_pct","range_low","range_high"],"additionalProperties":false}},"required":["1d","1w","2w","1m"],"additionalProperties":false,"nullable":true},"gex":{"type":"object","properties":{"total_net_gex":{"type":"number"},"flip_strike":{"type":"number","nullable":true},"interpretation":{"type":"string","enum":["positive","negative"]},"as_of_date":{"type":"string"}},"required":["total_net_gex","flip_strike","interpretation","as_of_date"],"additionalProperties":false,"nullable":true},"max_pain":{"type":"object","properties":{"nearest_expiration":{"type":"string"},"strike":{"type":"number"},"as_of_date":{"type":"string"}},"required":["nearest_expiration","strike","as_of_date"],"additionalProperties":false,"nullable":true},"recent_flow":{"type":"array","items":{"type":"object","properties":{"ts":{"type":"string"},"ticker":{"type":"string"},"occ":{"type":"string"},"expiration":{"type":"string"},"strike":{"type":"number"},"right":{"type":"string","enum":["C","P"],"description":"C = call, P = put"},"type":{"type":"string","enum":["block","sweep","complex","strategy"]},"side":{"type":"string","enum":["BUY","SELL"]},"size":{"type":"number"},"price":{"type":"number"},"premium":{"type":"number"},"sentiment":{"type":"string"},"dte":{"type":"number"},"volume_ratio":{"type":"number"},"unusual":{"type":"boolean"}},"required":["ts","ticker","occ","expiration","strike","right","type","side","size","price","premium","dte"],"additionalProperties":false}}},"required":["symbol","price","as_of_date","volume","iv","expected_moves","gex","max_pain","recent_flow"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"description":"Error (RFC 9457 problem+json)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/tools/chain.get":{"post":{"operationId":"chain_get","summary":"Option chain","description":"Option chain for one expiration with bid/ask, volume, open interest, IV and greeks per contract. Defaults to the nearest expiration; free callers are 15-minute delayed and capped at 50 contracts.","tags":["Data"],"security":[{"apiKey":[]},{"oauth2":["read"]},{}],"x-tier":"free","x-access":"read","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"symbol":{"allOf":[{"type":"string"},{"type":"string","pattern":"^[A-Z]{1,6}$"}],"description":"Ticker symbol, e.g. SPY"},"expiration":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Defaults to the nearest listed expiration"},"side":{"type":"string","enum":["call","put","both"],"default":"both"},"strikes_around":{"type":"integer","minimum":1,"maximum":50,"description":"Keep only N strikes each side of spot"},"min_open_interest":{"type":"integer","minimum":0,"default":0},"min_volume":{"type":"integer","minimum":0,"default":0}},"required":["symbol"],"additionalProperties":false},"examples":{"example1":{"summary":"Nearest expiration, 10 strikes around spot, both sides","value":{"symbol":"SPY","strikes_around":10}},"example2":{"summary":"Liquid December calls","value":{"symbol":"AAPL","expiration":"2026-12-18","side":"call","min_open_interest":100}}}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"symbol":{"allOf":[{"type":"string"},{"type":"string","pattern":"^[A-Z]{1,6}$"}],"description":"Ticker symbol, e.g. SPY"},"expiration":{"type":"string"},"underlying_price":{"type":"number","nullable":true},"expirations":{"type":"array","items":{"type":"string"}},"contracts":{"type":"array","items":{"type":"object","properties":{"occ":{"type":"string"},"expiration":{"type":"string"},"strike":{"type":"number"},"right":{"type":"string","enum":["C","P"],"description":"C = call, P = put"},"bid":{"type":"number"},"ask":{"type":"number"},"mid":{"type":"number"},"volume":{"type":"number"},"open_interest":{"type":"number"},"iv":{"type":"number"},"delta":{"type":"number"},"gamma":{"type":"number"},"theta":{"type":"number"},"vega":{"type":"number"}},"required":["occ","expiration","strike","right","bid","ask","mid","volume","open_interest","iv","delta","gamma","theta","vega"],"additionalProperties":false}}},"required":["symbol","expiration","underlying_price","expirations","contracts"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"description":"Error (RFC 9457 problem+json)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}},"get":{"operationId":"chain_get_get","summary":"Option chain","description":"Option chain for one expiration with bid/ask, volume, open interest, IV and greeks per contract. Defaults to the nearest expiration; free callers are 15-minute delayed and capped at 50 contracts.","tags":["Data"],"security":[{"apiKey":[]},{"oauth2":["read"]},{}],"x-tier":"free","x-access":"read","parameters":[{"name":"symbol","in":"query","required":true,"description":"Ticker symbol, e.g. SPY","schema":{"allOf":[{"type":"string"},{"type":"string","pattern":"^[A-Z]{1,6}$"}],"description":"Ticker symbol, e.g. SPY"}},{"name":"expiration","in":"query","required":false,"description":"Defaults to the nearest listed expiration","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Defaults to the nearest listed expiration"}},{"name":"side","in":"query","required":false,"schema":{"type":"string","enum":["call","put","both"],"default":"both"}},{"name":"strikes_around","in":"query","required":false,"description":"Keep only N strikes each side of spot","schema":{"type":"integer","minimum":1,"maximum":50,"description":"Keep only N strikes each side of spot"}},{"name":"min_open_interest","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0}},{"name":"min_volume","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0}}],"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"symbol":{"allOf":[{"type":"string"},{"type":"string","pattern":"^[A-Z]{1,6}$"}],"description":"Ticker symbol, e.g. SPY"},"expiration":{"type":"string"},"underlying_price":{"type":"number","nullable":true},"expirations":{"type":"array","items":{"type":"string"}},"contracts":{"type":"array","items":{"type":"object","properties":{"occ":{"type":"string"},"expiration":{"type":"string"},"strike":{"type":"number"},"right":{"type":"string","enum":["C","P"],"description":"C = call, P = put"},"bid":{"type":"number"},"ask":{"type":"number"},"mid":{"type":"number"},"volume":{"type":"number"},"open_interest":{"type":"number"},"iv":{"type":"number"},"delta":{"type":"number"},"gamma":{"type":"number"},"theta":{"type":"number"},"vega":{"type":"number"}},"required":["occ","expiration","strike","right","bid","ask","mid","volume","open_interest","iv","delta","gamma","theta","vega"],"additionalProperties":false}}},"required":["symbol","expiration","underlying_price","expirations","contracts"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"description":"Error (RFC 9457 problem+json)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/tools/quote.get":{"post":{"operationId":"quote_get","summary":"Underlying quotes","description":"Last price, change and previous close for up to 25 symbols. Free callers are 15-minute delayed.","tags":["Data"],"security":[{"apiKey":[]},{"oauth2":["read"]},{}],"x-tier":"free","x-access":"read","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"symbols":{"type":"array","items":{"allOf":[{"type":"string"},{"type":"string","pattern":"^[A-Z]{1,6}$"}],"description":"Ticker symbol, e.g. SPY"},"minItems":1,"maxItems":25,"description":"Ticker symbols (max 25)"}},"required":["symbols"],"additionalProperties":false},"examples":{"example1":{"summary":"Three quotes in one call","value":{"symbols":["SPY","QQQ","NVDA"]}}}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"quotes":{"type":"array","items":{"type":"object","properties":{"symbol":{"allOf":[{"type":"string"},{"type":"string","pattern":"^[A-Z]{1,6}$"}],"description":"Ticker symbol, e.g. SPY"},"price":{"type":"number"},"change":{"type":"number"},"change_pct":{"type":"number"},"prev_close":{"type":"number"},"as_of":{"type":"string"}},"required":["symbol","price","change","change_pct","prev_close","as_of"],"additionalProperties":false}},"errors":{"type":"array","items":{"type":"object","properties":{"symbol":{"allOf":[{"type":"string"},{"type":"string","pattern":"^[A-Z]{1,6}$"}],"description":"Ticker symbol, e.g. SPY"},"reason":{"type":"string"}},"required":["symbol","reason"],"additionalProperties":false}}},"required":["quotes"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"description":"Error (RFC 9457 problem+json)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}},"get":{"operationId":"quote_get_get","summary":"Underlying quotes","description":"Last price, change and previous close for up to 25 symbols. Free callers are 15-minute delayed.","tags":["Data"],"security":[{"apiKey":[]},{"oauth2":["read"]},{}],"x-tier":"free","x-access":"read","parameters":[{"name":"symbols","in":"query","required":true,"description":"Ticker symbols (max 25)","schema":{"type":"array","items":{"allOf":[{"type":"string"},{"type":"string","pattern":"^[A-Z]{1,6}$"}],"description":"Ticker symbol, e.g. SPY"},"minItems":1,"maxItems":25,"description":"Ticker symbols (max 25)"},"style":"form","explode":false}],"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"quotes":{"type":"array","items":{"type":"object","properties":{"symbol":{"allOf":[{"type":"string"},{"type":"string","pattern":"^[A-Z]{1,6}$"}],"description":"Ticker symbol, e.g. SPY"},"price":{"type":"number"},"change":{"type":"number"},"change_pct":{"type":"number"},"prev_close":{"type":"number"},"as_of":{"type":"string"}},"required":["symbol","price","change","change_pct","prev_close","as_of"],"additionalProperties":false}},"errors":{"type":"array","items":{"type":"object","properties":{"symbol":{"allOf":[{"type":"string"},{"type":"string","pattern":"^[A-Z]{1,6}$"}],"description":"Ticker symbol, e.g. SPY"},"reason":{"type":"string"}},"required":["symbol","reason"],"additionalProperties":false}}},"required":["quotes"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"description":"Error (RFC 9457 problem+json)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/tools/iv.context":{"post":{"operationId":"iv_context","summary":"Implied volatility context","description":"Current 30-day IV with rank, percentile and 52-week range, the last year of daily IV history, monthly seasonality, and realised volatility. IVs are decimals (0.25 = 25%); rank and percentile are 0–100.","tags":["Model"],"security":[{"apiKey":[]},{"oauth2":["read"]},{}],"x-tier":"free","x-access":"read","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"symbol":{"allOf":[{"type":"string"},{"type":"string","pattern":"^[A-Z]{1,6}$"}],"description":"Ticker symbol, e.g. SPY"}},"required":["symbol"],"additionalProperties":false},"examples":{"example1":{"value":{"symbol":"NVDA"}},"example2":{"value":{"symbol":"SPY"}}}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"symbol":{"type":"string"},"as_of_date":{"type":"string"},"underlying_price":{"type":"number","nullable":true},"current_iv":{"type":"number","nullable":true},"iv_rank":{"type":"number","nullable":true},"iv_percentile":{"type":"number","nullable":true},"iv_52w":{"type":"object","properties":{"min":{"type":"number","nullable":true},"max":{"type":"number","nullable":true},"mean":{"type":"number","nullable":true}},"required":["min","max","mean"],"additionalProperties":false},"hv20":{"type":"number","nullable":true},"hv30":{"type":"number","nullable":true},"hv60":{"type":"number","nullable":true},"series":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string"},"iv30d":{"type":"number"},"iv_rank":{"type":"number"},"iv_percentile":{"type":"number"}},"required":["date","iv30d","iv_rank","iv_percentile"],"additionalProperties":false},"description":"Daily IV history, oldest first, capped at 252 rows"},"seasonality":{"type":"array","items":{"type":"object","properties":{"month":{"type":"integer","minimum":1,"maximum":12},"median_iv30d":{"type":"number"},"z":{"type":"number"},"n":{"type":"integer"}},"required":["month","median_iv30d","z","n"],"additionalProperties":false}},"unavailable":{"type":"array","items":{"type":"string","enum":["series","seasonality","hv"]},"description":"Sub-sources that failed for this call"}},"required":["symbol","as_of_date","underlying_price","current_iv","iv_rank","iv_percentile","iv_52w","hv20","hv30","hv60","series","seasonality","unavailable"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"description":"Error (RFC 9457 problem+json)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}},"get":{"operationId":"iv_context_get","summary":"Implied volatility context","description":"Current 30-day IV with rank, percentile and 52-week range, the last year of daily IV history, monthly seasonality, and realised volatility. IVs are decimals (0.25 = 25%); rank and percentile are 0–100.","tags":["Model"],"security":[{"apiKey":[]},{"oauth2":["read"]},{}],"x-tier":"free","x-access":"read","parameters":[{"name":"symbol","in":"query","required":true,"description":"Ticker symbol, e.g. SPY","schema":{"allOf":[{"type":"string"},{"type":"string","pattern":"^[A-Z]{1,6}$"}],"description":"Ticker symbol, e.g. SPY"}}],"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"symbol":{"type":"string"},"as_of_date":{"type":"string"},"underlying_price":{"type":"number","nullable":true},"current_iv":{"type":"number","nullable":true},"iv_rank":{"type":"number","nullable":true},"iv_percentile":{"type":"number","nullable":true},"iv_52w":{"type":"object","properties":{"min":{"type":"number","nullable":true},"max":{"type":"number","nullable":true},"mean":{"type":"number","nullable":true}},"required":["min","max","mean"],"additionalProperties":false},"hv20":{"type":"number","nullable":true},"hv30":{"type":"number","nullable":true},"hv60":{"type":"number","nullable":true},"series":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string"},"iv30d":{"type":"number"},"iv_rank":{"type":"number"},"iv_percentile":{"type":"number"}},"required":["date","iv30d","iv_rank","iv_percentile"],"additionalProperties":false},"description":"Daily IV history, oldest first, capped at 252 rows"},"seasonality":{"type":"array","items":{"type":"object","properties":{"month":{"type":"integer","minimum":1,"maximum":12},"median_iv30d":{"type":"number"},"z":{"type":"number"},"n":{"type":"integer"}},"required":["month","median_iv30d","z","n"],"additionalProperties":false}},"unavailable":{"type":"array","items":{"type":"string","enum":["series","seasonality","hv"]},"description":"Sub-sources that failed for this call"}},"required":["symbol","as_of_date","underlying_price","current_iv","iv_rank","iv_percentile","iv_52w","hv20","hv30","hv60","series","seasonality","unavailable"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"description":"Error (RFC 9457 problem+json)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/tools/expected.move":{"post":{"operationId":"expected_move","summary":"Expected move bands","description":"One- and two-sigma expected-move bands for a symbol over several horizons, from spot × IV × √(days/365) using the current 30-day IV. Pass `date` to compute from a past trade date.","tags":["Model"],"security":[{"apiKey":[]},{"oauth2":["read"]},{}],"x-tier":"free","x-access":"read","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"symbol":{"allOf":[{"type":"string"},{"type":"string","pattern":"^[A-Z]{1,6}$"}],"description":"Ticker symbol, e.g. SPY"},"horizons":{"type":"array","items":{"type":"integer","minimum":1,"maximum":365},"minItems":1,"maxItems":12,"default":[1,7,30,45,60,90],"description":"Horizons in calendar days"},"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Trade date to compute from; defaults to the latest"}},"required":["symbol"],"additionalProperties":false},"examples":{"example1":{"value":{"symbol":"AAPL"}},"example2":{"value":{"symbol":"SPY","horizons":[1,5,21],"date":"2026-08-14"}}}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"symbol":{"type":"string"},"as_of":{"type":"string"},"price":{"type":"number"},"iv_used":{"type":"number","description":"Decimal IV, e.g. 0.25"},"bands":{"type":"array","items":{"type":"object","properties":{"horizon_days":{"type":"integer"},"one_sigma_abs":{"type":"number"},"one_sigma_pct":{"type":"number","description":"Decimal, e.g. 0.031"},"two_sigma_abs":{"type":"number"},"upper":{"type":"number"},"lower":{"type":"number"}},"required":["horizon_days","one_sigma_abs","one_sigma_pct","two_sigma_abs","upper","lower"],"additionalProperties":false}}},"required":["symbol","as_of","price","iv_used","bands"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"description":"Error (RFC 9457 problem+json)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}},"get":{"operationId":"expected_move_get","summary":"Expected move bands","description":"One- and two-sigma expected-move bands for a symbol over several horizons, from spot × IV × √(days/365) using the current 30-day IV. Pass `date` to compute from a past trade date.","tags":["Model"],"security":[{"apiKey":[]},{"oauth2":["read"]},{}],"x-tier":"free","x-access":"read","parameters":[{"name":"symbol","in":"query","required":true,"description":"Ticker symbol, e.g. SPY","schema":{"allOf":[{"type":"string"},{"type":"string","pattern":"^[A-Z]{1,6}$"}],"description":"Ticker symbol, e.g. SPY"}},{"name":"horizons","in":"query","required":false,"description":"Horizons in calendar days","schema":{"type":"array","items":{"type":"integer","minimum":1,"maximum":365},"minItems":1,"maxItems":12,"default":[1,7,30,45,60,90],"description":"Horizons in calendar days"},"style":"form","explode":false},{"name":"date","in":"query","required":false,"description":"Trade date to compute from; defaults to the latest","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Trade date to compute from; defaults to the latest"}}],"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"symbol":{"type":"string"},"as_of":{"type":"string"},"price":{"type":"number"},"iv_used":{"type":"number","description":"Decimal IV, e.g. 0.25"},"bands":{"type":"array","items":{"type":"object","properties":{"horizon_days":{"type":"integer"},"one_sigma_abs":{"type":"number"},"one_sigma_pct":{"type":"number","description":"Decimal, e.g. 0.031"},"two_sigma_abs":{"type":"number"},"upper":{"type":"number"},"lower":{"type":"number"}},"required":["horizon_days","one_sigma_abs","one_sigma_pct","two_sigma_abs","upper","lower"],"additionalProperties":false}}},"required":["symbol","as_of","price","iv_used","bands"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"description":"Error (RFC 9457 problem+json)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/tools/gex.levels":{"post":{"operationId":"gex_levels","summary":"Gamma exposure levels","description":"Dealer gamma exposure (GEX) by expiration and by strike for one symbol, with the net total, sign interpretation and flip strike. Strike levels are for the requested expiration or the nearest one.","tags":["Model"],"security":[{"apiKey":[]},{"oauth2":["read"]}],"x-tier":"paid","x-access":"read","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"symbol":{"allOf":[{"type":"string"},{"type":"string","pattern":"^[A-Z]{1,6}$"}],"description":"Ticker symbol, e.g. SPY"},"expiration":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Expiration for the strike breakdown; defaults to the nearest"}},"required":["symbol"],"additionalProperties":false},"examples":{"example1":{"summary":"Nearest expiration strike map","value":{"symbol":"SPY"}},"example2":{"value":{"symbol":"QQQ","expiration":"2026-12-18"}}}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"symbol":{"type":"string"},"underlying_price":{"type":"number"},"as_of_date":{"type":"string"},"total_net_gex":{"type":"number"},"interpretation":{"type":"string","enum":["positive","negative"]},"flip_strike":{"type":"number","nullable":true},"expirations":{"type":"array","items":{"type":"object","properties":{"expiration":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Calendar date, YYYY-MM-DD"},"dte":{"type":"integer"},"net_gex":{"type":"number"},"call_gex":{"type":"number"},"put_gex":{"type":"number"},"call_oi":{"type":"number"},"put_oi":{"type":"number"}},"required":["expiration","dte","net_gex","call_gex","put_gex","call_oi","put_oi"],"additionalProperties":false}},"levels":{"type":"array","items":{"type":"object","properties":{"strike":{"type":"number"},"net_gex":{"type":"number"},"call_gex":{"type":"number"},"put_gex":{"type":"number"},"call_oi":{"type":"number"},"put_oi":{"type":"number"}},"required":["strike","net_gex","call_gex","put_gex","call_oi","put_oi"],"additionalProperties":false}}},"required":["symbol","underlying_price","as_of_date","total_net_gex","interpretation","flip_strike","expirations","levels"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"description":"Error (RFC 9457 problem+json)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}},"get":{"operationId":"gex_levels_get","summary":"Gamma exposure levels","description":"Dealer gamma exposure (GEX) by expiration and by strike for one symbol, with the net total, sign interpretation and flip strike. Strike levels are for the requested expiration or the nearest one.","tags":["Model"],"security":[{"apiKey":[]},{"oauth2":["read"]}],"x-tier":"paid","x-access":"read","parameters":[{"name":"symbol","in":"query","required":true,"description":"Ticker symbol, e.g. SPY","schema":{"allOf":[{"type":"string"},{"type":"string","pattern":"^[A-Z]{1,6}$"}],"description":"Ticker symbol, e.g. SPY"}},{"name":"expiration","in":"query","required":false,"description":"Expiration for the strike breakdown; defaults to the nearest","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Expiration for the strike breakdown; defaults to the nearest"}}],"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"symbol":{"type":"string"},"underlying_price":{"type":"number"},"as_of_date":{"type":"string"},"total_net_gex":{"type":"number"},"interpretation":{"type":"string","enum":["positive","negative"]},"flip_strike":{"type":"number","nullable":true},"expirations":{"type":"array","items":{"type":"object","properties":{"expiration":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Calendar date, YYYY-MM-DD"},"dte":{"type":"integer"},"net_gex":{"type":"number"},"call_gex":{"type":"number"},"put_gex":{"type":"number"},"call_oi":{"type":"number"},"put_oi":{"type":"number"}},"required":["expiration","dte","net_gex","call_gex","put_gex","call_oi","put_oi"],"additionalProperties":false}},"levels":{"type":"array","items":{"type":"object","properties":{"strike":{"type":"number"},"net_gex":{"type":"number"},"call_gex":{"type":"number"},"put_gex":{"type":"number"},"call_oi":{"type":"number"},"put_oi":{"type":"number"}},"required":["strike","net_gex","call_gex","put_gex","call_oi","put_oi"],"additionalProperties":false}}},"required":["symbol","underlying_price","as_of_date","total_net_gex","interpretation","flip_strike","expirations","levels"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"description":"Error (RFC 9457 problem+json)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/tools/maxpain.levels":{"post":{"operationId":"maxpain_levels","summary":"Max pain by expiration","description":"Max pain strike for each listed expiration of one symbol, with call/put open interest totals. `max_pain` is the strike for the requested expiration or the nearest one.","tags":["Model"],"security":[{"apiKey":[]},{"oauth2":["read"]},{}],"x-tier":"free","x-access":"read","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"symbol":{"allOf":[{"type":"string"},{"type":"string","pattern":"^[A-Z]{1,6}$"}],"description":"Ticker symbol, e.g. SPY"},"expiration":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Expiration for `max_pain`; defaults to the nearest"}},"required":["symbol"],"additionalProperties":false},"examples":{"example1":{"value":{"symbol":"TSLA"}},"example2":{"value":{"symbol":"SPY","expiration":"2026-09-18"}}}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"symbol":{"type":"string"},"underlying_price":{"type":"number"},"as_of_date":{"type":"string"},"max_pain":{"type":"number"},"by_expiration":{"type":"array","items":{"type":"object","properties":{"expiration":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Calendar date, YYYY-MM-DD"},"dte":{"type":"integer"},"max_pain_strike":{"type":"number"},"call_oi":{"type":"number"},"put_oi":{"type":"number"},"total_oi":{"type":"number"}},"required":["expiration","dte","max_pain_strike","call_oi","put_oi","total_oi"],"additionalProperties":false}}},"required":["symbol","underlying_price","as_of_date","max_pain","by_expiration"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"description":"Error (RFC 9457 problem+json)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}},"get":{"operationId":"maxpain_levels_get","summary":"Max pain by expiration","description":"Max pain strike for each listed expiration of one symbol, with call/put open interest totals. `max_pain` is the strike for the requested expiration or the nearest one.","tags":["Model"],"security":[{"apiKey":[]},{"oauth2":["read"]},{}],"x-tier":"free","x-access":"read","parameters":[{"name":"symbol","in":"query","required":true,"description":"Ticker symbol, e.g. SPY","schema":{"allOf":[{"type":"string"},{"type":"string","pattern":"^[A-Z]{1,6}$"}],"description":"Ticker symbol, e.g. SPY"}},{"name":"expiration","in":"query","required":false,"description":"Expiration for `max_pain`; defaults to the nearest","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Expiration for `max_pain`; defaults to the nearest"}}],"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"symbol":{"type":"string"},"underlying_price":{"type":"number"},"as_of_date":{"type":"string"},"max_pain":{"type":"number"},"by_expiration":{"type":"array","items":{"type":"object","properties":{"expiration":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Calendar date, YYYY-MM-DD"},"dte":{"type":"integer"},"max_pain_strike":{"type":"number"},"call_oi":{"type":"number"},"put_oi":{"type":"number"},"total_oi":{"type":"number"}},"required":["expiration","dte","max_pain_strike","call_oi","put_oi","total_oi"],"additionalProperties":false}}},"required":["symbol","underlying_price","as_of_date","max_pain","by_expiration"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"description":"Error (RFC 9457 problem+json)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/tools/pnl.model":{"post":{"operationId":"pnl_model","summary":"Model position P&L","description":"Black-Scholes P&L for a 1–8 leg option position: P&L grid now and at expiration, per-leg and net Greeks, break-evens, max profit/loss and probability of profit. Missing prices, IVs and spot are marked from the live chain.","tags":["Model"],"security":[{"apiKey":[]},{"oauth2":["read"]},{}],"x-tier":"free","x-access":"read","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"legs":{"type":"array","items":{"type":"object","properties":{"occ":{"allOf":[{"type":"string"},{"type":"string","pattern":"^[A-Z]{1,6}\\d{6}[CP]\\d{1,8}(\\.\\d+)?$"}],"description":"OCC option symbol, e.g. SPY260918C00620000"},"symbol":{"allOf":[{"type":"string"},{"type":"string","pattern":"^[A-Z]{1,6}$"}],"description":"Ticker symbol, e.g. SPY"},"expiration":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Calendar date, YYYY-MM-DD"},"strike":{"type":"number","exclusiveMinimum":true,"minimum":0},"right":{"type":"string","enum":["C","P"],"description":"C = call, P = put"},"qty":{"type":"integer","description":"Positive = long, negative = short"},"price":{"type":"number","minimum":0,"description":"Entry price per contract; omitted = use mark"}},"required":["qty"],"additionalProperties":false,"description":"One option leg"},"minItems":1,"maxItems":8},"underlying_price":{"type":"number","exclusiveMinimum":true,"minimum":0,"description":"Spot; defaults to the live price"},"iv":{"type":"number","minimum":0.01,"maximum":5,"description":"Decimal IV applied to every leg; defaults to each leg’s chain IV"},"rate":{"type":"number","minimum":0,"maximum":1,"default":0.045,"description":"Risk-free rate, decimal"},"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Valuation date; defaults to today"},"price_range_pct":{"type":"number","minimum":0.01,"maximum":1,"default":0.2,"description":"Grid half-width as a fraction of spot"},"points":{"type":"integer","minimum":1,"maximum":201,"default":41,"description":"Grid price count"}},"required":["legs"],"additionalProperties":false},"examples":{"example1":{"summary":"Call debit spread, marked from the live chain","value":{"legs":[{"occ":"SPY260918C00620000","qty":1},{"occ":"SPY260918C00640000","qty":-1}]}},"example2":{"summary":"Short put with explicit inputs; no market data needed","value":{"legs":[{"symbol":"AAPL","expiration":"2026-12-18","strike":250,"right":"P","qty":-1,"price":12.4}],"underlying_price":245,"iv":0.32}}}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"symbol":{"type":"string"},"as_of":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Calendar date, YYYY-MM-DD"},"underlying_price":{"type":"number"},"legs":{"type":"array","items":{"type":"object","properties":{"occ":{"type":"string"},"expiration":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Calendar date, YYYY-MM-DD"},"strike":{"type":"number"},"right":{"type":"string","enum":["C","P"]},"qty":{"type":"integer"},"price":{"type":"number","description":"Entry price per share used for P&L"},"iv":{"type":"number","description":"Decimal IV used to value the leg"},"delta":{"type":"number","description":"Per share"},"gamma":{"type":"number"},"theta":{"type":"number","description":"Per share, per calendar day"},"vega":{"type":"number","description":"Per share, per 1 vol point"}},"required":["occ","expiration","strike","right","qty","price","iv","delta","gamma","theta","vega"],"additionalProperties":false}},"net_debit":{"type":"number","description":"Dollars; negative = net credit"},"greeks":{"type":"object","properties":{"delta":{"type":"number"},"gamma":{"type":"number"},"theta":{"type":"number"},"vega":{"type":"number"}},"required":["delta","gamma","theta","vega"],"additionalProperties":false,"description":"Position-level: Σ qty × 100 × Greek"},"breakevens":{"type":"array","items":{"type":"number"}},"max_profit":{"type":"number","nullable":true,"description":"null when unbounded"},"max_loss":{"type":"number","nullable":true,"description":"null when unbounded; negative number otherwise"},"pop":{"type":"number","nullable":true,"description":"Probability the position is profitable at the nearest expiration, 0–1"},"grid":{"type":"array","items":{"type":"object","properties":{"price":{"type":"number"},"pnl_now":{"type":"number"},"pnl_expiry":{"type":"number"}},"required":["price","pnl_now","pnl_expiry"],"additionalProperties":false}},"setup_url":{"type":"string"}},"required":["symbol","as_of","underlying_price","legs","net_debit","greeks","breakevens","max_profit","max_loss","pop","grid","setup_url"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"description":"Error (RFC 9457 problem+json)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}},"get":{"operationId":"pnl_model_get","summary":"Model position P&L","description":"Black-Scholes P&L for a 1–8 leg option position: P&L grid now and at expiration, per-leg and net Greeks, break-evens, max profit/loss and probability of profit. Missing prices, IVs and spot are marked from the live chain.","tags":["Model"],"security":[{"apiKey":[]},{"oauth2":["read"]},{}],"x-tier":"free","x-access":"read","parameters":[{"name":"legs","in":"query","required":true,"schema":{"type":"array","items":{"type":"object","properties":{"occ":{"allOf":[{"type":"string"},{"type":"string","pattern":"^[A-Z]{1,6}\\d{6}[CP]\\d{1,8}(\\.\\d+)?$"}],"description":"OCC option symbol, e.g. SPY260918C00620000"},"symbol":{"allOf":[{"type":"string"},{"type":"string","pattern":"^[A-Z]{1,6}$"}],"description":"Ticker symbol, e.g. SPY"},"expiration":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Calendar date, YYYY-MM-DD"},"strike":{"type":"number","exclusiveMinimum":true,"minimum":0},"right":{"type":"string","enum":["C","P"],"description":"C = call, P = put"},"qty":{"type":"integer","description":"Positive = long, negative = short"},"price":{"type":"number","minimum":0,"description":"Entry price per contract; omitted = use mark"}},"required":["qty"],"additionalProperties":false,"description":"One option leg"},"minItems":1,"maxItems":8},"style":"form","explode":false},{"name":"underlying_price","in":"query","required":false,"description":"Spot; defaults to the live price","schema":{"type":"number","exclusiveMinimum":true,"minimum":0,"description":"Spot; defaults to the live price"}},{"name":"iv","in":"query","required":false,"description":"Decimal IV applied to every leg; defaults to each leg’s chain IV","schema":{"type":"number","minimum":0.01,"maximum":5,"description":"Decimal IV applied to every leg; defaults to each leg’s chain IV"}},{"name":"rate","in":"query","required":false,"description":"Risk-free rate, decimal","schema":{"type":"number","minimum":0,"maximum":1,"default":0.045,"description":"Risk-free rate, decimal"}},{"name":"date","in":"query","required":false,"description":"Valuation date; defaults to today","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Valuation date; defaults to today"}},{"name":"price_range_pct","in":"query","required":false,"description":"Grid half-width as a fraction of spot","schema":{"type":"number","minimum":0.01,"maximum":1,"default":0.2,"description":"Grid half-width as a fraction of spot"}},{"name":"points","in":"query","required":false,"description":"Grid price count","schema":{"type":"integer","minimum":1,"maximum":201,"default":41,"description":"Grid price count"}}],"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"symbol":{"type":"string"},"as_of":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Calendar date, YYYY-MM-DD"},"underlying_price":{"type":"number"},"legs":{"type":"array","items":{"type":"object","properties":{"occ":{"type":"string"},"expiration":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Calendar date, YYYY-MM-DD"},"strike":{"type":"number"},"right":{"type":"string","enum":["C","P"]},"qty":{"type":"integer"},"price":{"type":"number","description":"Entry price per share used for P&L"},"iv":{"type":"number","description":"Decimal IV used to value the leg"},"delta":{"type":"number","description":"Per share"},"gamma":{"type":"number"},"theta":{"type":"number","description":"Per share, per calendar day"},"vega":{"type":"number","description":"Per share, per 1 vol point"}},"required":["occ","expiration","strike","right","qty","price","iv","delta","gamma","theta","vega"],"additionalProperties":false}},"net_debit":{"type":"number","description":"Dollars; negative = net credit"},"greeks":{"type":"object","properties":{"delta":{"type":"number"},"gamma":{"type":"number"},"theta":{"type":"number"},"vega":{"type":"number"}},"required":["delta","gamma","theta","vega"],"additionalProperties":false,"description":"Position-level: Σ qty × 100 × Greek"},"breakevens":{"type":"array","items":{"type":"number"}},"max_profit":{"type":"number","nullable":true,"description":"null when unbounded"},"max_loss":{"type":"number","nullable":true,"description":"null when unbounded; negative number otherwise"},"pop":{"type":"number","nullable":true,"description":"Probability the position is profitable at the nearest expiration, 0–1"},"grid":{"type":"array","items":{"type":"object","properties":{"price":{"type":"number"},"pnl_now":{"type":"number"},"pnl_expiry":{"type":"number"}},"required":["price","pnl_now","pnl_expiry"],"additionalProperties":false}},"setup_url":{"type":"string"}},"required":["symbol","as_of","underlying_price","legs","net_debit","greeks","breakevens","max_profit","max_loss","pop","grid","setup_url"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"description":"Error (RFC 9457 problem+json)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/tools/positions.list":{"post":{"operationId":"positions_list","summary":"List open positions","description":"Returns the signed-in user’s open option positions, newest first.","tags":["Track"],"security":[{"apiKey":[]},{"oauth2":["read"]}],"x-tier":"free","x-access":"read","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":false},"examples":{"example1":{"value":{}}}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"positions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"ticker":{"type":"string"},"option_type":{"type":"string","enum":["call","put"]},"strike":{"type":"number","description":"USD"},"expiration":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Calendar date, YYYY-MM-DD"},"quantity":{"type":"integer","description":"Positive = long, negative = short"},"entry_price":{"type":"number","description":"Price paid per contract"},"current_price":{"type":"number","description":"USD"},"underlying_price":{"type":"number","description":"USD"},"opened_at":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Calendar date, YYYY-MM-DD"},"notes":{"type":"string"},"strategy_type":{"type":"string"},"greeks":{"type":"object","properties":{"delta":{"type":"number","nullable":true},"gamma":{"type":"number","nullable":true},"theta":{"type":"number","nullable":true},"vega":{"type":"number","nullable":true}},"required":["delta","gamma","theta","vega"],"additionalProperties":false}},"required":["id","ticker","option_type","strike","expiration","quantity","entry_price","opened_at"],"additionalProperties":false}}},"required":["positions"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"description":"Error (RFC 9457 problem+json)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}},"get":{"operationId":"positions_list_get","summary":"List open positions","description":"Returns the signed-in user’s open option positions, newest first.","tags":["Track"],"security":[{"apiKey":[]},{"oauth2":["read"]}],"x-tier":"free","x-access":"read","parameters":[],"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"positions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"ticker":{"type":"string"},"option_type":{"type":"string","enum":["call","put"]},"strike":{"type":"number","description":"USD"},"expiration":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Calendar date, YYYY-MM-DD"},"quantity":{"type":"integer","description":"Positive = long, negative = short"},"entry_price":{"type":"number","description":"Price paid per contract"},"current_price":{"type":"number","description":"USD"},"underlying_price":{"type":"number","description":"USD"},"opened_at":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Calendar date, YYYY-MM-DD"},"notes":{"type":"string"},"strategy_type":{"type":"string"},"greeks":{"type":"object","properties":{"delta":{"type":"number","nullable":true},"gamma":{"type":"number","nullable":true},"theta":{"type":"number","nullable":true},"vega":{"type":"number","nullable":true}},"required":["delta","gamma","theta","vega"],"additionalProperties":false}},"required":["id","ticker","option_type","strike","expiration","quantity","entry_price","opened_at"],"additionalProperties":false}}},"required":["positions"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"description":"Error (RFC 9457 problem+json)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/tools/positions.add":{"post":{"operationId":"positions_add","summary":"Add position","description":"Records one open position per leg for the signed-in user. Use dry_run to preview the rows without saving.","tags":["Track"],"security":[{"apiKey":[]},{"oauth2":["write"]}],"x-tier":"free","x-access":"write","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"legs":{"type":"array","items":{"type":"object","properties":{"occ":{"allOf":[{"type":"string"},{"type":"string","pattern":"^[A-Z]{1,6}\\d{6}[CP]\\d{1,8}(\\.\\d+)?$"}],"description":"OCC option symbol, e.g. SPY260918C00620000"},"symbol":{"allOf":[{"type":"string"},{"type":"string","pattern":"^[A-Z]{1,6}$"}],"description":"Ticker symbol, e.g. SPY"},"expiration":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Calendar date, YYYY-MM-DD"},"strike":{"type":"number","exclusiveMinimum":true,"minimum":0},"right":{"type":"string","enum":["C","P"],"description":"C = call, P = put"},"qty":{"type":"integer","description":"Positive = long, negative = short"},"price":{"type":"number","minimum":0,"description":"Entry price per contract; omitted = use mark"}},"required":["qty"],"additionalProperties":false,"description":"One option leg"},"minItems":1,"maxItems":4,"description":"1–4 legs, each with an entry price"},"opened_at":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Defaults to today"},"notes":{"type":"string","maxLength":500},"strategy_type":{"type":"string","maxLength":50,"description":"Free-form label, e.g. \"Vertical spread\""}},"required":["legs"],"additionalProperties":false},"examples":{"example1":{"summary":"Single long call from an OCC symbol","value":{"legs":[{"occ":"SPY260918C00620000","qty":2,"price":6.47}],"notes":"Post-CPI drift"}},"example2":{"value":{"legs":[{"symbol":"NVDA","expiration":"2026-10-16","strike":150,"right":"P","qty":-1,"price":4.1},{"symbol":"NVDA","expiration":"2026-10-16","strike":140,"right":"P","qty":1,"price":1.9}],"strategy_type":"Put credit spread"}}}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"dry_run":{"type":"boolean","description":"True when dry_run was requested: nothing was persisted; other fields show the would-be result"},"positions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","nullable":true,"description":"null on dry_run"},"ticker":{"type":"string"},"option_type":{"type":"string","enum":["call","put"]},"strike":{"type":"number","description":"USD"},"expiration":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Calendar date, YYYY-MM-DD"},"quantity":{"type":"integer","description":"Positive = long, negative = short"},"entry_price":{"type":"number","description":"Price paid per contract"},"current_price":{"type":"number","description":"USD"},"underlying_price":{"type":"number","description":"USD"},"opened_at":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Calendar date, YYYY-MM-DD"},"notes":{"type":"string"},"strategy_type":{"type":"string"},"greeks":{"type":"object","properties":{"delta":{"type":"number","nullable":true},"gamma":{"type":"number","nullable":true},"theta":{"type":"number","nullable":true},"vega":{"type":"number","nullable":true}},"required":["delta","gamma","theta","vega"],"additionalProperties":false}},"required":["id","ticker","option_type","strike","expiration","quantity","entry_price","opened_at"],"additionalProperties":false}}},"required":["dry_run","positions"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"description":"Error (RFC 9457 problem+json)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/tools/positions.close":{"post":{"operationId":"positions_close","summary":"Close position","description":"Closes an open position at close_price, recording the realized P&L in the track record and removing it from open positions.","tags":["Track"],"security":[{"apiKey":[]},{"oauth2":["write"]}],"x-tier":"free","x-access":"write","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Position id from positions.list"},"close_price":{"type":"number","minimum":0,"description":"Exit price per contract; 0 for expired worthless"},"closed_at":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Defaults to today"}},"required":["id","close_price"],"additionalProperties":false},"examples":{"example1":{"value":{"id":"6f1c2b3a-4d5e-4f60-8a71-9b2c3d4e5f60","close_price":8.2}}}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"dry_run":{"type":"boolean","description":"True when dry_run was requested: nothing was persisted; other fields show the would-be result"},"closed":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"ticker":{"type":"string"},"realized_pnl":{"type":"number","description":"USD"},"closed_at":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Calendar date, YYYY-MM-DD"}},"required":["id","ticker","realized_pnl","closed_at"],"additionalProperties":false}},"required":["dry_run","closed"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"description":"Error (RFC 9457 problem+json)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/tools/positions.history":{"post":{"operationId":"positions_history","summary":"Closed trades","description":"Returns the signed-in user’s closed and imported trades with realized P&L, newest close first.","tags":["Track"],"security":[{"apiKey":[]},{"oauth2":["read"]}],"x-tier":"free","x-access":"read","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":false},"examples":{"example1":{"value":{}}}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"trades":{"type":"array","items":{"type":"object","properties":{"id":{"anyOf":[{"type":"string"},{"type":"number"}]},"symbol":{"type":"string"},"option_type":{"type":"string","enum":["call","put"],"nullable":true},"strike":{"type":"number","description":"USD"},"expiration":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Calendar date, YYYY-MM-DD"},"quantity":{"type":"integer"},"open_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Calendar date, YYYY-MM-DD","nullable":true},"close_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Calendar date, YYYY-MM-DD","nullable":true},"entry_price":{"type":"number","description":"USD"},"exit_price":{"type":"number","description":"USD"},"realized_pnl":{"type":"number","description":"USD"},"broker":{"type":"string"}},"required":["id","symbol","option_type","quantity","open_date","close_date"],"additionalProperties":false}}},"required":["trades"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"description":"Error (RFC 9457 problem+json)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}},"get":{"operationId":"positions_history_get","summary":"Closed trades","description":"Returns the signed-in user’s closed and imported trades with realized P&L, newest close first.","tags":["Track"],"security":[{"apiKey":[]},{"oauth2":["read"]}],"x-tier":"free","x-access":"read","parameters":[],"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"trades":{"type":"array","items":{"type":"object","properties":{"id":{"anyOf":[{"type":"string"},{"type":"number"}]},"symbol":{"type":"string"},"option_type":{"type":"string","enum":["call","put"],"nullable":true},"strike":{"type":"number","description":"USD"},"expiration":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Calendar date, YYYY-MM-DD"},"quantity":{"type":"integer"},"open_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Calendar date, YYYY-MM-DD","nullable":true},"close_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Calendar date, YYYY-MM-DD","nullable":true},"entry_price":{"type":"number","description":"USD"},"exit_price":{"type":"number","description":"USD"},"realized_pnl":{"type":"number","description":"USD"},"broker":{"type":"string"}},"required":["id","symbol","option_type","quantity","open_date","close_date"],"additionalProperties":false}}},"required":["trades"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"description":"Error (RFC 9457 problem+json)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/tools/watchlist.get":{"post":{"operationId":"watchlist_get","summary":"Get watchlist","description":"Returns the signed-in user’s watchlist symbols.","tags":["Track"],"security":[{"apiKey":[]},{"oauth2":["read"]}],"x-tier":"free","x-access":"read","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":false},"examples":{"example1":{"value":{}}}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"symbols":{"type":"array","items":{"allOf":[{"type":"string"},{"type":"string","pattern":"^[A-Z]{1,6}$"}],"description":"Ticker symbol, e.g. SPY"},"description":"Watchlist after this call, in the order symbols were added"}},"required":["symbols"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"description":"Error (RFC 9457 problem+json)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}},"get":{"operationId":"watchlist_get_get","summary":"Get watchlist","description":"Returns the signed-in user’s watchlist symbols.","tags":["Track"],"security":[{"apiKey":[]},{"oauth2":["read"]}],"x-tier":"free","x-access":"read","parameters":[],"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"symbols":{"type":"array","items":{"allOf":[{"type":"string"},{"type":"string","pattern":"^[A-Z]{1,6}$"}],"description":"Ticker symbol, e.g. SPY"},"description":"Watchlist after this call, in the order symbols were added"}},"required":["symbols"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"description":"Error (RFC 9457 problem+json)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/tools/watchlist.add":{"post":{"operationId":"watchlist_add","summary":"Add to watchlist","description":"Adds symbols to the watchlist; symbols already present are ignored.","tags":["Track"],"security":[{"apiKey":[]},{"oauth2":["write"]}],"x-tier":"free","x-access":"write","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"symbols":{"type":"array","items":{"allOf":[{"type":"string"},{"type":"string","pattern":"^[A-Z]{1,6}$"}],"description":"Ticker symbol, e.g. SPY"},"minItems":1,"maxItems":50,"description":"Ticker symbols"}},"required":["symbols"],"additionalProperties":false},"examples":{"example1":{"value":{"symbols":["SPY","NVDA"]}}}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"dry_run":{"type":"boolean","description":"True when dry_run was requested: nothing was persisted; other fields show the would-be result"},"symbols":{"type":"array","items":{"allOf":[{"type":"string"},{"type":"string","pattern":"^[A-Z]{1,6}$"}],"description":"Ticker symbol, e.g. SPY"},"description":"Watchlist after this call, in the order symbols were added"},"added":{"type":"array","items":{"allOf":[{"type":"string"},{"type":"string","pattern":"^[A-Z]{1,6}$"}],"description":"Ticker symbol, e.g. SPY"},"description":"Symbols that were not on the list before"}},"required":["dry_run","symbols","added"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"description":"Error (RFC 9457 problem+json)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/tools/watchlist.remove":{"post":{"operationId":"watchlist_remove","summary":"Remove from watchlist","description":"Removes symbols from the watchlist; symbols not on the list are ignored.","tags":["Track"],"security":[{"apiKey":[]},{"oauth2":["write"]}],"x-tier":"free","x-access":"write","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"symbols":{"type":"array","items":{"allOf":[{"type":"string"},{"type":"string","pattern":"^[A-Z]{1,6}$"}],"description":"Ticker symbol, e.g. SPY"},"minItems":1,"maxItems":50,"description":"Ticker symbols"}},"required":["symbols"],"additionalProperties":false},"examples":{"example1":{"value":{"symbols":["NVDA"]}}}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"dry_run":{"type":"boolean","description":"True when dry_run was requested: nothing was persisted; other fields show the would-be result"},"symbols":{"type":"array","items":{"allOf":[{"type":"string"},{"type":"string","pattern":"^[A-Z]{1,6}$"}],"description":"Ticker symbol, e.g. SPY"},"description":"Watchlist after this call, in the order symbols were added"},"removed":{"type":"array","items":{"allOf":[{"type":"string"},{"type":"string","pattern":"^[A-Z]{1,6}$"}],"description":"Ticker symbol, e.g. SPY"},"description":"Symbols that were on the list and are now gone"}},"required":["dry_run","symbols","removed"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"description":"Error (RFC 9457 problem+json)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/tools/alerts.list":{"post":{"operationId":"alerts_list","summary":"List flow alerts","description":"Returns the signed-in user’s flow alerts, newest first.","tags":["Track"],"security":[{"apiKey":[]},{"oauth2":["read"]}],"x-tier":"free","x-access":"read","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"source":{"type":"string","enum":["live","historical"],"description":"Flow feed the alert watches"}},"additionalProperties":false},"examples":{"example1":{"value":{}},"example2":{"value":{"source":"live"}}}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"alerts":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"source":{"type":"string","enum":["live","historical"],"description":"Flow feed the alert watches"},"filters":{"type":"object","additionalProperties":{},"description":"Stored filter payload (FlowAlertFiltersPayload shape)"},"active":{"type":"boolean"},"created_at":{"type":"string","format":"date-time","description":"ISO-8601 timestamp"},"last_triggered_at":{"type":"string","format":"date-time","description":"ISO-8601 timestamp","nullable":true}},"required":["id","name","source","filters","active","created_at","last_triggered_at"],"additionalProperties":false}}},"required":["alerts"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"description":"Error (RFC 9457 problem+json)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}},"get":{"operationId":"alerts_list_get","summary":"List flow alerts","description":"Returns the signed-in user’s flow alerts, newest first.","tags":["Track"],"security":[{"apiKey":[]},{"oauth2":["read"]}],"x-tier":"free","x-access":"read","parameters":[{"name":"source","in":"query","required":false,"description":"Flow feed the alert watches","schema":{"type":"string","enum":["live","historical"],"description":"Flow feed the alert watches"}}],"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"alerts":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"source":{"type":"string","enum":["live","historical"],"description":"Flow feed the alert watches"},"filters":{"type":"object","additionalProperties":{},"description":"Stored filter payload (FlowAlertFiltersPayload shape)"},"active":{"type":"boolean"},"created_at":{"type":"string","format":"date-time","description":"ISO-8601 timestamp"},"last_triggered_at":{"type":"string","format":"date-time","description":"ISO-8601 timestamp","nullable":true}},"required":["id","name","source","filters","active","created_at","last_triggered_at"],"additionalProperties":false}}},"required":["alerts"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"description":"Error (RFC 9457 problem+json)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/tools/alerts.create":{"post":{"operationId":"alerts_create","summary":"Create flow alert","description":"Creates a flow alert that fires when new options flow matches the filters. Free accounts may hold one alert.","tags":["Track"],"security":[{"apiKey":[]},{"oauth2":["write"]}],"x-tier":"free","x-access":"write","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":60},"filters":{"type":"object","properties":{"tickers":{"type":"array","items":{"allOf":[{"type":"string"},{"type":"string","pattern":"^[A-Z]{1,6}$"}],"description":"Ticker symbol, e.g. SPY"},"minItems":1,"maxItems":50,"description":"Ticker symbols"},"rights":{"type":"array","items":{"type":"string","enum":["C","P"],"description":"C = call, P = put"},"minItems":1},"sides":{"type":"array","items":{"type":"string","enum":["BUY","SELL"]},"minItems":1},"min_premium":{"type":"number","minimum":0,"description":"Minimum premium in USD"},"min_dte":{"type":"integer","minimum":0},"max_dte":{"type":"integer","minimum":0},"sentiment":{"type":"string","enum":["bullish","bearish"]}},"additionalProperties":false,"description":"Same filters as flow.search (minus limit/since/window/types)"},"source":{"type":"string","enum":["live","historical"],"description":"Flow feed the alert watches","default":"live"},"active":{"type":"boolean","default":true},"latency":{"type":"string","enum":["realtime","5min","15min"],"description":"Delivery latency; realtime and 5min require Paid","default":"15min"}},"required":["name","filters"],"additionalProperties":false},"examples":{"example1":{"value":{"name":"NVDA big call sweeps","filters":{"tickers":["NVDA"],"rights":["C"],"min_premium":500000}}},"example2":{"value":{"name":"Bearish put buying","filters":{"sides":["BUY"],"rights":["P"],"sentiment":"bearish","min_dte":7,"max_dte":45},"source":"live"}}}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"dry_run":{"type":"boolean","description":"True when dry_run was requested: nothing was persisted; other fields show the would-be result"},"alert":{"type":"object","properties":{"id":{"type":"string","nullable":true,"description":"null on dry_run"},"name":{"type":"string"},"source":{"type":"string","enum":["live","historical"],"description":"Flow feed the alert watches"},"filters":{"type":"object","additionalProperties":{},"description":"Stored filter payload (FlowAlertFiltersPayload shape)"},"active":{"type":"boolean"},"created_at":{"type":"string","format":"date-time","description":"ISO-8601 timestamp"},"last_triggered_at":{"type":"string","format":"date-time","description":"ISO-8601 timestamp","nullable":true}},"required":["id","name","source","filters","active","created_at","last_triggered_at"],"additionalProperties":false}},"required":["dry_run","alert"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"description":"Error (RFC 9457 problem+json)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/tools/alerts.delete":{"post":{"operationId":"alerts_delete","summary":"Delete flow alert","description":"Deletes one of the signed-in user’s flow alerts by id.","tags":["Track"],"security":[{"apiKey":[]},{"oauth2":["write"]}],"x-tier":"free","x-access":"write","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","minLength":1,"description":"Alert id from alerts.list"}},"required":["id"],"additionalProperties":false},"examples":{"example1":{"value":{"id":"6f1c2b3a-4d5e-4f60-8a71-9b2c3d4e5f60"}}}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"dry_run":{"type":"boolean","description":"True when dry_run was requested: nothing was persisted; other fields show the would-be result"},"deleted":{"type":"string"}},"required":["dry_run","deleted"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"description":"Error (RFC 9457 problem+json)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}}},"components":{"securitySchemes":{"apiKey":{"type":"http","scheme":"bearer","bearerFormat":"io_live_…","description":"API key from /account. Also accepted as ?api_key= (less secure)."},"oauth2":{"type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://impliedoptions.com/oauth/authorize","tokenUrl":"https://impliedoptions.com/oauth/token","refreshUrl":"https://impliedoptions.com/oauth/token","scopes":{"read":"Run read tools","write":"Run write tools (positions, watchlist, alerts)"}}}}},"schemas":{"Meta":{"type":"object","properties":{"tool":{"type":"string"},"args":{"type":"object","additionalProperties":{}},"freshness":{"type":"string","enum":["realtime","delayed"]},"as_of":{"type":"string"},"truncated":{"type":"boolean"},"total":{"type":"number"},"next_cursor":{"type":"string"},"duration_ms":{"type":"number"}},"required":["tool","args","freshness","as_of"],"additionalProperties":false},"Problem":{"type":"object","description":"RFC 9457 problem details. `type` is a URL whose fragment is the short error code.","required":["type","title","status"],"properties":{"type":{"type":"string","format":"uri","description":"https://impliedoptions.com/docs/errors#<code>","enum":["https://impliedoptions.com/docs/errors#unauthorized","https://impliedoptions.com/docs/errors#forbidden","https://impliedoptions.com/docs/errors#quota_exceeded","https://impliedoptions.com/docs/errors#tier_required","https://impliedoptions.com/docs/errors#invalid_args","https://impliedoptions.com/docs/errors#symbol_unknown","https://impliedoptions.com/docs/errors#not_found","https://impliedoptions.com/docs/errors#conflict","https://impliedoptions.com/docs/errors#upstream_unavailable","https://impliedoptions.com/docs/errors#internal"]},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"tool":{"type":"string"},"retry_after":{"type":"integer","description":"Seconds until the quota resets (quota_exceeded only)"},"errors":{"type":"array","items":{"type":"object","required":["path","message"],"properties":{"path":{"type":"string"},"message":{"type":"string"}}}}}}}}}