TradingData docs
One remote MCP server for market data. It speaks the Streamable HTTP transport with OAuth 2.1, so it works as a connector in Claude and ChatGPT, as an HTTP server in Claude Code, Gemini CLI, Cursor and VS Code, and from any SDK with an API key.
https://mcp.tradingdata.ioWhat the server tells agents
These instructions are sent during the MCP handshake so models use the tools efficiently.
TradingData provides read-only market data for AI agents: stocks, ETFs, indices, crypto, commodities, FX, SEC filings and macro series. Symbols: stocks/ETFs by ticker (AAPL, SPY); indices with caret (^GSPC, ^IXIC, ^VIX, ^TNX = US 10Y yield); international listings with an exchange suffix (SAP.DE, ASML.AS, MC.PA, SAN.MC, VOD.L, NESN.SW, 7203.T); crypto by ticker (BTC, ETH, SOL; quoted in USD); commodities by name (gold, oil, natural gas) or futures code (GC=F, CL=F, NG=F); FX as EURUSD or EUR/USD. Use search_symbols when unsure. Efficiency: get_market_overview answers broad "how are markets" questions in one call. get_quotes accepts up to 50 symbols; batch instead of looping. get_ohlcv with summary_only=true returns statistics without candles. Company fundamentals, filings and insider trades come from SEC filings and cover SEC registrants (mostly US-listed). Quarterly cash flows are differenced from year-to-date totals and marked derived; get_segment_financials gives revenue by segment; get_analyst_estimates gives consensus EPS, targets and surprises; get_earnings_release has the KPIs and guidance companies publish outside XBRL (users, ARPU, deliveries); get_earnings_calendar has report dates. read_sec_filing is paged: follow nextOffset. Also available: a full ratio sheet with PEG, EV multiples, ROIC, DSO and liquidity (get_financial_ratios), a stock screener (screen_stocks), parsed KPIs and guidance from the latest release (get_earnings_kpis), a macro dashboard (get_macro_snapshot), macro series search and the economic release calendar (search_macro_series, get_macro_calendar), data revisions since first print (get_macro_revisions), several macro series aligned across countries (compare_macro_series), every headline number of one release and what came out recently (get_macro_release, get_macro_updates), state-level US data (get_regional_data), metric series per fiscal period (get_financial_metrics), 10-K items such as risk factors and MD&A (get_filing_items), 5%+ holders and insider holdings (get_beneficial_owners), index members (get_index_constituents), government bond yields and curves (get_bond_yields), full ETF and fund portfolios (get_etf_holdings), side-by-side stock comparison (compare_stocks), option chains with greeks (get_options_chain), crypto perpetuals and options (get_crypto_derivatives, get_crypto_options), on-chain oracle prices and tokenized stocks (get_oracle_prices, get_tokenized_stock), DeFi and on-chain metrics (get_defi_stats, get_onchain_metrics), futures positioning (get_cot_positioning) and short interest (get_short_interest). Timestamps are UTC. Prices may be delayed (up to 15 minutes for some exchanges; crypto is near real time). Responses are compact JSON. Nothing returned is investment advice.
Connect an app
Apps with OAuth support only need the URL. Others take an API key from your dashboard as a Bearer token.
Claude web and desktop (custom connector)
- Open Settings, then Connectors, and choose Add custom connector.
- Name it TradingData and paste the URL below. Leave the OAuth client fields empty; Claude registers itself automatically.
- Click Connect. You will land on this site to approve access, then be sent back. Enable the connector in a chat from the tools menu.
https://mcp.tradingdata.ioCustom connectors are available on Claude’s paid plans and for Team and Enterprise workspaces where an admin allows them.
Claude Code
Add the server once; Claude Code runs the OAuth flow in your browser the first time you use it. Type /mcp inside Claude Code to check status or sign in again.
claude mcp add --transport http tradingdata https://mcp.tradingdata.ioOn a machine without a browser, use an API key instead:
claude mcp add --transport http tradingdata https://mcp.tradingdata.io --header "Authorization: Bearer td_your_api_key"Replace td_your_api_key with a key from your dashboard.
Claude API (Messages API MCP connector)
Let the API call the tools server-side. Pass the server and a toolset, with an API key as the authorization token.
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic();
const response = await client.beta.messages.create({
model: "claude-opus-5-5",
max_tokens: 16000,
betas: ["mcp-client-2025-11-20"],
mcp_servers: [{ type: "url", url: "https://mcp.tradingdata.io", name: "tradingdata", authorization_token: "td_your_api_key" }],
tools: [{ type: "mcp_toolset", mcp_server_name: "tradingdata" }],
messages: [{ role: "user", content: "How did gold and bitcoin do this month?" }],
});Replace td_your_api_key with a key from your dashboard.
Authentication
Two methods, same endpoint. The server answers unauthenticated requests with 401 and a WWW-Authenticate header pointing at the protected resource metadata, as the MCP authorization specification requires.
OAuth 2.1 (connectors)
- Discovery at /.well-known/oauth-protected-resource and /.well-known/oauth-authorization-server.
- Dynamic client registration (RFC 7591) at /oauth/register. Public clients use token_endpoint_auth_method none.
- Authorization code flow with PKCE S256 at /oauth/authorize; the user signs in and approves on this site.
- Tokens from /oauth/token: access tokens last 8 hours, refresh tokens 90 days and rotate on use. Scope: market:read.
- Revoke from the dashboard (Connected apps) or at /oauth/revoke.
API keys
Keys start with td_ and are shown once when created. Send them as Authorization: Bearer td_… Each key is tracked separately in usage and can be revoked independently.
Tools
All tools are read-only and idempotent. Responses are compact JSON in a single text block; errors come back as isError results with a message the model can act on. This reference is generated from the running server.
Prices
get_market_overviewIndices, yields, dollar and FX, commodities, crypto majors, Fear & Greed in one call.
One-call briefing of global markets: major equity indices, US Treasury yields, dollar index and main FX pairs, key commodities, and large-cap crypto with total crypto market cap, BTC dominance and the Fear & Greed index. Call this first for 'how are markets doing' questions, then drill down with other tools.
| Parameter | Description |
|---|---|
groupsstring[] of indices | rates | forex | commodities | crypto | Subset of groups to include; default all of indices, rates, forex, commodities, crypto |
get_quotesPrice, change, day and 52-week range for up to 50 symbols across every asset class.
Latest price, change, day range, volume and 52-week range for up to 50 symbols in one call across stocks, ETFs, indices, crypto, commodities and forex, US and international. Symbols: AAPL, SPY, ^GSPC, BTC, gold or GC=F, EURUSD; international listings take an exchange suffix (SAP.DE, ASML.AS, MC.PA, SAN.MC, VOD.L, NESN.SW, 7203.T, 0700.HK). Prefer one batched call over many.
| Parameter | Description |
|---|---|
symbolsrequiredstring[] | Tickers or names, e.g. ['AAPL','BTC','gold','^VIX','EURUSD'] |
get_ohlcvCandles from 1-minute to monthly, with return, volatility and drawdown statistics.
Historical candles for one symbol as compact columns [time, open, high, low, close, volume] plus summary statistics (period return, high/low, average volume, annualized volatility, max drawdown). Set summary_only=true when you only need the statistics. Intraday intervals (1m–1h) are limited to recent ranges (1m: 7 days, 5m–30m: 60 days, 1h: 2 years).
| Parameter | Description |
|---|---|
symbolrequiredstring | One symbol, e.g. 'NVDA', 'BTC', 'CL=F', '^GSPC' |
interval1m | 5m | 15m | 30m | 1h | 1d | 1wk | 1mo = "1d" | |
range1d | 5d | 1mo | 3mo | 6mo | 1y | 2y | 5y | 10y | ytd | max = "3mo" | Lookback window; ignored when start is given |
startstring | Start date YYYY-MM-DD (UTC) |
endstring | End date YYYY-MM-DD (UTC), defaults to today |
limitinteger = 300 | Maximum candles returned (most recent kept) |
summary_onlyboolean = false |
search_symbolsResolve names to tickers for stocks, ETFs, indices, crypto, futures and FX.
Find the ticker for a company, ETF, index, crypto asset, commodity or currency pair, on US and international exchanges (European and Asian listings come back with their exchange suffix, e.g. NESN.SW, SAP.DE). Returns symbol, name, asset class and exchange. Use when you are unsure of the exact symbol; otherwise call get_quotes directly.
| Parameter | Description |
|---|---|
queryrequiredstring | Name or partial ticker, e.g. 'apple', 'gold', 'solana', 'euro dollar' |
limitinteger = 8 |
get_commoditiesEnergy, metals, agriculture and livestock futures with daily change, plus spot metals.
Front-month futures prices and daily change for energy (WTI, Brent, natural gas, gasoline, heating oil), metals (gold, silver, platinum, palladium, copper, aluminum), agriculture (corn, wheat, soybeans, coffee, sugar, cocoa, cotton, orange juice, lumber) and livestock. For history of one commodity use get_ohlcv with its futures code, e.g. GC=F.
| Parameter | Description |
|---|---|
groupsstring[] of energy | metals | agriculture | livestock | Default: all groups |
get_options_chainStrikes with bid/ask, IV, greeks, open interest, max pain and expected move, delayed 15 minutes.
Option chain for a US stock, ETF or index (SPX, NDX, RUT, VIX), delayed 15 minutes: strikes near spot with bid, ask, last, implied volatility, greeks, open interest and volume, plus per-expiry max pain, expected move, put/call ratios and totals. Defaults to the nearest 3 expirations within 10% of spot; narrow with expiration, type or strike_range_pct to save tokens.
| Parameter | Description |
|---|---|
symbolrequiredstring | e.g. 'AAPL', 'SPY', 'SPX', 'VIX' |
expirationstring | One expiration date YYYY-MM-DD |
expirationsinteger = 3 | Number of nearest expirations when expiration is not given |
strike_range_pctnumber = 10 | Include strikes within this percent of spot |
typecall | put | both = "both" | |
max_rows_per_expiryinteger = 60 |
screen_stocksFilter US, European, UK, Asian or global stocks by size, valuation, growth, margins, returns and sector, sorted by any metric.
Screen stocks by numeric filters (size, valuation, growth, margins, returns, performance, volatility), GICS sector, industry and market, sorted by any metric. Universes: us, europe, uk, asia, global. Returns up to 100 matches with price, market cap, P/E, revenue growth, net margin, dividend yield, YTD return, the metrics used and each company's GICS-style sector.
| Parameter | Description |
|---|---|
universeus | europe | uk | asia | global = "us" | |
filtersobject[] = [] | e.g. [{metric:'market_cap',op:'>',value:10000000000},{metric:'revenue_growth',op:'>',value:20}]. Market cap, revenue, income and cash flow are in the listing currency; margins, growth, yields and returns in percent |
sectorstring | GICS sector: Communication Services, Consumer Discretionary, Consumer Staples, Energy, Financials, Health Care, Industrials, Information Technology, Materials, Real Estate, Utilities |
industry_containsstring | Substring of the industry label, e.g. 'Semiconductor' |
countrystring | Country of the company, e.g. 'United States', 'Germany' |
sort_bymarket_cap | price | change_pct | volume | avg_volume_30d | pe | ps | pb | ev_ebitda | dividend_yield | eps | revenue | net_income | ebitda | free_cash_flow | revenue_growth | eps_growth | gross_margin | operating_margin | net_margin | roe | roa | debt_to_equity | beta | perf_1w | perf_1m | perf_3m | perf_6m | perf_ytd | perf_1y | perf_5y | volatility_1m | rsi | employees = "market_cap" | |
sort_orderasc | desc = "desc" | |
limitinteger = 25 | |
include_fundsboolean = false | Include ETFs and funds |
Crypto
get_crypto_marketsRanked table with market cap, volume, supply, multi-horizon returns and categories.
Ranked table of crypto assets by market cap with price, 1h/24h/7d/30d change, market cap, FDV, 24h volume, supply and all-time high. Filter by asset ids or a category slug (e.g. 'layer-1', 'meme-token', 'decentralized-finance-defi', 'stablecoins', 'artificial-intelligence').
| Parameter | Description |
|---|---|
limitinteger = 25 | |
pageinteger = 1 | |
idsstring[] | Asset ids such as 'bitcoin', 'ethereum', 'solana' |
categorystring | |
ordermarket_cap_desc | volume_desc | market_cap_asc = "market_cap_desc" |
get_crypto_assetProfile, links, supply and all-time high/low for one asset.
Profile of one crypto asset: description, categories, links, price, 24h/7d/30d/1y change, market cap, FDV, volume, supply and all-time high/low. Accepts a ticker ('SOL'), a name ('solana') or an asset id.
| Parameter | Description |
|---|---|
assetrequiredstring |
get_defi_statsTVL by chain and protocol, stablecoin supply, DEX volumes, fees, revenue and yields.
DeFi data. view='chains': TVL by chain. 'protocols': TVL, 1d/7d change, market cap to TVL (filter by query, category such as 'Lending', 'Dexs', 'Liquid Staking', or chain). 'stablecoins': supply and 1d/7d/30d changes. 'dexs': 24h/7d volumes by DEX. 'fees' or 'revenue': 24h/7d/30d by protocol. 'yields': pools with APY and TVL (filters stablecoin_only, chain, symbol, project; sort apy or tvl).
| Parameter | Description |
|---|---|
viewrequiredchains | protocols | stablecoins | dexs | fees | revenue | yields | |
querystring | Name filter for protocols, dexs, fees, revenue |
categorystring | Protocol category, e.g. 'Lending' |
chainstring | Chain name, e.g. 'Ethereum', 'Solana', 'Base' |
symbolstring | Yields: token in the pool, e.g. 'USDC', 'ETH' |
projectstring | Yields: project slug, e.g. 'aave-v3' |
stablecoin_onlyboolean = false | |
min_tvl_usdnumber | |
sortapy | tvl = "apy" | |
limitinteger = 20 |
get_crypto_derivativesFunding, basis, open interest and long/short positioning for a coin.
Perpetual-swap snapshot for a coin (BTC, ETH, SOL…): mark and index price with basis, 24h volume, funding rate (last, annualized, 7- and 30-day averages, 8-hour history), open interest with 1/7/30-day change and history, and long/short positioning. Pair with get_crypto_options for the full derivatives picture.
| Parameter | Description |
|---|---|
symbolrequiredstring | Coin ticker, e.g. 'BTC', 'ETH', 'SOL' |
get_crypto_optionsVolatility index, per-expiry IV, skew, put/call OI and max pain.
Options market overview for BTC or ETH (also other listed coins): index price, 30-day volatility index with week- and month-ago values, total open interest and 24h volume by calls and puts, and per expiry: ATM implied volatility, the one-sigma move it implies, 10%-OTM put/call IV skew, put/call open-interest ratio, max pain and the strikes with most open interest.
| Parameter | Description |
|---|---|
currencystring = "BTC" | 'BTC' or 'ETH' (others if listed) |
expiriesinteger = 6 | How many of the nearest expiries to detail |
get_onchain_metricsActive addresses, transactions, hash rate, exchange flows, supply and MVRV by day.
Daily on-chain and market metrics for major assets (BTC, ETH, SOL, XRP, LTC, ADA, DOGE, LINK, USDT, USDC…): price, market cap, MVRV, active addresses, transactions, transfers, hash rate, fees, issuance and supply. Returns the change over the window plus a compact daily table; omit metrics for a sensible default set.
| Parameter | Description |
|---|---|
assetrequiredstring | Asset ticker, e.g. 'btc', 'eth' |
metricsstring[] | Metric ids: PriceUSD (reference price), CapMrktCurUSD (market cap), CapMVRVCur (MVRV), AdrActCnt (active addresses), AdrBalCnt (addresses with a balance), TxCnt (transactions), TxTfrCnt (transfers), HashRate (TH/s for BTC), FeeTotNtv (fees, native units), IssTotUSD and IssTotNtv (new issuance), SplyCur (current supply) |
daysinteger = 30 |
On-chain
get_oracle_pricesOn-chain oracle feeds for stocks, ETFs, crypto, commodities and FX, read live from five chains.
On-chain oracle price feeds for a symbol, read live on Ethereum, Arbitrum, Base, Optimism and BNB Chain, with price, last update, staleness and heartbeat. Covers US equities and ETFs, crypto, commodities (XAU, XAG, WTI, BRENT) and FX. Shows what DeFi contracts price an asset at, and gives equity prices outside exchange hours via 24/5 feeds.
| Parameter | Description |
|---|---|
symbolrequiredstring |
get_tokenized_stockxStocks on Solana and Ondo tokens on Ethereum with DEX price, liquidity and premium to the share.
On-chain markets for a tokenized US stock or ETF: the Solana xStock with its DEX price, 24h change, liquidity, holders, market cap and premium versus the underlying share price, plus the deepest DEX pairs on any chain including Ondo tokens on Ethereum. Returns the issuer's reference stock price when available.
| Parameter | Description |
|---|---|
tickerrequiredstring | Stock or ETF ticker, e.g. 'TSLA', 'NVDA', 'SPY' |
Companies
get_company_profileSEC registrant data plus a trailing-twelve-month snapshot with valuation ratios.
SEC registrant profile for a US-listed company with a trailing-twelve-month snapshot (revenue, margins, EBITDA, net income, EPS, cash flows, free cash flow, cash, debt, net debt, enterprise value, EV multiples, ROIC, 3/5-year growth, shares, market cap, P/E, P/S, P/B, FCF yield) and its five most recent filings. For consensus use get_analyst_estimates; for segments get_segment_financials.
| Parameter | Description |
|---|---|
symbolrequiredstring | Ticker, CIK or company name |
get_financial_statementsIncome, balance sheet and cash flow from XBRL, annual or quarterly.
Income statement, balance sheet or cash flow statement from SEC XBRL filings, annual or quarterly, as metric rows aligned to period columns, most recent first. Values in USD; shares and EPS as reported. Cash-flow quarters are differenced from year-to-date totals and Q4 derived from the annual report (marked derived). Free cash flow = operating cash flow − capex.
| Parameter | Description |
|---|---|
symbolrequiredstring | Ticker, CIK or company name |
statementincome | balance | cash_flow = "income" | |
periodannual | quarterly = "annual" | |
limitinteger = 5 | Number of periods |
get_sec_filingsFiling list with form, date, 8-K items and document links.
Recent SEC filings for a company with form type, filing date, period, description, 8-K item codes with their meaning, and direct URLs. Filter by form (10-K, 10-Q, 8-K, 4, 13F-HR, S-1, DEF 14A, SC 13D...). Pass a document URL to read_sec_filing to read its text.
| Parameter | Description |
|---|---|
symbolrequiredstring | Ticker, CIK or company name |
formsstring[] | Form types to include, e.g. ['10-K','10-Q','8-K']; default all |
limitinteger = 20 | |
sincestring | Only filings on or after this date |
read_sec_filingPaged plain text of any filing, with 10-K section extraction (risk factors, MD&A).
Plain text of a filing document (10-K, 10-Q, 8-K, proxy, S-1, exhibits) in pages: give the document url from get_sec_filings, or symbol plus accession. For a 10-K or 10-Q a section can be requested by item number. Use offset to continue when has_more is true.
| Parameter | Description |
|---|---|
urlstring | Document URL on www.sec.gov |
symbolstring | Ticker or CIK (with accession) |
accessionstring | Accession number like 0000320193-25-000079 |
sectionstring | 10-K/10-Q item to extract: 1 business, 1A risk factors, 1C cybersecurity, 2 properties, 3 legal, 5 market for equity, 7 MD&A, 7A market risk, 8 financial statements, 9A controls; for a 10-Q items are in Part I/II ('2' is MD&A) |
offsetinteger = 0 | Character offset to start from |
max_charsinteger = 15000 |
search_sec_filingsFull-text search across all SEC filings since 2001.
Full-text search across all SEC filings since 2001. Use quotes for exact phrases. Filter by form types, date range and entity name. Returns entity, form, filing date and document URL for read_sec_filing. Note: SEC may block this endpoint from some server regions.
| Parameter | Description |
|---|---|
queryrequiredstring | Search text, e.g. '"going concern"' or 'tariff impact' |
formsstring[] | |
fromstring | |
tostring | |
entitystring | Company name filter |
pageinteger = 1 |
get_insider_transactionsForm 4 trades with prices, holdings and per-insider totals.
Recent insider trades for a company parsed from Form 4 filings: owner, role, transaction type (open-market purchase/sale, grant, option exercise, tax withholding, gift), shares, price, value and holdings after the trade. Open-market purchases (code P) and sales (code S) are the signal; grants and withholding are routine.
| Parameter | Description |
|---|---|
symbolrequiredstring | Ticker, CIK or company name |
max_filingsinteger = 12 | How many recent Form 4 filings to parse |
onlyall | open_market = "all" | open_market keeps only priced purchases (P) and sales (S); grants, withholding, gifts and conversions have no price |
include_derivativesboolean = false | Also return Table II rows: option grants and exercises, RSU vesting, warrants, with exercise price, vesting and expiry |
get_short_interestShares short, days to cover and history, twice a month.
Consolidated short interest for a US-listed stock or ETF, published twice a month: shares short, change versus the prior report, days to cover, average daily volume, the year-ago level and recent history. Divide by sharesOutstanding from get_company_profile for percent of shares.
| Parameter | Description |
|---|---|
symbolrequiredstring | |
periodsinteger = 8 |
get_analyst_estimatesConsensus EPS, price targets, ratings and earnings surprises.
Sell-side consensus for a US-listed stock: mean rating and analyst count, price targets (low, average, high) with buy/hold/sell counts and six months of rating history, consensus EPS by quarter and fiscal year with revisions, reported EPS versus consensus with surprise percent, and estimate momentum versus a week and a month ago.
| Parameter | Description |
|---|---|
symbolrequiredstring | Ticker, e.g. 'META' |
get_segment_financialsRevenue and operating income by reportable segment from the latest filing.
Revenue, operating income and other figures by reportable segment from the inline XBRL of the latest 10-K or 10-Q (Meta's Family of Apps versus Reality Labs, Amazon's AWS…), with breakdowns inside a segment when tagged. Periods are those of that filing. Companies that disclose segments only in text return no rows; use read_sec_filing for the MD&A.
| Parameter | Description |
|---|---|
symbolrequiredstring | Ticker, CIK or company name |
formlatest | 10-K | 10-Q = "latest" | Which filing to read |
get_financial_ratiosForty-plus trailing ratios: valuation with PEG and EV multiples, margins, ROIC, DSO/DIO/DPO, liquidity, leverage, per-share and growth.
Forty-plus trailing-twelve-month ratios for one company from its SEC filings and current price: valuation (P/E, PEG, EV/EBITDA, FCF yield…), profitability (margins, ROE, ROA, ROIC), efficiency (DSO, DIO, DPO, cash conversion cycle), liquidity, leverage, per-share figures and growth (YoY and 3/5-year CAGRs), plus the GICS-style sector. US and foreign SEC filers; reporting currency.
| Parameter | Description |
|---|---|
symbolrequiredstring | Ticker, CIK or company name |
get_earnings_kpisHeadline table, operating KPIs, non-GAAP measures and parsed guidance ranges from the latest release.
Structured reading of the latest earnings release: the headline results table (current, prior year, change), the operating KPIs the company highlights (users, deliveries, subscribers, capex…) with year-over-year change, non-GAAP measures and parsed guidance (metric, period, range). Heuristic extraction: every item keeps its source sentence for verification.
| Parameter | Description |
|---|---|
symbolrequiredstring | Ticker, CIK or company name |
get_financial_metricsGrowth, margins, cash flow, leverage and returns per fiscal period, annual or quarterly, for US and foreign filers.
Analyst metrics per fiscal period (annual or quarterly) from SEC XBRL filings, for US and foreign issuers: revenue and growth, margins, SG&A split, net income, EPS, cash flows, free cash flow, R&D, SBC, D&A, dividends, buybacks, shares, cash, debt and net debt, equity, ROE, ROA, ROIC, plus 3- and 5-year CAGRs; quarterly rows add trailing-twelve-month figures. In the reporting currency.
| Parameter | Description |
|---|---|
symbolrequiredstring | Ticker, CIK or company name |
periodannual | quarterly = "annual" | |
limitinteger = 8 | Number of periods, most recent first |
get_filing_itemsRisk factors, MD&A and any other item of the latest 10-K or 10-Q, several in one call.
Text of specific items of a company's latest 10-K or 10-Q, several in one call (for example risk factors and MD&A), trimmed to max_chars each, plus the items detected in the document. For other filings or to page through a long item use read_sec_filing.
| Parameter | Description |
|---|---|
symbolrequiredstring | Ticker, CIK or company name |
form10-K | 10-Q = "10-K" | |
itemsstring[] = ["7"] | Item numbers. 10-K: 1 business, 1A risk factors, 1C cybersecurity, 2 properties, 3 legal proceedings, 7 MD&A, 7A market risk, 8 financial statements, 9A controls. 10-Q: 2 MD&A, 3 market risk, 4 controls, 1A risk factors |
max_charsinteger = 12000 | Characters per item |
fiscal_yearinteger | Pick the report for this fiscal year (10-K) instead of the latest |
get_beneficial_owners5%+ holders from Schedule 13D/13G and insiders' latest holdings from Form 4.
Who owns the company: 5%+ holders from their latest Schedule 13D/13G (holder, percent, shares, form and date; 13D marks active intent, 13G a passive stake), plus insiders' latest holdings from Form 4. Holders amended to 0% are listed as exited. For institutional 13F positions use get_institutional_holders.
| Parameter | Description |
|---|---|
symbolrequiredstring | Ticker, CIK or company name |
max_filingsinteger = 40 | Schedule 13D/13G filings to read, newest first |
get_index_constituentsMembers and weights of the S&P 500, Nasdaq-100, Dow, Russell, Euro Stoxx 50, MSCI and sector indices.
Constituents and weights of a stock index from the fund that tracks it: daily issuer portfolios for the S&P 500, Dow, S&P MidCap 400, Euro Stoxx 50 and S&P sectors; latest SEC reports for the Nasdaq-100, Russell, S&P 600 and MSCI; the closest country fund for FTSE 100, DAX, CAC 40, IBEX 35, Nikkei 225 and Hang Seng (marked proxy). Returns weights, concentration, a breakdown and the freshness.
| Parameter | Description |
|---|---|
indexrequiredstring | Index name or symbol, e.g. 'S&P 500', '^NDX', 'Euro Stoxx 50', 'semiconductors' |
limitinteger = 50 | Largest constituents to return |
compare_stocksValuation, growth, margins, returns and analyst targets side by side for up to ten stocks on any exchange.
Side-by-side comparison of 2 to 10 stocks or ETFs on any exchange: price versus the 52-week high, market cap, valuation, growth (with 3/5-year CAGRs for SEC registrants), margins, leverage, ROE, ROIC, returns from one week to five years and analyst consensus for US names, with a 'leaders' map per metric. Trailing twelve months in each listing's currency.
| Parameter | Description |
|---|---|
symbolsrequiredstring[] | 2 to 10 tickers, e.g. ['NVDA','AMD','ASML.AS'] |
get_etf_holdingsEvery position of a US ETF or mutual fund from its SEC portfolio report, with weights and breakdowns.
Everything a US-registered ETF or mutual fund holds: report date, assets, breakdowns by asset category, country and issuer type, concentration and the largest positions with weight, value and identifiers. SPDR funds (SPY, DIA, MDY, FEZ, sector funds) use the issuer's daily portfolio; others the latest SEC portfolio report (quarterly, up to 60 days' lag). Commodity trusts (GLD) are not covered.
| Parameter | Description |
|---|---|
symbolrequiredstring | Fund ticker, e.g. 'QQQ' |
limitinteger = 25 | Largest positions to return |
categorystring | Only positions of one asset category code from the breakdown, e.g. EC (common equity), DBT (debt), STIV (cash) |
get_earnings_releaseLatest press release with KPIs, guidance and commentary, highlights first.
The latest earnings press release as plain text, captured from newswires within seconds of publication and from SEC filings (8-K Exhibit 99.1; Form 6-K for foreign issuers): headline numbers, the KPIs the company reports (users, ARPU, deliveries, segments), guidance and commentary. Returns highlights plus paged full text; follow nextOffset. Non-GAAP KPIs live here, not in XBRL.
| Parameter | Description |
|---|---|
symbolrequiredstring | Ticker, CIK or company name |
offsetinteger = 0 | |
limitinteger = 20000 | Characters per page |
get_dividendsYield, payout, next dates and distribution history.
Dividend profile and history for a US-listed stock or ETF: last ex-dividend and payment dates, cadence, estimated next ex-date, yield, annualized dividend, payout ratio, trailing cash per share and past distributions. `source` is 'provider' (feed with ex-dates) or 'sec_filings' (declared per share by fiscal period) when the feed has nothing for the stock.
| Parameter | Description |
|---|---|
symbolrequiredstring | |
limitinteger = 12 | Past distributions to return |
get_institutional_holders13F ownership, position changes and the largest holders.
Institutional ownership from 13F filings for a US-listed stock: percent of the listed share class held by institutions, number of holders, shares held, how many increased, decreased, opened or closed positions last quarter, and the largest holders with shares, quarterly change and value. Dual-class companies: counts cover the listed class only.
| Parameter | Description |
|---|---|
symbolrequiredstring | |
limitinteger = 15 | Largest holders to return |
get_earnings_calendarWho reports when, with consensus EPS; next report dates by symbol.
Who reports when. Give a date range (up to 14 days) for every US company scheduled to report, with timing (before open / after close), fiscal quarter, consensus EPS and estimate count; or give symbols to find their next scheduled reports in the coming weeks.
| Parameter | Description |
|---|---|
fromstring | Start date YYYY-MM-DD (defaults to today) |
daysinteger = 5 | |
symbolsstring[] | Only these tickers; without a date range the next 45 days are searched |
Macro
search_macro_seriesFind any of 800,000+ US and international economic series by description, with units and frequency.
Find macro and economic series by description across 800,000+ US and international series (statistics, central-bank rates, prices, employment, trade, housing, money, markets), most popular first, with id, title, units, frequency, seasonal adjustment and coverage. Then call get_macro_series with the id.
| Parameter | Description |
|---|---|
queryrequiredstring | Words from the series title, e.g. 'unemployment rate spain', 'ECB deposit rate', 'Japan CPI', 'Germany 10-year yield', 'US bank deposits' |
limitinteger = 10 | |
frequencyd | w | m | q | a | Only series at this frequency |
get_macro_calendarUpcoming CPI, payrolls, GDP, PCE, FOMC and other scheduled releases with dates.
Scheduled economic data releases over the coming days (or any window): CPI, payrolls, GDP, PCE, retail sales, FOMC decisions, jobless claims, JOLTS, industrial production, housing, durable goods, consumer sentiment, trade, Fed balance sheet and more, with the date and what each release covers. Set major_only=false to list every release in the database's calendar (hundreds).
| Parameter | Description |
|---|---|
daysinteger = 14 | Days ahead from the start date |
startstring | Start date (default today) |
major_onlyboolean = true |
get_macro_snapshotRates, curve, inflation, growth, labour, credit and market gauges with latest, previous and year-ago prints.
The macro picture in one call: policy and market rates, inflation, growth and activity, labour, money and credit, market gauges, inflation expectations and recession risk. Each indicator carries its latest print with date, the previous print, the year-ago value and the change.
| Parameter | Description |
|---|---|
groupsstring[] | Only these groups (default all): policy and rates, inflation, growth and activity, labour, money and credit, markets, inflation expectations, recession risk |
get_macro_revisionsFirst print, every revision and the current figure for payrolls, GDP, CPI and any series with a publication history.
How a macro series has been revised since first publication: for each recent period the first print, every revision with its date and the current value, plus the period change as first reported versus now (the headline payrolls revision; GDP's advance, second and third estimates) and a count of upward and downward revisions. Works for any series with a publication history.
| Parameter | Description |
|---|---|
series_idrequiredstring | Series id, e.g. 'PAYEMS' (payrolls), 'GDPC1' (real GDP), 'A191RL1Q225SBEA' (real GDP growth, annualized), 'RSAFS' (retail sales), 'ICSA' (initial claims), 'INDPRO' |
limitinteger = 12 | Most recent periods to cover |
compare_macro_seriesUp to eight series aligned on one date axis, across countries or indicators, with transformations and rebasing.
Two to eight macro series on one date axis: unemployment or inflation across countries, government yields, GDP growth, CPI against the Fed funds rate. Mixed frequencies are aggregated at the source to the coarsest unless one is given; optional transformation and rebasing to 100. Returns metadata and a summary per series plus the aligned table. Find ids with search_macro_series.
| Parameter | Description |
|---|---|
series_idsrequiredstring[] | Series ids to align, e.g. ['UNRATE','LRHUTTTTDEM156S','LRHUTTTTESM156S']. International ids follow patterns such as IRLTLT01DEM156N (Germany 10-year yield, monthly), LRHUTTTTESM156S (Spain unemployment rate), NAEXKP01GBQ657S (UK real GDP growth, q/q) |
unitslevel | change | pct_change | yoy_change | yoy_pct | annualized_pct | log = "level" | Transformation applied to every series at the source |
frequencyd | w | m | q | a | Align every series to this frequency (default: the coarsest among them); a series already coarser keeps its own |
aggregationavg | sum | eop = "avg" | How finer series are aggregated: average, sum or end of period |
startstring | Only observations on or after this date |
endstring | Only observations on or before this date |
rebaseboolean = false | Index every series to 100 at the first date where all have a value (levels only) |
limitinteger = 60 | Most recent rows to return |
get_macro_releaseEvery headline series of CPI, payrolls, GDP, PCE or any release, with previous, change and the next publication date.
One economic release in full: its most-followed series with latest print, previous, change, year over year and last update, plus the last and next publication dates. Accepts the release name, an alias (CPI, payrolls, GDP, PCE, retail sales, PPI, JOLTS, claims, FOMC, housing starts…) or the id from get_macro_calendar.
| Parameter | Description |
|---|---|
releaserequiredstring | Name, alias or numeric id, e.g. 'CPI', 'Employment Situation', 'GDP', 'PCE', '50' |
series_limitinteger = 8 | Most-followed series to include |
get_macro_updatesWhat came out over the last days and what it showed, plus the next scheduled releases.
What macro data came out over the last days and what it showed: each release (CPI, payrolls, GDP, PCE, retail sales, claims, JOLTS, housing…) with its headline series (latest, previous, change, year over year), newest first, followed by the next scheduled releases. major_only=false includes every release in the calendar.
| Parameter | Description |
|---|---|
daysinteger = 7 | Look back this many days |
series_per_releaseinteger = 4 | |
major_onlyboolean = true |
get_regional_dataUnemployment, employment, house prices, GDP, income and population for every state, ranked with changes.
One indicator for every US state and DC in a single call, ranked, with the change from a year earlier or the previous period and the national figure where one exists: unemployment, employment, house prices, real GDP, income, population, building permits, homeownership, or any state-level series id used as the template of its group.
| Parameter | Description |
|---|---|
indicatorunemployment_rate | nonfarm_employment | house_prices | real_gdp | per_capita_income | median_household_income | population | building_permits | homeownership | Preset: unemployment_rate = Unemployment rate (%); nonfarm_employment = Nonfarm employment (thousands); house_prices = All-transactions house price index (1980 Q1 = 100); real_gdp = Real GDP (millions of chained 2017 dollars); per_capita_income = Per capita personal income (dollars); median_household_income = Real median household income (dollars); population = Resident population (thousands); building_permits = New private housing units authorized by building permits (units); homeownership = Homeownership rate (%). Or give series_id |
series_idstring | Any state-level series id as the template of its group when indicator is omitted, e.g. 'TXUR' (unemployment rate), 'NYSTHPI' (house prices), 'FLNA' (nonfarm employment) |
datestring | Period to show (default: latest available); any date inside the period works |
compareyear_ago | previous | none = "year_ago" | Comparison period for the change columns |
sortvalue_desc | value_asc | change_desc | change_asc | name = "value_desc" | |
limitinteger = 60 |
get_bond_yieldsUS Treasury curve with moves and spreads, TIPS breakevens, and 10-year yields for 18 countries.
Government bond yields in one call: the full US Treasury par curve with 1-day to 1-year moves, shape and 2s10s/3m10s/5s30s spreads; TIPS real yields and breakevens; 10-year (and 2-year where quoted) yields for 18 countries with spreads to Bunds and Treasuries; quoted curves for the UK, Germany, Japan, France, Italy and Spain; optional daily US history. Yields in percent, changes in basis points.
| Parameter | Description |
|---|---|
scopeall | us | global = "all" | |
history_monthsinteger = 0 | Months of daily US 2Y/10Y/30Y closes to include (0 = none) |
get_macro_seriesCPI, unemployment, Fed funds, yields, GDP, M2 and thousands of macro series.
Observations, metadata and a latest/previous/year-ago summary for any of 800,000+ US and international macro series (CPI, GDP, rates, employment, money, trade, housing), with optional source-side transformations (change, % change, year over year, annualized) and frequency aggregation. Find ids with search_macro_series; values are as published.
| Parameter | Description |
|---|---|
series_idrequiredstring | Series id. Common ids: CPIAUCSL (CPI, all urban consumers (index)); CPILFESL (Core CPI (index)); PCEPI (PCE price index); UNRATE (Unemployment rate (%)); PAYEMS (Nonfarm payrolls (thousands)); FEDFUNDS (Effective federal funds rate (%)); DFF (Fed funds rate, daily (%)); DGS2 (2-year Treasury yield (%)); DGS10 (10-year Treasury yield (%)); DGS30 (30-year Treasury yield (%)); T10Y2Y (10y–2y Treasury spread (%)); T10Y3M (10y–3m Treasury spread (%)); GDP (US GDP, nominal (billions)); GDPC1 (US real GDP (billions, 2017$)); M2SL (M2 money supply (billions)); MORTGAGE30US (30-year mortgage rate (%)); UMCSENT (Consumer sentiment (Michigan)); RSAFS (Retail sales (millions)); INDPRO (Industrial production (index)); HOUST (Housing starts (thousands)); DCOILWTICO (WTI crude spot ($/bbl)); DEXUSEU (USD per EUR); DEXJPUS (JPY per USD); DTWEXBGS (Trade-weighted dollar index); WALCL (Fed total assets (millions)); BAMLH0A0HYM2 (High-yield credit spread (%)); VIXCLS (VIX close); SP500 (S&P 500 daily close); ICSA (Initial jobless claims); JTSJOL (Job openings (JOLTS, thousands)). Find others with search_macro_series |
startstring | Only observations on or after this date |
endstring | Only observations on or before this date |
unitslevel | change | pct_change | yoy_change | yoy_pct | annualized_pct | log = "level" | Transformation applied by the database: level as published, change from previous period, % change, change from a year ago, % change from a year ago, compounded annual rate |
frequencyd | w | m | q | a | Aggregate to this frequency (daily, weekly, monthly, quarterly, annual) |
aggregationavg | sum | eop = "avg" | How to aggregate when changing frequency: average, sum or end of period |
limitinteger = 24 | Most recent observations to return |
get_cot_positioningCommitments of Traders: speculators' net position, changes and percentile.
Commitments of Traders (legacy, futures only) for a market: speculators' long, short and net positions, net as percent of open interest, weekly change, commercials' and small traders' net, and where the current net sits within the window (percentile, max, min).
| Parameter | Description |
|---|---|
marketrequiredstring | Market name or alias: gold, silver, copper, platinum, crude oil, natural gas, gasoline, corn, wheat, soybeans, coffee, sugar, cocoa, cotton, cattle, hogs, bitcoin, ether, euro fx, yen, pound, dollar index, e-mini s&p 500, nasdaq, russell, 10-year, bonds, vix |
weeksinteger = 26 |
get_newsHeadlines with short summaries by symbol or topic.
Recent headlines with links. Give symbol for company/asset news (e.g. 'AAPL', 'BTC-USD') or query for free-text topics (e.g. 'Fed rate decision', 'OPEC output'). Returns title, short summary, publisher, publish time and URL.
| Parameter | Description |
|---|---|
symbolstring | |
querystring | |
limitinteger = 10 | |
daysinteger = 7 | Lookback for query searches |
Example questions
What people ask their agent once the connector is in place, and the tools the model reaches for. Ask in your own words; the tool descriptions do the routing.
How are markets doing today?
Compare Nvidia and AMD gross margins over the last six quarters.
What did Meta guide for next quarter, and how is Reality Labs doing?
Who reports earnings this week? Which of them beat last quarter?
Where is the analyst consensus on Apple, and has it moved this month?
Which SPY strikes carry the most open interest, and what move is priced for Friday?
Are insiders selling Tesla? Did institutions add last quarter?
How crowded is the short side in GameStop?
What are the risk factors in Apple's latest 10-K?
How much does Coca-Cola pay, and when is the next dividend?
Is Bitcoin's on-chain activity confirming the price move?
Is the Bitcoin perp market crowded long? What volatility are options pricing into year end?
Where is gold trading on-chain versus the futures?
Are speculators long or short crude oil, and how did that change?
Chart the S&P 500's drawdown over the last year.
What is US CPI doing versus the Fed funds rate?
Symbols
Indices take a caret (^GSPC), futures end in =F (GC=F) and FX pairs end in =X (EURUSD=X); common names are translated for you.
| Asset class | Examples | Also accepted |
|---|---|---|
| Stocks and ETFs | AAPL, NVDA, SPY, QQQ, BRK-B | company name via search_symbols |
| Indices | ^GSPC, ^IXIC, ^DJI, ^VIX, ^GDAXI, ^N225 | SPX, S&P 500, Nasdaq, Dow, DAX, Nikkei |
| US yields | ^IRX (13w), ^FVX (5y), ^TNX (10y), ^TYX (30y) | US10Y, US30Y |
| Crypto | BTC-USD, ETH-USD, SOL-USD | BTC, bitcoin, BTC/USDT |
| Commodities | GC=F, SI=F, CL=F, BZ=F, NG=F, HG=F, ZC=F | gold, silver, oil, brent, natgas, copper, corn |
| FX | EURUSD=X, GBPUSD=X, JPY=X | EURUSD, EUR/USD, USDJPY |
Limits
- Fair use: 120 tool calls per minute per account. No monthly cap, no paid tier.
- get_quotes takes up to 50 symbols per call; get_ohlcv returns up to 1,000 candles; read_sec_filing returns up to 60,000 characters per page.
- Responses are cached briefly (15 s to a few minutes depending on the data) to keep latency low.
- Stock, index, FX and futures quotes may be delayed up to 15 minutes; crypto is near real time. Data may be revised by its publishers. Nothing here is investment advice.