{"openapi":"3.1.0","info":{"title":"ORATS (BYOK) API","version":"0.1.0","description":"ORATS (BYOK) lets an AI assistant read your own ORATS data through the ORATS API with a key you supply (ORATS API token). Read-only: 11 tools (get_ticker_coverage, get_summaries, get_core_data, get_iv_rank, get_option_strikes, get_implied_monies, get_historical_daily_prices, get_historical_volatility, get_historical_iv_rank, get_earnings_history, get_split_history). The BYOK key travels with each...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-orats.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-orats/docs"},"termsOfService":"https://connectorbay.com/byok-orats/terms"},"servers":[{"url":"https://byok-orats.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-orats/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/get_ticker_coverage":{"post":{"operationId":"get_ticker_coverage","summary":"Show the first and last trade date available for a ticker (or the whole ORATS universe when no ticker is given). Use for","description":"Show the first and last trade date available for a ticker (or the whole ORATS universe when no ticker is given). Use for \"What date range does ORATS cover for AAPL\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"ticker":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"Ticker symbol, for example AAPL.","title":"Ticker"}},"title":"get_ticker_coverageArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_summaries":{"post":{"operationId":"get_summaries","summary":"Get current end-of-day options summary per ticker: stock price, implied volatility by tenor (10d to 1y), implied move, b","description":"Get current end-of-day options summary per ticker: stock price, implied volatility by tenor (10d to 1y), implied move, borrow rate and dividends. Use for \"What is AAPL's 30-day implied volatility and implied earnings move\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"ticker":{"description":"Ticker symbol; several can be given comma-separated (at most 10), for example 'AAPL,TSLA'.","maxLength":120,"title":"Ticker","type":"string"},"fields":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated list of response fields to return (default: all), for example 'tradeDate,ivRank1m'.","title":"Fields"}},"required":["ticker"],"title":"get_summariesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_core_data":{"post":{"operationId":"get_core_data","summary":"Get current end-of-day core option statistics per ticker: ATM IV by month, option volume and open interest, forecasted v","description":"Get current end-of-day core option statistics per ticker: ATM IV by month, option volume and open interest, forecasted volatility, historical volatility, sector and market cap. Use for \"Show ORATS core option statistics for TSLA\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"ticker":{"description":"Ticker symbol; several can be given comma-separated (at most 10), for example 'AAPL,TSLA'.","maxLength":120,"title":"Ticker","type":"string"},"fields":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated list of response fields to return (default: all), for example 'tradeDate,ivRank1m'.","title":"Fields"}},"required":["ticker"],"title":"get_core_dataArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_iv_rank":{"post":{"operationId":"get_iv_rank","summary":"Get current implied volatility rank and percentile (1 month and 1 year) per ticker. Use for \"Is SPY's implied volatility","description":"Get current implied volatility rank and percentile (1 month and 1 year) per ticker. Use for \"Is SPY's implied volatility high or low relative to the past year\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"ticker":{"description":"Ticker symbol; several can be given comma-separated (at most 10), for example 'AAPL,TSLA'.","maxLength":120,"title":"Ticker","type":"string"},"fields":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated list of response fields to return (default: all), for example 'tradeDate,ivRank1m'.","title":"Fields"}},"required":["ticker"],"title":"get_iv_rankArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_option_strikes":{"post":{"operationId":"get_option_strikes","summary":"Get the end-of-day option chain: per strike and expiry the bid, ask, model value, IV, greeks, volume and open interest. ","description":"Get the end-of-day option chain: per strike and expiry the bid, ask, model value, IV, greeks, volume and open interest. Narrow with dte and delta ranges to keep it small. Use for \"Show AAPL options expiring in 30 to 45 days with delta between 0.30 and 0.45\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"ticker":{"description":"Ticker symbol; several can be given comma-separated (at most 10), for example 'AAPL,TSLA'.","maxLength":120,"title":"Ticker","type":"string"},"dte":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"Days-to-expiry range 'min,max', for example '30,45'.","title":"Dte"},"delta":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"Delta range 'min,max', for example '.30,.45'.","title":"Delta"},"fields":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated response fields (default: all), for example 'expirDate,strike,callMidIv,delta'.","title":"Fields"}},"required":["ticker"],"title":"get_option_strikesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_implied_monies":{"post":{"operationId":"get_implied_monies","summary":"Get the monthly implied volatility surface per expiry: ATM IV, slope, deriv and the vol at each delta level. Use for \"Sh","description":"Get the monthly implied volatility surface per expiry: ATM IV, slope, deriv and the vol at each delta level. Use for \"Show the AAPL implied volatility by expiry\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"ticker":{"description":"Ticker symbol; several can be given comma-separated (at most 10), for example 'AAPL,TSLA'.","maxLength":120,"title":"Ticker","type":"string"},"fields":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated list of response fields to return (default: all), for example 'tradeDate,ivRank1m'.","title":"Fields"}},"required":["ticker"],"title":"get_implied_moniesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_historical_daily_prices":{"post":{"operationId":"get_historical_daily_prices","summary":"Get daily underlying open, high, low, close and volume derived from option prices (reference prices, not exchange quotes","description":"Get daily underlying open, high, low, close and volume derived from option prices (reference prices, not exchange quotes). Needs a ticker, a trade date or both. Use for \"What was the ORATS reference close for AAPL on 2026-09-30\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"ticker":{"description":"Ticker symbol; several can be given comma-separated (at most 10), for example 'AAPL,TSLA'. Optional when trade_date is set.","maxLength":120,"title":"Ticker","type":"string"},"trade_date":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Trading date YYYY-MM-DD, for example 2026-09-30.","title":"Trade Date"},"fields":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated list of response fields to return (default: all), for example 'tradeDate,ivRank1m'.","title":"Fields"}},"required":["ticker"],"title":"get_historical_daily_pricesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_historical_volatility":{"post":{"operationId":"get_historical_volatility","summary":"Get historical (realized) volatility for 1 to 1000 day windows, close-to-close and open-to-close, for a ticker and trade","description":"Get historical (realized) volatility for 1 to 1000 day windows, close-to-close and open-to-close, for a ticker and trade date. Use for \"What was AAPL's 20-day realized volatility on 2026-09-30\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"ticker":{"description":"Ticker symbol; several can be given comma-separated (at most 10), for example 'AAPL,TSLA'. Optional when trade_date is set.","maxLength":120,"title":"Ticker","type":"string"},"trade_date":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Trading date YYYY-MM-DD, for example 2026-09-30.","title":"Trade Date"},"fields":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated list of response fields to return (default: all), for example 'tradeDate,ivRank1m'.","title":"Fields"}},"required":["ticker"],"title":"get_historical_volatilityArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_historical_iv_rank":{"post":{"operationId":"get_historical_iv_rank","summary":"Get IV rank and percentile history for a ticker or a single trade date. Use for \"How did AAPL's IV rank look on 2026-06-","description":"Get IV rank and percentile history for a ticker or a single trade date. Use for \"How did AAPL's IV rank look on 2026-06-30\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"ticker":{"description":"Ticker symbol; several can be given comma-separated (at most 10), for example 'AAPL,TSLA'. Optional when trade_date is set.","maxLength":120,"title":"Ticker","type":"string"},"trade_date":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Trading date YYYY-MM-DD, for example 2026-09-30.","title":"Trade Date"},"fields":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated list of response fields to return (default: all), for example 'tradeDate,ivRank1m'.","title":"Fields"}},"required":["ticker"],"title":"get_historical_iv_rankArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_earnings_history":{"post":{"operationId":"get_earnings_history","summary":"List the earnings announcement dates and time of day (before open or after close) ORATS has for a ticker. Use for \"When ","description":"List the earnings announcement dates and time of day (before open or after close) ORATS has for a ticker. Use for \"When did Microsoft report earnings in the past\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"ticker":{"description":"Ticker symbol, for example AAPL.","maxLength":20,"title":"Ticker","type":"string"}},"required":["ticker"],"title":"get_earnings_historyArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_split_history":{"post":{"operationId":"get_split_history","summary":"List stock split dates and divisors for a ticker. Use for \"Has NVDA ever split its stock\".","description":"List stock split dates and divisors for a ticker. Use for \"Has NVDA ever split its stock\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"ticker":{"description":"Ticker symbol, for example AAPL.","maxLength":20,"title":"Ticker","type":"string"}},"required":["ticker"],"title":"get_split_historyArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}