Finance
Overview
Connect your Interactive Brokers account to ChatGPT and manage your portfolio through natural language. Ask about positions, balances, P&L, allocations, and open orders, or request real-time quotes and historical market data. You can also prompt ChatGPT to draft trade instructions — for example, "Buy 100 shares of AAPL at a limit of $200" — which are sent to your IBKR account for your review and approval. ChatGPT never submits orders directly to the market. Any trading symbols displayed or discussed are for illustrative purposes only and are not intended to portray recommendations. Member SIPC.
Tools
Creates a new instruction. An instruction is not a live order. The returned URL deep-links to the instruction in the IBKR platforms where a user can review and submit it. After submission, the instruction is converted into a live order. Supports Stocks (STK), Futures (FUT), Options (OPT), and Futures Options (FOP).
create_order_instruction
ChatGPTCreates a new instruction. An instruction is not a live order. The returned URL deep-links to the instruction in the IBKR platforms where a user can review and submit it. After submission, the instruction is converted into a live order. Supports Stocks (STK), Futures (FUT), Options (OPT), and Futures Options (FOP).
create_watchlist
ChatGPTCreates a new watchlist with the given name and an initial set of instruments. Watchlist names must be non-blank. Returns the new watchlist's id and hash.
delete_order_instruction
ChatGPTDeletes an existing instruction by its ID.
delete_order_instruction
ChatGPTDeletes an existing instruction by its ID.
delete_watchlist
ChatGPTPermanently deletes a watchlist. This action is irreversible. Confirm with the user before calling. Call get_watchlists first to resolve the watchlist name to its id.
edit_watchlist
ChatGPTUpdates a watchlist's name and instruments (id, name, and instruments are all required — full-replace semantics). The instruments list is full-replace: the submitted list becomes the watchlist's complete new content. To add or remove instruments: call get_watchlist first to retrieve the current name and instruments, then submit the full updated list here (get_watchlist → modify → edit_watchlist). Source the current name from get_watchlist — it is required and not returned by this call. Call get_watchlists first to resolve the watchlist name to its id.
get_account_balances
ChatGPTRetrieves cash balances and market values broken down by currency. Returns one entry per currency.
get_account_balances
ChatGPTRetrieves cash balances and market values broken down by currency. Returns one entry per currency.
get_account_orders
ChatGPTRetrieves the list of live orders for the user. Each order includes order ID, symbol, side, order type, status, quantity, price, and fill information.
get_account_orders
ChatGPTRetrieves the list of live orders for the user. Each order includes order ID, symbol, side, order type, status, quantity, price, and fill information.
get_account_positions
ChatGPTRetrieves all open positions. Each position includes quantity, price, market value, P&L, and cost basis.
get_account_positions
ChatGPTRetrieves all open positions. Each position includes quantity, price, market value, P&L, and cost basis.
get_account_summary
ChatGPTRetrieves account-level financial metrics: net liquidation value, equity with loan value, available funds, buying power, initial and maintenance margin, day trading status, and alike.
get_account_summary
ChatGPTRetrieves account-level financial metrics: net liquidation value, equity with loan value, available funds, buying power, initial and maintenance margin, day trading status, and alike.
get_account_trades
ChatGPTRetrieves a snapshot of trades for the user over the requested time period. Each trade includes trade ID, symbol, side, size, price, commission, and trade time. All date boundaries are calculated in UTC.
get_account_trades
ChatGPTRetrieves a snapshot of trades for the user over the requested time period. Each trade includes trade ID, symbol, side, size, price, commission, and trade time. All date boundaries are calculated in UTC.
get_combo_identifier
ChatGPTCreates a combo contract identifier from EQUITY OPTION (OPT) legs only. IMPORTANT: Only OPT–OPT combos are supported. Every leg must be a standard equity/index option (security type OPT) from an OPT option chain. Futures options (FOP), futures (FUT), stocks (STK), and any mixed-type combination are NOT supported and will fail when passed to create_order_instruction. Do NOT call this tool with FOP legs. If the user wants a futures-options spread, tell them multi-leg FOP combos aren't supported and offer to place each leg as a separate single-leg FOP order via create_order_instruction instead. Use this before create_order_instruction when placing a spread or multi-leg options strategy. Each leg requires a
contract_id_ex (pass call_contract_id_ex or put_contract_id_ex from get_option_data verbatim) and a size (positive integer for BUY legs, negative for SELL legs). Returns a contract_id_ex string that identifies the combo — pass it directly to create_order_instruction as contract_id_ex. The response also includes a description (human-readable strategy summary) and strategy_name (e.g. "Bull", "Combo").get_company_connections
ChatGPTReturn a company's competitors, products, and geographic exposure (countries and regions of operation). Also includes sectors/trends but with supporting evidence explaining each connection. Use when the user asks 'who are Pepsi's competitors', 'what does Tesla sell', 'where does Shell operate', or wants a full business overview. Requires the company's contract_id — resolve with search_contracts first if you only have a name or ticker. Relationship to get_company_themes: that tool is the lightweight choice when you only need sectors/trends + ranked peers. Use get_company_connections for the broader profile (products/geography/competitors) or when you want evidence explaining WHY a connection exists. To restrict to sectors/trends only, set link_types=['COMPANY_THEME'].
get_company_connections
ChatGPTReturn a company's competitors, products, and geographic exposure (countries and regions of operation). Also includes sectors/trends but with supporting evidence explaining each connection. Use when the user asks 'who are Pepsi's competitors', 'what does Tesla sell', 'where does Shell operate', or wants a full business overview. Requires the company's contract_id — resolve with search_contracts first if you only have a name or ticker. Relationship to get_company_themes: that tool is the lightweight choice when you only need sectors/trends + ranked peers. Use get_company_connections for the broader profile (products/geography/competitors) or when you want evidence explaining WHY a connection exists. To restrict to sectors/trends only, set link_types=['COMPANY_THEME'].
get_company_themes
ChatGPTGiven a company, return the sectors, trends, and industries it belongs to, and for each one the top peer companies ranked by relevance. Use for questions like 'what sectors is NVIDIA in?', 'what trends is Tesla part of?', or 'who are Apple's closest peers?' Requires the company's contract_id. If you only have a name or ticker, call search_contracts first to resolve it. Choose this over get_company_connections when you only need sectors/trends + ranked peers. If you need the company's products, countries, regions, broader competitor view, or evidence text explaining each link, use get_company_connections instead.
get_company_themes
ChatGPTGiven a company, return the sectors, trends, and industries it belongs to, and for each one the top peer companies ranked by relevance. Use for questions like 'what sectors is NVIDIA in?', 'what trends is Tesla part of?', or 'who are Apple's closest peers?' Requires the company's contract_id. If you only have a name or ticker, call search_contracts first to resolve it. Choose this over get_company_connections when you only need sectors/trends + ranked peers. If you need the company's products, countries, regions, broader competitor view, or evidence text explaining each link, use get_company_connections instead.
get_option_data
ChatGPTReturns the option chain for one expiration: a row per strike with
strike, call_contract_id, call_description, put_contract_id, put_description, and exchange. The *_description strings carry option contract details such as expiration, strike and futures options include the contract multiplier in parentheses (e.g. '(50)' for ES, '(20)' for NQ). Use these when presenting a contract to the user. The response also contains a top-level currency field (e.g. "USD") indicating the settlement currency for the contracts in the chain. Works for both equity options and futures options — the security type is inherited from the get_option_parameters call that produced the expiration_id. This tool returns contract structure only — it does NOT return prices, implied volatility, open interest, or volume. To obtain those, call get_price_snapshot once per call_contract_id/put_contract_id afterwards. When reading option_midpoint_iv, use it only when its isValid flag is true; an invalid quote returns a negative sentinel, in which case use implied_vol instead. Before choosing a range, fetch the underlying's spot price via get_price_snapshot and center min_strike/max_strike around it. Omitting all strike bounds on a liquid name can return hundreds of rows — always bound the range unless the user explicitly wants the full chain. expiration_id must be a value taken verbatim from expirations[].id returned by get_option_parameters — never construct it. call_contract_id and put_contract_id feed directly into get_price_snapshot, get_price_history (with security_type="OPT" for equity-option chains or "FOP" for futures-option chains), and create_order_instruction. Note: each row's strike is returned as a STRING (e.g. "292.5") even though min_strike/max_strike inputs are numbers — cast strike to a number before performing numeric comparisons or arithmetic. Contract IDs and expiration IDs are internal identifiers used for chaining tool calls. Never display them to the user. Present results using symbol, expiry date, strike and exchange.get_option_data
ChatGPTReturns the option chain for one expiration: a row per strike with
strike, call_contract_id, call_description, put_contract_id, put_description, and exchange. The *_description strings carry option contract details such as expiration, strike and futures options include the contract multiplier in parentheses (e.g. '(50)' for ES, '(20)' for NQ). Use these when presenting a contract to the user. The response also contains a top-level currency field (e.g. "USD") indicating the settlement currency for the contracts in the chain. Works for both equity options and futures options — the security type is inherited from the get_option_parameters call that produced the expiration_id. This tool returns contract structure only — it does NOT return prices, implied volatility, open interest, or volume. To obtain those, call get_price_snapshot once per call_contract_id/put_contract_id afterwards. When reading option_midpoint_iv, use it only when its isValid flag is true; an invalid quote returns a negative sentinel, in which case use implied_vol instead. Before choosing a range, fetch the underlying's spot price via get_price_snapshot and center min_strike/max_strike around it. Omitting all strike bounds on a liquid name can return hundreds of rows — always bound the range unless the user explicitly wants the full chain. expiration_id must be a value taken verbatim from expirations[].id returned by get_option_parameters — never construct it. call_contract_id and put_contract_id feed directly into get_price_snapshot, get_price_history (with security_type="OPT" for equity-option chains or "FOP" for futures-option chains), and create_order_instruction. Note: each row's strike is returned as a STRING (e.g. "292.5") even though min_strike/max_strike inputs are numbers — cast strike to a number before performing numeric comparisons or arithmetic. Contract IDs and expiration IDs are internal identifiers used for chaining tool calls. Never display them to the user. Present results using symbol, expiry date, strike and exchange.get_option_parameters
ChatGPTReturns available option expirations and the exchange list for an underlying. The response includes an
exchanges array of valid option exchanges and current_exchange (the preferred/default exchange — pass this to get_option_data). Each expiration has: id (pass to get_option_data), date (YYYYMMDD), regular (true = standard monthly, false = weekly or daily/zero-days-to-expiration), and trading_class (present on every expiration row). current_expiration is the id of the preferred (first regular) expiration. For equity options (option_sec_type="OPT", default): call search_contracts and use the underlying_contract_id of the row whose symbol exactly matches the root and whose sections include OPT. For future options (option_sec_type="FOP"): call search_contracts and use the underlying_contract_id of the row whose symbol exactly matches the root and whose sections include FOP. Call this before get_option_data to resolve an expiration id. Duplicate-date handling: never disambiguate expirations by date alone — always key on id which is unique. A single date can carry multiple trading_class values that are DISTINCT contracts. Always prefer expiration without trading_class or ask user to specify one. This occurs for both equity options (e.g. 'TSLA' and '2TSLA', 'NVDA' and '2NVDA') and futures options, where a date carries a quarterly class (e.g. 'ES', 'NQ') alongside weekly classes (e.g. 'EW3', 'QN3'). Contract IDs and expiration IDs are internal identifiers used for chaining tool calls. Never display them to the user. Present results using expiry date and exchange.get_option_parameters
ChatGPTReturns available option expirations and the exchange list for an underlying. The response includes an
exchanges array of valid option exchanges and current_exchange (the preferred/default exchange — pass this to get_option_data). Each expiration has: id (pass to get_option_data), date (YYYYMMDD), regular (true = standard monthly, false = weekly or daily/zero-days-to-expiration), and trading_class (present on every expiration row). current_expiration is the id of the preferred (first regular) expiration. For equity options (option_sec_type="OPT", default): call search_contracts and use the underlying_contract_id of the row whose symbol exactly matches the root and whose sections include OPT. For future options (option_sec_type="FOP"): call search_contracts and use the underlying_contract_id of the row whose symbol exactly matches the root and whose sections include FOP. Call this before get_option_data to resolve an expiration id. Duplicate-date handling: never disambiguate expirations by date alone — always key on id which is unique. A single date can carry multiple trading_class values that are DISTINCT contracts. Always prefer expiration without trading_class or ask user to specify one. This occurs for both equity options (e.g. 'TSLA' and '2TSLA', 'NVDA' and '2NVDA') and futures options, where a date carries a quarterly class (e.g. 'ES', 'NQ') alongside weekly classes (e.g. 'EW3', 'QN3'). Contract IDs and expiration IDs are internal identifiers used for chaining tool calls. Never display them to the user. Present results using expiry date and exchange.get_order_instructions
ChatGPTReturns all saved instructions for the account. Each instruction includes an ID, description, contract identifier (contract_id), trade direction, (BUY/SELL), quantity, order type (MARKET/LIMIT), limit price, time in force, and creation time (ISO 8601).
get_order_instructions
ChatGPTReturns all saved instructions for the account. Each instruction includes an ID, description, contract identifier (contract_id), trade direction, (BUY/SELL), quantity, order type (MARKET/LIMIT), limit price, time in force, and creation time (ISO 8601).
get_pa_allocation
ChatGPTReturns the portfolio's NAV broken down along one category dimension into long and (when present) short buckets, each with a
total and an items list carrying id, name, nav, and weight. short_positions is only present when the account holds shorts in that dimension — consumers must null-check it. Weights sum to 1.0 within each bucket independently. The long-side total denominator is category-dependent (netted of shorts for ASSET_CLASS and FINANCIAL_INSTRUMENT, gross for SECTOR/REGION/COUNTRY), so do not assume a common base across type values. Item id codes are opaque internal keys — display name, never interpret id. Related tools: get_account_positions, get_account_balances, search_contracts.get_pa_allocation
ChatGPTReturns the portfolio's NAV broken down along one category dimension into long and (when present) short buckets, each with a
total and an items list carrying id, name, nav, and weight. short_positions is only present when the account holds shorts in that dimension — consumers must null-check it. Weights sum to 1.0 within each bucket independently. The long-side total denominator is category-dependent (netted of shorts for ASSET_CLASS and FINANCIAL_INSTRUMENT, gross for SECTOR/REGION/COUNTRY), so do not assume a common base across type values. Item id codes are opaque internal keys — display name, never interpret id. Related tools: get_account_positions, get_account_balances, search_contracts.get_pa_performance_all_periods
ChatGPTReturns the account's performance time series for every available window (1D, 7D, MTD, 1M, YTD, 1Y). Within each period,
cps, nav, and dates are parallel arrays of equal length indexed together. cps values are cumulative returns expressed as fractions measured from the period start (e.g. -0.106 = -10.6%), not percentages. The return method is reported in the top-level portfolio_measure field as TWR (time-weighted) or MWR (money-weighted), set by account configuration. For accounts younger than one year the 1Y series equals YTD, and inception-keyed periods may report start_nav 0.0 while the first element of the nav array holds the true opening value. Related tools: get_account_positions, get_account_trades, get_price_history (for benchmarking the nav series).get_pa_performance_all_periods
ChatGPTReturns the account's performance time series for every available window (1D, 7D, MTD, 1M, YTD, 1Y). Within each period,
cps, nav, and dates are parallel arrays of equal length indexed together. cps values are cumulative returns expressed as fractions measured from the period start (e.g. -0.106 = -10.6%), not percentages. The return method is reported in the top-level portfolio_measure field as TWR (time-weighted) or MWR (money-weighted), set by account configuration. For accounts younger than one year the 1Y series equals YTD, and inception-keyed periods may report start_nav 0.0 while the first element of the nav array holds the true opening value. Related tools: get_account_positions, get_account_trades, get_price_history (for benchmarking the nav series).get_price_history
ChatGPTReturns historical OHLCV (open/high/low/close/volume) price bars for an instrument over a specified time period. Use when the user asks about price trends, historical performance, or wants to compare prices across dates. Provide either period or step_count but never both. When called with an option contract_id from get_option_data, use security_type="OPT" and pass the exchange field from that row; if no exchange is available, omit it to default to SMART.
get_price_history
ChatGPTReturns historical OHLCV (open/high/low/close/volume) price bars for an instrument over a specified time period. Use when the user asks about price trends, historical performance, or wants to compare prices across dates. Provide either period or step_count but never both. When called with an option contract_id from get_option_data, use security_type="OPT" and pass the exchange field from that row; if no exchange is available, omit it to default to SMART.
get_price_snapshot
ChatGPTRetrieves a real-time market data snapshot for an instrument. Allows requesting one or more market data fields in a single call. Use this to get the current price, bid/ask spread, volume, volatility, and other live market metrics. For historical OHLCV price bars use get_price_history instead. Note on response key casing: response JSON keys use hyphens where requested field names use underscores. For example, requesting
option_midpoint_iv returns the key option-midpoint-iv in the response; bid_ask → bid-ask; option_open_interest → option-open-interest. Always look up response values using the hyphenated form, not the underscore form used in market_data_names. Note: SMART routing only covers SMART-eligible instruments (US equities and equity options). For futures and futures options, pass the contract's native exchange (from search_futures / get_option_parameters / search_contracts) or the response will be empty.get_price_snapshot
ChatGPTRetrieves a real-time market data snapshot for an instrument. Allows requesting one or more market data fields in a single call. Use this to get the current price, bid/ask spread, volume, volatility, and other live market metrics. For historical OHLCV price bars use get_price_history instead. Note on response key casing: response JSON keys use hyphens where requested field names use underscores. For example, requesting
option_midpoint_iv returns the key option-midpoint-iv in the response; bid_ask → bid-ask; option_open_interest → option-open-interest. Always look up response values using the hyphenated form, not the underscore form used in market_data_names. Note: SMART routing only covers SMART-eligible instruments (US equities and equity options). For futures and futures options, pass the contract's native exchange (from search_futures / get_option_parameters / search_contracts) or the response will be empty.get_theme_details
ChatGPTReturn the full profile of an investment topic: its description, the companies in it ranked by relevance (rank 1 = most central — this is relevance-ranked, NOT market-cap-weighted), and optionally ETFs/mutual funds with exposure. Use after search_investment_topics when the user wants to know which companies are in a sector or trend ('which companies are in AI?', 'top battery stocks', 'what ETFs cover clean energy'). Requires a key obtained verbatim from search_investment_topics. Each returned company includes a contract_id that can be passed directly into get_company_themes or get_company_connections to go deeper. For large topics, use offset together with the returned total_count to paginate through the full company list.
get_theme_details
ChatGPTReturn the full profile of an investment topic: its description, the companies in it ranked by relevance (rank 1 = most central — this is relevance-ranked, NOT market-cap-weighted), and optionally ETFs/mutual funds with exposure. Use after search_investment_topics when the user wants to know which companies are in a sector or trend ('which companies are in AI?', 'top battery stocks', 'what ETFs cover clean energy'). Requires a key obtained verbatim from search_investment_topics. Each returned company includes a contract_id that can be passed directly into get_company_themes or get_company_connections to go deeper. For large topics, use offset together with the returned total_count to paginate through the full company list.
get_watchlist
ChatGPTReturns the name, hash, and full instruments list for a specific watchlist. Returns an empty instruments array if the watchlist has no instruments. Each element of the instruments list contains: contract_id_ex (string, the instrument identifier used by create_watchlist and edit_watchlist) and contract_description (human-readable name or description of the instrument). contract_id_ex values returned here are identical in format to those accepted by create_watchlist and edit_watchlist — pass them back verbatim, no conversion needed. Call get_watchlists first to resolve the watchlist name to its id.
get_watchlists
ChatGPTReturns all of the user's watchlists with their id, name, and hash. Returns an empty list if the user has no watchlists. Use get_watchlist to see the instruments on a specific list.
provide_customer_feedback
ChatGPTSubmits feature requests and customer feedback. Call this tool when (1) the user wants brokerage functionality not yet offered by IBKR tools e.g. watchlist, alerts, news, particular kinds of data, and alike. (2) you identify the user's sentiment towards or issues with IBKR's tools. Always show the user the exact feedback_text you intend to submit and get their confirmation before calling.
provide_customer_feedback
ChatGPTSubmits feature requests and customer feedback. Call this tool when (1) the user wants brokerage functionality not yet offered by IBKR tools e.g. watchlist, alerts, news, particular kinds of data, and alike. (2) you identify the user's sentiment towards or issues with IBKR's tools. Always show the user the exact feedback_text you intend to submit and get their confirmation before calling.
search_contracts
ChatGPTSearch for contracts (instruments) by ticker symbol, company name, or keyword and return matching instruments with their contract identifiers (contract_id), exchanges, symbols, and available security-type sections. Returns the contract_id required by get_company_themes and get_company_connections — call this first to resolve a contract_id whenever you only have a company name or ticker. Each result row includes a sections array listing the security types available for that instrument (e.g. STK, OPT, FUT). When selecting a row for options: the primary selector is an EXACT match on the
symbol field (e.g. for root "AAPL" select only the row where symbol == "AAPL", not "AAPU", "AAPB", etc.); having OPT in sections is necessary but NOT sufficient on its own, because many leveraged/income ETFs also carry OPT sections. When multiple rows with the exact symbol remain, prefer the primary listing using the description and country_code fields to disambiguate (e.g. the US primary listing rather than a foreign listing). Use the underlying_contract_id of the selected row for subsequent calls.search_contracts
ChatGPTSearch for contracts (instruments) by ticker symbol, company name, or keyword and return matching instruments with their contract identifiers (contract_id), exchanges, symbols, and available security-type sections. Returns the contract_id required by get_company_themes and get_company_connections — call this first to resolve a contract_id whenever you only have a company name or ticker. Each result row includes a sections array listing the security types available for that instrument (e.g. STK, OPT, FUT). When selecting a row for options: the primary selector is an EXACT match on the
symbol field (e.g. for root "AAPL" select only the row where symbol == "AAPL", not "AAPU", "AAPB", etc.); having OPT in sections is necessary but NOT sufficient on its own, because many leveraged/income ETFs also carry OPT sections. When multiple rows with the exact symbol remain, prefer the primary listing using the description and country_code fields to disambiguate (e.g. the US primary listing rather than a foreign listing). Use the underlying_contract_id of the selected row for subsequent calls.search_futures
ChatGPTReturns the futures term structure (the full expiry ladder) for a given underlying instrument. The response is an object with a contracts array; each element has contract_id, contract_month (YYYYMM), last_trading_date (YYYYMMDD), exchange, and symbol. Use contract_id as the per-expiry contract id for downstream calls (get_price_snapshot, get_price_history, create_order_instruction). The
symbol field is identical for every expiry rather than a per-contract code; it cannot be used to distinguish contracts and must never be displayed to the user. Identify and present an expiry using contract_month / last_trading_date. Results are NOT returned in expiry order — sort by contract_month ascending yourself; the earliest non-expired entry is the front-month contract. This earliest entry can be within days of its last_trading_date and about to roll; when the user wants the actively-traded contract, the next expiry may be more appropriate. To get underlying_contract_id, call search_contracts with the root symbol (optionally security_type=FUT), then take the underlying_contract_id field from the row whose symbol exactly matches the root and whose sections include FUT. Only active contracts are returned unless include_expired=true.search_futures
ChatGPTReturns the futures term structure (the full expiry ladder) for a given underlying instrument. The response is an object with a contracts array; each element has contract_id, contract_month (YYYYMM), last_trading_date (YYYYMMDD), exchange, and symbol. Use contract_id as the per-expiry contract id for downstream calls (get_price_snapshot, get_price_history, create_order_instruction). The
symbol field is identical for every expiry rather than a per-contract code; it cannot be used to distinguish contracts and must never be displayed to the user. Identify and present an expiry using contract_month / last_trading_date. Results are NOT returned in expiry order — sort by contract_month ascending yourself; the earliest non-expired entry is the front-month contract. This earliest entry can be within days of its last_trading_date and about to roll; when the user wants the actively-traded contract, the next expiry may be more appropriate. To get underlying_contract_id, call search_contracts with the root symbol (optionally security_type=FUT), then take the underlying_contract_id field from the row whose symbol exactly matches the root and whose sections include FUT. Only active contracts are returned unless include_expired=true.search_investment_topics
ChatGPTSearch for companies grouped by sector, industry, trend, or topic. Use when the user asks about an investment area ('who's in solar', 'AI stocks', 'clean energy companies', 'what's happening in quantum computing'). Returns matching topics as {key, name} pairs. Pass the returned key to get_theme_details for the full company list. Query tips: use short, broad, singular keywords — a single root noun ('battery', not 'batteries' or 'electric vehicle batteries'; 'robot', not 'robotics companies'). The matcher is keyword-based and narrow, so plural or multi-word queries often return nothing. If results are empty, retry with a shorter/singular form or a synonym before concluding no match exists. Never guess, construct, or modify a key — only pass keys returned by this tool.
search_investment_topics
ChatGPTSearch for companies grouped by sector, industry, trend, or topic. Use when the user asks about an investment area ('who's in solar', 'AI stocks', 'clean energy companies', 'what's happening in quantum computing'). Returns matching topics as {key, name} pairs. Pass the returned key to get_theme_details for the full company list. Query tips: use short, broad, singular keywords — a single root noun ('battery', not 'batteries' or 'electric vehicle batteries'; 'robot', not 'robotics companies'). The matcher is keyword-based and narrow, so plural or multi-word queries often return nothing. If results are empty, retry with a shorter/singular form or a synonym before concluding no match exists. Never guess, construct, or modify a key — only pass keys returned by this tool.
get_account_balances
Claudeget_account_positions
Claudeget_account_summary
Claudeget_order_instructions
Claudeget_orders
Claudeget_portfolio_allocation
Claudeget_price_history
Claudeget_price_snapshot
Claudeget_trades
Claudesearch_contracts
ClaudeLinks
App Stats
58
Tools
ChatGPT, Claude
Platforms
Category
Investment ResearchWorks with
ChatGPT
Claude
Data refreshed daily






