MCP 服务器

equibles

io.github.daniel3303/equibles

此 MCP 可以做什么

Provides equity and market research tools covering SEC filings, company financials, portfolios, prices, options, macroeconomic data, earnings calls, and investment analytics.

AddPortfolioLot
Add Portfolio Lot
Record a user-confirmed purchase or sale in the caller's portfolio. Never infer or guess the instrument, quantity, price or date. For stock, pass ticker. For an option, pass both its underlying ticker and verified OCC symbol; unknown or expired contracts are rejected. quantity is signed: positive for long shares/contracts, negative for short stock or written options. costPerUnit is always the positive per-share price or option premium, never the per-contract total. Identical retries within the duplicate window return the existing lot instead of adding another.
输入模式
{'type': 'object', 'required': ['portfolio', 'ticker', 'quantity', 'costPerUnit', 'acquiredDate'], 'properties': {'note': {'type': 'string', 'default': None, 'description': 'Optional. A short note from the user about this lot, up to 256 characters.'}, 'ticker': {'type': 'string', 'description': 'Stock ticker. For an option, the UNDERLYING ticker, e.g. AAPL.'}, 'quantity': {'type': 'number', 'description': 'Signed size: shares for a stock, contracts for an option. Negative for a short sale or a written option.'}, 'portfolio': {'type': 'string', 'description': 'The portfolio to add to, by name.'}, 'costPerUnit': {'type': 'number', 'description': 'Price per share, always positive: paid for a long, received for a short. For an option, the premium per share (a $3.20 contract is 3.20, not 320).'}, 'acquiredDate': {'type': 'string', 'description': 'The trade date, as yyyy-MM-dd. Cannot be in the future.'}, 'optionContract': {'type': 'string', 'default': None, 'description': 'Optional. The OCC option symbol, e.g. O:AAPL260724C00110000. Provide it to record an option contract; omit it for shares.'}}}
ClosePortfolioLot
Close Portfolio Lot
Record that the USER sold (or covered, or let expire) all or part of a lot, at a price and on a date. The lot moves out of the open positions and its realized profit is kept. Ask the user for the closing price and date; never guess them from a market quote. Closing PART of a lot splits it: the closed part keeps the original cost basis and the rest stays open on that same basis, so a later sale is still priced against what was actually paid. An option that expired worthless closes at a price of 0. An option that was exercised or assigned closes here too, and the resulting shares are a separate AddPortfolioLot.
输入模式
{'type': 'object', 'required': ['portfolio', 'lotId', 'closePrice', 'closeDate'], 'properties': {'lotId': {'type': 'string', 'description': 'The lot id shown by GetMyPortfolio, e.g. a1b2c3d4.'}, 'quantity': {'type': ['number', 'null'], 'default': None, 'description': 'Optional. How much of the lot to close, as a positive size. Omit to close all of it.'}, 'closeDate': {'type': 'string', 'description': 'The closing date, as yyyy-MM-dd. Cannot be in the future or before the lot was acquired.'}, 'portfolio': {'type': 'string', 'description': 'The portfolio holding the lot, by name.'}, 'closePrice': {'type': 'number', 'description': 'Price per share received (or paid, to cover a short). Zero for an option that expired worthless.'}}}
CompareFinancialFact
Compare Financials Across Companies
Compare one financial concept across several companies for the same fiscal period — peer comparison. Returns one row per ticker with the latest-restated value; tickers with no data for the period are listed separately. Fiscal year/period follow each company's OWN fiscal calendar (e.g. NVDA's fiscal 2025 ended January 2025), so peer rows can cover very different calendar months — check the Period End column.
只读
输入模式
{'type': 'object', 'required': ['tickers', 'concept', 'fiscalYear'], 'properties': {'concept': {'type': 'string', 'description': "Concept alias, e.g. 'revenue', 'net-income', 'eps-diluted'. Call with an unknown value to list supported aliases."}, 'tickers': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Ticker symbols to compare (max 25).'}, 'fiscalYear': {'type': 'integer', 'description': 'Fiscal year, e.g. 2023'}, 'fiscalPeriod': {'type': 'string', 'default': 'FY', 'description': "Fiscal period: 'FY' (default) or 'Q1'..'Q4'"}}}
CompareInstitutionPortfolios
Portfolio Overlap Between Institutions
Compare two institutions' 13F portfolios on their latest common report date. Returns Jaccard and dollar-weighted overlap, portfolio totals, and shared or unique positions. Published values normally use report-date closing prices, may fall back to filer values, and can be zero when unavailable. Resolve filer names with SearchInstitutions. For mutual-fund or ETF NPORT portfolios, use GetFundProfile.
只读
输入模式
{'type': 'object', 'required': ['institutionName1', 'institutionName2'], 'properties': {'maxResults': {'type': 'integer', 'default': 30, 'description': 'Maximum number of stocks to return (default: 30, clamped to 1-500)'}, 'reportDate': {'type': 'string', 'default': None, 'description': 'Quarter-end 13F report date in YYYY-MM-DD format (defaults to the latest common quarter; an off-quarter date snaps to the nearest common report on or before it)'}, 'institutionName1': {'type': 'string', 'description': 'First institution name or CIK (a unique partial resolves; ambiguous partials return candidate CIKs)'}, 'institutionName2': {'type': 'string', 'description': 'Second institution name or CIK (a unique partial resolves; ambiguous partials return candidate CIKs)'}}}
CreateMyPortfolio
Create My Portfolio
Create a new, empty portfolio in the USER's own Equibles account, then add holdings to it with AddPortfolioLot. Ask the user before creating one, since it is their account. Names are unique within an account, and re-creating a name that already exists is rejected rather than merged.
输入模式
{'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'description': 'A short name for the portfolio, e.g. Main or Retirement.'}}}
DeleteMyPortfolio
Delete My Portfolio
Permanently delete one of the USER's own portfolios and every lot in it, open and closed. This cannot be undone and it destroys the recorded cost basis and realized-profit history. ALWAYS confirm with the user first, naming the portfolio and how many lots it holds. Call GetMyPortfolio if you do not already know.
可能执行破坏性操作
输入模式
{'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'description': 'The exact name of the portfolio to delete.'}}}
GetAnalystEstimates
Analyst Consensus Estimates
Read analyst consensus forecasts for a company, including revenue, EPS, product, segment and operating metrics. Prefers consensus the company publishes itself through its investor-relations sources and falls back to a compiled consensus; every answer states which kind answered. Returns original units, accounting basis, mean/median/range/count labels, snapshot history and publication dates. Coverage varies by issuer. This reads stored verified data and never scrapes on demand.
只读
输入模式
{'type': 'object', 'required': ['ticker'], 'properties': {'asOf': {'type': 'string', 'default': None, 'description': 'ISO-8601 UTC cutoff for a snapshot verified at or before this instant.'}, 'limit': {'type': 'integer', 'default': 25, 'description': 'Maximum observations, default 25, range 1–100.'}, 'metric': {'type': 'string', 'default': None, 'description': 'Exact source metric label; omit to read all metrics.'}, 'offset': {'type': 'integer', 'default': 0, 'description': 'Zero-based observation offset, default 0, maximum 100000.'}, 'period': {'type': 'string', 'default': None, 'description': 'Exact source forecast-period label; omit for all periods.'}, 'ticker': {'type': 'string', 'description': 'Stock ticker symbol, e.g. SAP.'}, 'dimensions': {'type': 'string', 'default': None, 'description': 'Exact source dimension label; omit for all products and segments.'}, 'snapshotId': {'type': ['string', 'null'], 'format': 'uuid', 'default': None, 'description': 'Snapshot identifier from a previous response; omit for latest verified capture.'}, 'snapshotOffset': {'type': 'integer', 'default': 0, 'description': 'Zero-based snapshot history offset; history is returned in pages of 10.'}}}
GetAtmPrograms
At-the-Market Offering Programs
Get a company's at-the-market (ATM) equity offering programs — original agreement date and stated precision, latest amendment, money and/or share capacity, cumulative sales, remaining availability with per-figure as-of dates, expiry, derived exhausted/expired status, and source filings. Bare table figures are normalized only from an exact grounded filing scale header. ATM programs have no tagged XBRL equivalent, so figures come from verified extractions of the company's own 10-K, 10-Q and 8-K filings; only filings from roughly the last 13 months are scanned, so an empty result means no program was captured there — not proof the company runs no ATM program. Nothing is estimated.
只读
输入模式
{'type': 'object', 'required': ['ticker'], 'properties': {'ticker': {'type': 'string', 'description': 'Stock ticker symbol (e.g., AAPL, MSFT).'}}}
GetAverageTrueRange
Average True Range (ATR)
Average True Range (ATR) for a stock. Wilder's volatility measure built from the True Range (max of high-low, |high-prev_close|, |low-prev_close|) and smoothed recursively. Higher ATR means wider daily moves; commonly used for position sizing and stop placement. ATR is denominated in the stock's price units (USD). The smoothing is warmed up on price history fetched before startDate, so values do not depend on the requested range's left edge.
只读
输入模式
{'type': 'object', 'required': ['ticker'], 'properties': {'period': {'type': 'integer', 'default': 14, 'description': 'Smoothing window (default: 14)'}, 'ticker': {'type': 'string', 'description': 'Stock ticker symbol (e.g., AAPL, MSFT). Class shares use a dash (BRK-B); the dot form (BRK.B) is also accepted.'}, 'endDate': {'type': 'string', 'default': None, 'description': 'End date in YYYY-MM-DD format (defaults to latest available)'}, 'startDate': {'type': 'string', 'default': None, 'description': 'Start date in YYYY-MM-DD format (defaults to 6 months ago)'}, 'maxResults': {'type': 'integer', 'default': 60, 'description': 'Maximum number of records to return (default: 60, max: 500); the newest rows are kept and listed newest first.'}}}
GetBollingerBands
Bollinger Bands
Bollinger Bands for a stock. A middle band (simple moving average of close) with upper and lower bands set a number of standard deviations above and below it. Bands widen when volatility rises and contract when it falls; price touching the upper/lower band is a common overbought/oversold cue. Includes %B ((close-lower)/(upper-lower)) and bandwidth ((upper-lower)/middle) columns. The moving-average window is warmed up on price history fetched before startDate, so values do not depend on the requested range's left edge.
只读
输入模式
{'type': 'object', 'required': ['ticker'], 'properties': {'period': {'type': 'integer', 'default': 20, 'description': 'Moving-average window (default: 20)'}, 'stdDev': {'type': 'number', 'default': 2, 'description': 'Standard deviations for the upper/lower bands (default: 2)'}, 'ticker': {'type': 'string', 'description': 'Stock ticker symbol (e.g., AAPL, MSFT). Class shares use a dash (BRK-B); the dot form (BRK.B) is also accepted.'}, 'endDate': {'type': 'string', 'default': None, 'description': 'End date in YYYY-MM-DD format (defaults to latest available)'}, 'startDate': {'type': 'string', 'default': None, 'description': 'Start date in YYYY-MM-DD format (defaults to 6 months ago)'}, 'maxResults': {'type': 'integer', 'default': 60, 'description': 'Maximum number of records to return (default: 60, max: 500); the newest rows are kept and listed newest first.'}}}
GetBuybackPrograms
Share Repurchase Programs
Get a company's share-repurchase (buyback) picture: tracked repurchase programs (announcement date, authorized total, remaining availability, expiry, source filings), the latest program-authorization figures, and the repurchase history — cash spent, shares repurchased, and average price per fiscal year and recent quarters. Figures come from the company's own XBRL facts plus verified extractions of filings' narrative text; nothing is estimated, and figures a company stopped restating carry an explicit staleness label. For the dilution mirror-image — at-the-market (ATM) equity offering programs — use GetAtmPrograms.
只读
输入模式
{'type': 'object', 'required': ['ticker'], 'properties': {'ticker': {'type': 'string', 'description': 'Stock ticker symbol (e.g., AAPL, MSFT).'}}}
GetCftcPositioning
CFTC Futures Positioning (COT)
Get Commitments of Traders (COT) positioning data for a specific futures contract. Shows commercial and non-commercial positions over time. Values are contract counts from the legacy futures-only COT report (positions as of each Tuesday, published Friday). Use SearchCftcMarkets to find available market codes.
只读
输入模式
{'type': 'object', 'required': ['marketCode'], 'properties': {'endDate': {'type': 'string', 'default': None, 'description': 'End date in YYYY-MM-DD format (defaults to latest available)'}, 'startDate': {'type': 'string', 'default': None, 'description': 'Start date in YYYY-MM-DD format (defaults to 1 year ago)'}, 'marketCode': {'type': 'string', 'description': 'CFTC market code, common contract name, or standard futures symbol (e.g., 067651, WTI, ES, Gold futures)'}, 'maxResults': {'type': 'integer', 'default': 52, 'description': 'Maximum number of reports to return (default: 52, max: 500). When the range holds more reports the newest are kept; rows are always listed oldest to newest.'}}}
GetCompanyKpis
Company KPIs
Get company-stated operational and non-GAAP KPIs extracted from written 8-K earnings releases and 10-K/10-Q MD&A, with period, filing date, source quote and exactly comparable year-over-year change. Omit metric for each series' latest reading; pass a company metric label for its full history. Values retain the company's stated scale. Earnings-call transcripts are not figure sources. A disclosed GAAP-to-non-GAAP reconciliation includes its stated bridge.
只读
输入模式
{'type': 'object', 'required': ['ticker'], 'properties': {'metric': {'type': 'string', 'default': None, 'description': "Optional metric name to expand into its full history (e.g., 'subscribers', 'Adjusted EBITDA'). Matches the company's own metric labels case-insensitively; when the name matches several metrics the tool lists those candidates. Omit for the overview of every metric's latest reading."}, 'ticker': {'type': 'string', 'description': 'Stock ticker symbol (e.g., AAPL, MSFT).'}}}
GetCongressionalTrades
Congressional Trades by Stock
Get congressional securities transactions for a specific ticker (newest first, last year by default). Shows which members of Congress reported a purchase or sale, with transaction and filing dates; amounts are disclosed ranges, not exact values, and Asset identifies the filed instrument (such as stock, option, or bond). Use GetMemberTrades for one member's transactions across all tickers.
只读
输入模式
{'type': 'object', 'required': ['ticker'], 'properties': {'offset': {'type': 'integer', 'default': 0, 'description': 'Number of matching trades to skip before returning rows (default: 0)'}, 'ticker': {'type': 'string', 'description': 'Listed security ticker (e.g., AAPL, VOO, MSFT)'}, 'endDate': {'type': 'string', 'default': None, 'description': 'End date in YYYY-MM-DD format (defaults to today)'}, 'startDate': {'type': 'string', 'default': None, 'description': 'Start date in YYYY-MM-DD format (defaults to 1 year ago)'}, 'maxResults': {'type': 'integer', 'default': 50, 'description': 'Maximum number of trades to return (default: 50, max: 500, newest first)'}, 'transactionType': {'type': 'string', 'default': None, 'description': 'Filter by transaction type: Purchase or Sale; the synonyms Buy/Sell are accepted (defaults to all)'}}}
GetCorrelatedStocks
Correlated Stocks
Get the stocks whose daily price returns are most (or least) correlated with one stock — Pearson correlation of daily log returns on comparable raw closes (dividends excluded), computed over the trading days both stocks priced, never on raw price levels. Scope picks the candidate universe: Industry (default) ranks the subject's direct industry peers; Sector widens to sibling industries; Market ranges across the ~1,500 largest listed names and surfaces cross-industry relationships the classification misses (suppliers, commodity proxies). direction=Negative flips the ranking to the strongest inverse movers (hedge candidates). Candidates need a $100M market cap and enough overlapping trading days with the subject; each row reports the observation count behind its coefficient. Use GetStockPrices for the underlying series and the screener for fundamentals-based peer sets.
只读
输入模式
{'type': 'object', 'required': ['ticker'], 'properties': {'days': {'type': 'integer', 'default': 180, 'description': 'Trailing calendar window in days for the return series (default 180, clamped to 30-730).'}, 'scope': {'type': 'string', 'default': 'Industry', 'description': 'Candidate universe: Industry (default), Sector, or Market (~1,500 largest listed names).'}, 'ticker': {'type': 'string', 'description': 'Exact listed ticker symbol (e.g., GOOG, GOOGL, BRK-A or BRK-B). Dot class-share notation such as BRK.A is also accepted.'}, 'direction': {'type': 'string', 'default': 'Positive', 'description': 'Positive (default) for the strongest co-movers, Negative for the strongest inverse movers.'}, 'maxResults': {'type': 'integer', 'default': 10, 'description': 'Maximum number of stocks to return (default 10, max 50).'}}}
GetCustomerConcentration
Customer Concentration Risk
Get a company's customer-concentration risk disclosure — statements like "one customer accounted for 31% of revenue": each disclosed figure's basis (revenue or receivables), customer count, percentage, and period, with the source filing. Untagged disclosures come from verified narrative extraction with a verbatim quote; issuers that tag ConcentrationRiskPercentage in structured XBRL (e.g. NVDA, AAPL) return those customer-specific dimensioned facts directly. A miss is never a statement of no risk. Pass maxFilings > 1 to also see earlier filings' disclosures (the concentration trend).
只读
输入模式
{'type': 'object', 'required': ['ticker'], 'properties': {'ticker': {'type': 'string', 'description': 'Stock ticker symbol (e.g., AAPL, MSFT).'}, 'maxFilings': {'type': 'integer', 'default': 1, 'description': 'How many of the newest disclosing filings to return (default 1 — the latest; cap 10).'}}}
GetDebtInstrument
Debt Instrument Detail
Get one durable debt instrument by its Equibles identifier. Returns current balances, linked filing observation, verified covenant bullets, exact source quotes, and governing or amending SEC documents. History, covenants, and documents are independently paged. Use GetDebtProfile first to obtain the instrument identifier.
只读
输入模式
{'type': 'object', 'required': ['ticker', 'instrumentId'], 'properties': {'ticker': {'type': 'string', 'description': 'Stock ticker symbol (e.g., AAPL, MSFT).'}, 'maxHistory': {'type': 'integer', 'default': 10, 'description': 'Maximum filing-history rows to return (default 10, max 10).'}, 'instrumentId': {'type': 'string', 'format': 'uuid', 'description': 'Debt instrument identifier returned by GetDebtProfile.'}, 'maxCovenants': {'type': 'integer', 'default': 10, 'description': 'Maximum covenant rows to return (default 10, max 10).'}, 'maxDocuments': {'type': 'integer', 'default': 10, 'description': 'Maximum governing/update documents to return (default 10, max 10).'}, 'historyOffset': {'type': 'integer', 'default': 0, 'description': 'Zero-based filing-history offset for paging.'}, 'covenantOffset': {'type': 'integer', 'default': 0, 'description': 'Zero-based covenant offset for paging.'}, 'documentOffset': {'type': 'integer', 'default': 0, 'description': 'Zero-based document offset for paging.'}, 'evidenceOffset': {'type': 'integer', 'default': 0, 'description': 'Zero-based character offset into the exact evidence for these history and covenant pages.'}, 'maxEvidenceCharacters': {'type': 'integer', 'default': 0, 'description': 'Maximum exact-evidence characters to return for these history and covenant pages (default 0, max 12000). Use a positive value to read evidence losslessly in character pages.'}}}
GetDebtProfile
Company Debt Profile
Get a company's reported total debt history and its identified notes, loans, and revolving credit facilities. The latest 10-K establishes the annual baseline; each subsequent 10-Q and relevant 8-K updates durable instrument records instead of creating a new instrument from a similar-looking row. Results summarize each instrument and provide its ID; use GetDebtInstrument for paged covenants, filing observations, exact evidence, and governing SEC exhibits. Unmatched observations are disclosed and excluded.
只读
输入模式
{'type': 'object', 'required': ['ticker'], 'properties': {'offset': {'type': 'integer', 'default': 0, 'description': 'Zero-based instrument offset for paging (default 0, max 100000).'}, 'ticker': {'type': 'string', 'description': 'Stock ticker symbol (e.g., AAPL, MSFT).'}, 'maxResults': {'type': 'integer', 'default': 25, 'description': 'Maximum instruments to return (default 25, max 25).'}, 'evidenceOffset': {'type': 'integer', 'default': 0, 'description': "Zero-based character offset into the selected company-reported totals' exact evidence."}, 'maxReportedTotals': {'type': 'integer', 'default': 10, 'description': 'Maximum company-reported totals to return (default 10, max 10).'}, 'reportedTotalOffset': {'type': 'integer', 'default': 0, 'description': 'Zero-based company-reported-total offset for paging.'}, 'maxEvidenceCharacters': {'type': 'integer', 'default': 0, 'description': 'Maximum exact-evidence characters to return for the selected company-reported totals (default 0, max 12000). Use a positive value to read evidence losslessly in character pages.'}}}
GetDividendHistory
Dividend History
Get a company's stored declared cash dividends newest first. Each row gives the ex-dividend date and cash amount per share in USD. Date filters apply to the ex-dividend date. Future ex-dates can appear after a dividend is declared. Dividend records are issuer-level and available only through the company's current primary ticker; a secondary share class is never assumed to have the same dividend.
只读
输入模式
{'type': 'object', 'required': ['ticker'], 'properties': {'offset': {'type': 'integer', 'default': 0, 'description': 'Number of newest matching records to skip for pagination (default: 0).'}, 'ticker': {'type': 'string', 'description': 'Current primary stock ticker (e.g., AAPL, MSFT).'}, 'endDate': {'type': ['string', 'null'], 'format': 'date-time', 'default': None, 'description': 'Optional latest ex-dividend date in YYYY-MM-DD format.'}, 'startDate': {'type': ['string', 'null'], 'format': 'date-time', 'default': None, 'description': 'Optional earliest ex-dividend date in YYYY-MM-DD format.'}, 'maxResults': {'type': 'integer', 'default': 20, 'description': 'Maximum number of records to return (default: 20, max: 500).'}}}
GetEarningsBrief
Earnings Brief
Get the AI 'Earnings Brief' for a company's recent earnings calls — a verifier-approved TL;DR, bullish and bearish points, and verbatim pull-quotes, plus a deterministic narrative shift against the immediately older available approved brief. When available, it also shows company guidance issued at the call, how that range changed from management's prior update, and the reported quarter versus the operative company guidance that preceded it. This is company guidance, not analyst consensus; actual comparisons use filed GAAP XBRL facts, never estimates. The shift is derived from approved bullets and is not separately verifier-approved. Newest quarter first. Only calls with an approved brief appear, so quarters can be missing from the sequence.
只读
输入模式
{'type': 'object', 'required': ['ticker'], 'properties': {'limit': {'type': 'integer', 'default': 2, 'description': 'Maximum number of quarterly briefs to return, newest first (default 2, max 8; values outside 1-8 are clamped)'}, 'ticker': {'type': 'string', 'description': 'Company ticker symbol (e.g., AAPL, MSFT)'}, 'fiscalYear': {'type': ['integer', 'null'], 'default': None, 'description': 'Company fiscal year. Omit both period fields for newest briefs; year alone filters that fiscal year.'}, 'fiscalQuarter': {'type': ['integer', 'null'], 'default': None, 'description': 'Company fiscal quarter, 1-4. Quarter alone filters that quarter across fiscal years; both fields select an exact period.'}}}
GetEarningsCallEvent
Earnings Call Event
Get the earnings-call event for a company's fiscal quarter — the single record that groups the quarter's call artefacts (audio, transcript, slide deck, and 8-K earnings release) under one event. Returns the event's id (usable with GetInvestorEventTranscript), title, call date, status, which of the four artefacts are available, the transcript and earnings-release document ids when linked, and the release's extracted guidance rows when the 8-K carries approved ones. When a transcript is available, read it with GetEarningsCallTranscript, or get the AI read via GetEarningsBrief / GetEarningsCallToneAndThemes. Use this to ask "what do we have for AAPL FY2025 Q3?" rather than chasing each artefact separately — or omit the fiscal period for the company's latest call.
只读
输入模式
{'type': 'object', 'required': ['ticker'], 'properties': {'ticker': {'type': 'string', 'description': 'Company ticker symbol (e.g., AAPL, MSFT)'}, 'fiscalYear': {'type': ['integer', 'null'], 'default': None, 'description': 'Company fiscal year. Omit both period fields for the latest call; year alone selects the latest call in that fiscal year.'}, 'fiscalQuarter': {'type': ['integer', 'null'], 'default': None, 'description': 'Company fiscal quarter, 1-4. Quarter alone selects the latest matching quarter across fiscal years; provide both fields for an exact period.'}}}
GetEarningsCallToneAndThemes
Earnings Call Tone and Themes
Get the AI-scored insights for a company's recent earnings calls — the management-tone read (a net tone score and a hedging score) and the call's key themes with their computed mention counts and per-theme tone. Newest call first. Verifier-approved — only scored and approved calls appear, so quarters can be missing from the sequence (a gap note flags non-consecutive quarters). Use it to gauge how confident or guarded management sounded and what they talked about most.
只读
输入模式
{'type': 'object', 'required': ['ticker'], 'properties': {'limit': {'type': 'integer', 'default': 2, 'description': 'Maximum number of scored calls to return, newest first (default 2, max 8; values outside 1-8 are clamped)'}, 'ticker': {'type': 'string', 'description': 'Company ticker symbol (e.g., AAPL, MSFT)'}, 'fiscalYear': {'type': ['integer', 'null'], 'default': None, 'description': 'Company fiscal year. Omit both period fields for newest results; year alone filters that fiscal year.'}, 'fiscalQuarter': {'type': ['integer', 'null'], 'default': None, 'description': 'Company fiscal quarter, 1-4. Quarter alone filters that quarter across fiscal years; both fields select an exact period.'}}}
GetEarningsCallTranscript
Earnings Call Transcript
Get the speaker-labelled transcript of a company's earnings call for a fiscal quarter — every speaker turn in order, attributed to the real person (executive or sell-side analyst) with their role at the time. Identities appear only when the resolution is trusted (auto-resolved or human-reviewed); unverified voices show as a role label (e.g. Operator) or a neutral speaker number. Use GetEarningsCallEvent first to check a transcript exists.
只读
输入模式
{'type': 'object', 'required': ['ticker'], 'properties': {'limit': {'type': 'integer', 'default': 50, 'description': 'Maximum number of speaker turns to return (default 50, max 200; values outside 1-200 are clamped)'}, 'offset': {'type': 'integer', 'default': 0, 'description': 'Number of leading speaker turns to skip, for paging through calls longer than the 200-turn cap (default 0)'}, 'ticker': {'type': 'string', 'description': 'Company ticker symbol (e.g., AAPL, MSFT)'}, 'fiscalYear': {'type': ['integer', 'null'], 'default': None, 'description': 'Company fiscal year. Omit both period fields for the latest call; year alone selects the latest call in that fiscal year.'}, 'fiscalQuarter': {'type': ['integer', 'null'], 'default': None, 'description': 'Company fiscal quarter, 1-4. Quarter alone selects the latest matching quarter across fiscal years; provide both fields for an exact period.'}}}
GetEconomicCalendar
Economic Release Calendar
Get the economic release calendar — scheduled (upcoming) and recent publication dates of US macro data releases, with the FRED series each release updates and an importance tier per release (High = the tier-1 scheduled market movers: CPI, PPI, Employment Situation, GDP, PCE, retail sales; Medium = other genuine scheduled prints; Low = daily rate/market levels like SOFR or VIX). FOMC meetings are NOT included — FRED's release feed has no real FOMC meeting dates; use the Federal Reserve's published meeting calendar for those. Defaults to the next 30 days. Use minImportance=high to see only the market movers, and GetEconomicIndicator to fetch a series' data after it prints.
只读
输入模式
{'type': 'object', 'properties': {'endDate': {'type': 'string', 'default': None, 'description': 'End date in YYYY-MM-DD format (defaults to 30 days after the start date)'}, 'startDate': {'type': 'string', 'default': None, 'description': 'Start date in YYYY-MM-DD format (defaults to today, UTC)'}, 'maxResults': {'type': 'integer', 'default': 100, 'description': 'Maximum number of release dates to return (default: 100, max: 500, chronological)'}, 'minImportance': {'type': 'string', 'default': None, 'description': 'Minimum importance tier to include: low, medium, or high (defaults to low = everything)'}}}
GetEconomicIndicator
Economic Indicator History
Get time series data for a FRED economic indicator. Returns historical observations for indicators like FEDFUNDS (fed funds rate), CPIAUCSL (CPI inflation), UNRATE (unemployment), GDP, T10Y2Y (yield spread), VIXCLS (VIX), SP500, MORTGAGE30US, M2SL (money supply), and more. Covers the curated ~40-series set Equibles tracks, not the full FRED catalog — use SearchEconomicIndicators to find available series.
只读
输入模式
{'type': 'object', 'required': ['seriesId'], 'properties': {'endDate': {'type': 'string', 'default': None, 'description': 'End date in YYYY-MM-DD format (defaults to latest available)'}, 'seriesId': {'type': 'string', 'description': 'FRED series ID or standard indicator name (e.g., FEDFUNDS, fed funds rate, core CPI, jobless claims)'}, 'startDate': {'type': 'string', 'default': None, 'description': 'Start date in YYYY-MM-DD format (defaults to 1 year before the end date)'}, 'maxResults': {'type': 'integer', 'default': 100, 'description': 'Maximum number of observations to return (default: 100, max: 500). When the range holds more, the newest maxResults are kept; rows are always listed in ascending date order.'}}}
GetEtfHoldings
ETF Holdings
Get an ETF's stored portfolio holdings from its latest SEC Form NPORT-P report, largest position first. Coverage is full, partial, or unknown when counts are missing or inconsistent. Use offset to continue through broad portfolios.
只读
输入模式
{'type': 'object', 'required': ['ticker'], 'properties': {'offset': {'type': 'integer', 'default': 0, 'description': 'Number of ranked holdings to skip (default 0).'}, 'ticker': {'type': 'string', 'description': 'Exact exchange-traded ticker (for example SPY).'}, 'maxResults': {'type': 'integer', 'default': 20, 'description': 'Maximum holdings to return (default 20, max 500).'}}}
GetEtfProfile
ETF Profile and Performance
Get ETF settled performance, SEC assets, allocation and top holdings. For this same exact ETF ticker, use GetStockPrices or GetLatestClosingPrices for prices, GetLiveQuote for entitled intraday quotes, GetOptionExpirations/GetOptionChain/GetOptionContract for options, GetShortInterest for reported short interest and days to cover, GetShortVolume/GetOffExchangeVolume/GetFailsToDeliver for trading and settlement data, GetTopHolders/GetInstitutionalOwnershipHistory/GetTopInstitutionalBuyersSellers for 13F institutional exposure, GetFundsHoldingStock for funds owning the ETF, and GetCongressionalTrades for congressional trades. These are shared stock-and-ETF tools; GetEtfHoldings instead returns investments inside the ETF. ListFilings/SearchDocuments select the SEC registrant and may include sibling funds, not just this ETF series. Dividend history is currently primary-listing-only; issuer-trained short-interest forecasts and squeeze scores are not ETF analytics.
只读
输入模式
{'type': 'object', 'required': ['ticker'], 'properties': {'ticker': {'type': 'string', 'description': 'Exact exchange-traded ticker (for example SPY, VOO, or IVV).'}}}
GetExecutiveChanges
Executive and Board Changes
Get a company's executive and director changes — CEO/CFO/officer/board appointments, resignations, terminations, and retirements — as disclosed in its 8-K Item 5.02 filings, newest filing first. Each change carries the person's name, the role text exactly as filed, a separate normalized role classification, the action, the effective date when stated, the verbatim disclosure, and the source filing (form + link). Changes are extracted from the filings' narrative text and verified before publication. Coverage is still back-filling: the output names the oldest covered filing date, and an empty answer distinguishes 'covered filings disclose no changes' from 'filings not yet processed'.
只读
输入模式
{'type': 'object', 'required': ['ticker'], 'properties': {'action': {'type': 'string', 'default': None, 'description': 'Optional action filter: Appointed, Resigned, Terminated, or Retired.'}, 'offset': {'type': 'integer', 'default': 0, 'description': 'Number of matching changes to skip before returning rows (default 0).'}, 'ticker': {'type': 'string', 'description': 'Stock ticker symbol (e.g., AAPL, MSFT).'}, 'endDate': {'type': 'string', 'default': None, 'description': 'Optional newest filed date, YYYY-MM-DD.'}, 'startDate': {'type': 'string', 'default': None, 'description': 'Optional oldest filed date, YYYY-MM-DD.'}, 'maxResults': {'type': 'integer', 'default': 25, 'description': 'Maximum changes to return (default 25, cap 100).'}}}
GetExecutiveCompensation
Executive Compensation
Get a company's named-executive compensation as disclosed in its DEF 14A proxy statements' Summary Compensation Table — salary, bonus, stock and option awards, non-equity incentive, other compensation, and the company-reported total per executive per fiscal year, newest year first. Figures are exactly as the company disclosed them; Total is the filer's own figure, never a recomputation. Coverage is limited to US DEF 14A filers (foreign private issuers file 20-F and are not covered) and is still back-filling: the output states the newest proxy on file next to the newest imported year, so stale coverage is visible.
只读
输入模式
{'type': 'object', 'required': ['ticker'], 'properties': {'ticker': {'type': 'string', 'description': 'Stock ticker symbol (e.g., AAPL, MSFT).'}, 'maxYears': {'type': 'integer', 'default': 0, 'description': 'Optional cap on how many of the newest fiscal years to return (default 0 = all imported years).'}}}
GetFailsToDeliver
Fails-to-Deliver Data
Get fails-to-deliver (FTD) data for an exact listed stock or exchange-traded fund from the SEC's twice-monthly FTD files. Quantity is the aggregate net fail-to-deliver position OUTSTANDING on each settlement date — a balance, not that day's new fails, so never sum Quantity across dates. Price is the previous trading day's closing price (SEC file convention, not a settlement price) and Value = Quantity × Price. Within the covered window (the output names the earliest fully covered settlement date), dates absent from the table had no reported fails; earlier dates are only partially covered, so their absence is not evidence of no fails. The SEC publishes each half-month batch with roughly a two-week lag, so the newest rows trail today. High or persistent FTD balances may indicate naked short selling or settlement issues.
只读
输入模式
{'type': 'object', 'required': ['ticker'], 'properties': {'ticker': {'type': 'string', 'description': 'Exact stock or ETF ticker symbol (e.g., AAPL, GME, SPY)'}, 'endDate': {'type': 'string', 'default': None, 'description': 'End date in YYYY-MM-DD format (defaults to latest available)'}, 'startDate': {'type': 'string', 'default': None, 'description': 'Start date in YYYY-MM-DD format (defaults to 3 months ago)'}, 'maxResults': {'type': 'integer', 'default': 90, 'description': 'Maximum number of records to return — keeps the most recent N settlement dates in the range, displayed oldest to newest (default: 90, max: 500)'}}}
GetFdaAdvisoryCommitteeMeetings
FDA Advisory Committee Calendar
Get scheduled FDA advisory-committee (AdComm) meetings, sourced from the FDA.gov advisory-committee calendar, each with a link to its FDA meeting page. Defaults to meetings in the next 90 days; pass a date range to look further ahead. This is a forward-looking calendar of announced meetings, not a historical archive — coverage starts in late 2025 — and entries are the FDA's own listings, not linked to stock tickers.
只读
输入模式
{'type': 'object', 'properties': {'endDate': {'type': 'string', 'default': None, 'description': 'End date in YYYY-MM-DD format (defaults to 90 days after the start)'}, 'startDate': {'type': 'string', 'default': None, 'description': 'Start date in YYYY-MM-DD format (defaults to today)'}, 'maxResults': {'type': 'integer', 'default': 60, 'description': 'Maximum number of meetings to return (default: 60, soonest first)'}}}
GetFinancialFact
Financial Concept Lookup
Get a single financial concept (e.g. revenue, net income, diluted EPS, total assets, operating cash flow) over time for a company, sourced from SEC Company Facts (structured XBRL). Returns a time series, one row per fiscal period, using the latest restated value unless asOriginallyReported is set. Each row carries its actual period start/end; fiscal years/quarters follow the company's own fiscal calendar. Warns when the selected alias ends materially before the company's other structured facts, which can indicate an XBRL tag change. Dimensioned disclosures such as customer concentration are outside this consolidated-series tool. For a full statement use GetFinancialStatement; to compare peers use CompareFinancialFact.
只读
输入模式
{'type': 'object', 'required': ['ticker', 'concept'], 'properties': {'form': {'type': 'string', 'default': None, 'description': "Optional SEC form filter, e.g. '10-K' or '10-Q'"}, 'ticker': {'type': 'string', 'description': 'Stock ticker symbol (e.g., AAPL, MSFT)'}, 'toDate': {'type': 'string', 'default': None, 'description': 'Optional latest period-end date, YYYY-MM-DD'}, 'concept': {'type': 'string', 'description': "Concept alias, e.g. 'revenue', 'net-income', 'eps-diluted', 'total-assets', 'operating-cash-flow'. Call with an unknown value to list supported aliases."}, 'fromDate': {'type': 'string', 'default': None, 'description': 'Optional earliest period-end date, YYYY-MM-DD'}, 'maxResults': {'type': 'integer', 'default': 40, 'description': 'Maximum periods to return, newest first (default 40, max 200)'}, 'fiscalPeriod': {'type': 'string', 'default': None, 'description': "Optional fiscal-period filter: 'FY' (annual only) or 'Q1'..'Q4'. Note that discrete Q4 rows exist only where the filer reported a discrete fourth quarter (most large filers stopped after ~2021)."}, 'asOriginallyReported': {'type': 'boolean', 'default': False, 'description': 'When true, show the earliest canonical periodic filing instead of the latest restatement within that source priority. Default false.'}}}
GetFinancialStatement
Financial Statements
Get a company's income statement, balance sheet, or cash-flow statement for a given fiscal year and period, sourced from SEC Company Facts (structured XBRL). Returns the standard line items (e.g. revenue, net income, total assets, operating cash flow) with the latest-restated value for one exact statement period end. Quarterly flow rows are always discrete quarters: when the filer reports only cumulative year-to-date USD values, the quarter is derived by exact subtraction from the preceding cumulative period and marked Derived. Company-specific dimensional facts (e.g. product-segment revenue) are not included — use GetRevenueBreakdown for segment/geographic revenue, and GetFinancialFact or CompareFinancialFact for one line item across periods or across companies.
只读
输入模式
{'type': 'object', 'required': ['ticker'], 'properties': {'year': {'type': ['integer', 'null'], 'default': None, 'description': 'Fiscal year, e.g. 2023. Defaults to the latest reported year.'}, 'period': {'type': 'string', 'default': None, 'description': "Fiscal period: 'FY' (annual) or 'Q1'..'Q4'. Defaults to the latest reported period. Most filers report no discrete Q4 income/cash-flow facts in XBRL (the fourth quarter is embedded in the full-year figure) — use 'FY' for annual figures."}, 'ticker': {'type': 'string', 'description': 'Stock ticker symbol (e.g., AAPL, MSFT, GME)'}, 'statement': {'type': 'string', 'default': 'income', 'description': "Statement: 'income' (income statement), 'balance' (balance sheet), or 'cashflow' (cash-flow statement); the aliases 'is'/'p&l', 'bs' and 'cf' also work. Defaults to income."}}}
GetForm144ProposedSales
Proposed Insider Sales (Form 144)
Get recent proposed insider sales for a stock from SEC Form 144 notices. Each Form 144 is an affiliate's declaration of intent to sell restricted or control securities, showing the seller, their relationship to the company, the number of shares and aggregate market value to be sold, the proposed sale as a share of the issuer's current shares outstanding, the approximate sale date, the broker, and the filer's remarks (including any stated 10b5-1 plan). Results are the most recent notices first and a note flags when more exist than were returned; use fromDate/toDate to scope a period (heavy 10b5-1 filers can flood the recency window with small daily notices). A proposal may never execute; a completed sale may later appear on Form 4 or 5 only when it is reportable there.
只读
输入模式
{'type': 'object', 'required': ['ticker'], 'properties': {'offset': {'type': 'integer', 'default': 0, 'description': 'Number of matching notices to skip before returning rows (default: 0)'}, 'ticker': {'type': 'string', 'description': 'Company ticker symbol (e.g., AAPL, MSFT)'}, 'toDate': {'type': 'string', 'default': None, 'description': 'Optional latest filing date to include, ISO format yyyy-MM-dd (e.g., 2025-12-31)'}, 'fromDate': {'type': 'string', 'default': None, 'description': 'Optional earliest filing date to include, ISO format yyyy-MM-dd (e.g., 2025-01-01)'}, 'maxResults': {'type': 'integer', 'default': 50, 'description': 'Maximum number of notices to return (default: 50, max: 500; values outside 1-500 are clamped)'}}}
GetFormDOfferings
Exempt Offerings (Form D)
Get recent exempt securities offerings (private placements) for a company from SEC Form D notices. Each Form D reports a Regulation D offering, showing the issuer, the date of first sale, the total offering amount (a dollar figure or "Indefinite"), the amounts sold and remaining, the minimum investment, the number of investors, the claimed exemptions, whether the notice is an amendment (D/A), and its SEC accession number. Ongoing offerings are re-noticed through D/A amendments that RESTATE the same offering — group rows by first-sale date and offering amount and use only the latest notice of each chain, or capital raised will be counted several times over. Use this to track how a company is raising private capital alongside its public filings.
只读
输入模式
{'type': 'object', 'required': ['ticker'], 'properties': {'offset': {'type': 'integer', 'default': 0, 'description': 'Number of matching notices to skip before returning rows (default: 0)'}, 'ticker': {'type': 'string', 'description': 'Company ticker symbol (e.g., AAPL, MSFT)'}, 'toDate': {'type': 'string', 'default': None, 'description': 'Optional latest filing date to include, ISO format yyyy-MM-dd (e.g., 2024-12-31)'}, 'fromDate': {'type': 'string', 'default': None, 'description': 'Optional earliest filing date to include, ISO format yyyy-MM-dd (e.g., 2024-01-01)'}, 'maxResults': {'type': 'integer', 'default': 50, 'description': 'Maximum number of notices to return (default: 50, max: 500; values outside 1-500 are clamped)'}}}
GetFundNcenReports
Fund Operations (Form N-CEN)
Get operational data for a registered investment company from its SEC Form N-CEN annual reports. Accepts an exchange-listed ticker or an exact fund identifier from SearchFunds, including a profile id, SEC series id, stored series ticker, or verified share-class alias. Each N-CEN shows the registrant's classification, Investment Company Act file number, reporting period, first/last-filing flags, latest service providers, and an exact filed-name provider history. N-CEN is filed at registrant level; this dataset currently ingests it through tracked issuer feeds, so a series inside an untracked multi-series trust can resolve correctly but still have no N-CEN report on record. Only registered funds file N-CEN; operating companies return no data.
只读
输入模式
{'type': 'object', 'required': ['fund'], 'properties': {'fund': {'type': 'string', 'description': 'Fund or ETF ticker, profile id, SEC series id, or verified share-class alias (e.g., MXF, IVV, S000004344, VOO)'}, 'maxResults': {'type': 'integer', 'default': 10, 'description': 'Maximum number of annual reports to return (default: 10, max: 500)'}}}
GetFundProfile
Fund Profile and Top Holdings
Get a registered fund's profile and largest stored holdings from its latest SEC Form NPORT-P report. Accepts a profile ID, SEC series ID, stored ticker, or verified alias from SearchFunds. Returns registrant, series, assets, reported and stored holding counts, and the largest stored positions. Some multi-series trusts store only tracked-stock positions; reported counts and asset totals still describe the full filing. Use GetFundsHoldingStock for the inverse lookup.
只读
输入模式
{'type': 'object', 'required': ['fund'], 'properties': {'fund': {'type': 'string', 'description': "Fund profile id, SEC series id, stored series ticker, or verified share-class alias from SearchFunds (e.g., 'ishares-russell-2000-etf-s000004344', 'S000004344', 'IWM', or 'VOO')."}, 'offset': {'type': 'integer', 'default': 0, 'description': 'Number of ranked holdings to skip before returning rows (default: 0)'}, 'maxResults': {'type': 'integer', 'default': 20, 'description': 'Maximum number of holdings to return, largest first (default: 20, max: 500)'}}}
GetFundsHoldingStock
Funds Holding a Stock
Get the registered investment companies (mutual funds and ETFs) holding an exact stock or ETF listing, from SEC Form NPORT-P portfolio reports. The listed security's authoritative CUSIP is matched against the holding rows on each fund series' most recent report (series that stopped filing more than 18 months ago are excluded), so an exited position never shows as current. Returns the fund's registrant and series, the reporting period, the position size, its U.S.-dollar value, its share of the fund's net assets and the payoff profile (Long/Short), largest positions first. Report dates differ per fund series (each files on its own fiscal quarter), so values are as of each row's report date and cross-row totals mix as-of dates.
只读
输入模式
{'type': 'object', 'required': ['ticker'], 'properties': {'offset': {'type': 'integer', 'default': 0, 'description': 'Number of matching fund positions to skip before returning rows (default: 0)'}, 'ticker': {'type': 'string', 'description': 'Listed security ticker (e.g., AAPL, VOO)'}, 'maxResults': {'type': 'integer', 'default': 20, 'description': 'Maximum number of fund positions to return, largest first (default: 20, clamped to 1-500)'}, 'registrantOrSeries': {'type': 'string', 'default': None, 'description': "Optional registrant or series name filter (case-insensitive contains, e.g. 'Vanguard') — reaches positions beyond the largest 500"}}}
GetGoingConcernStatus
Going-Concern Doubt Status
Get a company's going-concern doubt status: whether its latest examined SEC filing states substantial doubt about the company's ability to continue as a going concern, with the verbatim disclosure, the filing it came from, and the history of examined filings showing when doubt appeared, was alleviated, or cleared. Flags are extracted from each company's newest 10-K/10-Q narrative text and verified before publication; a filing without going-concern language counts as no doubt. Coverage starts when the extraction lane first examined the company — earlier filings are not analyzed, so absence from the history does not rule out prior doubt episodes.
只读
输入模式
{'type': 'object', 'required': ['ticker'], 'properties': {'ticker': {'type': 'string', 'description': 'Stock ticker symbol (e.g., AAPL, MSFT).'}}}
GetGovernmentContracts
Federal Contracts by Company
Get federal government contract awards (from USAspending.gov) won by a specific public company. Shows the award (action) date, recipient named by the government, awarding agency, total value (obligated dollars plus unexercised ceiling — not revenue received), outlays when reported, period-of-performance end date, and description. Coverage: only prime contract awards of $1M or more that resolve to a listed company are included, so sums understate total federal revenue. Useful for gauging a company's reliance on federal spending; use GetTopGovernmentContractors to rank companies market-wide.
只读
输入模式
{'type': 'object', 'required': ['ticker'], 'properties': {'agency': {'type': 'string', 'default': None, 'description': "Optional case-insensitive substring filter on the awarding agency (e.g., 'Defense')"}, 'offset': {'type': 'integer', 'default': 0, 'description': 'Number of matching awards to skip before returning rows (default: 0)'}, 'sortBy': {'type': 'string', 'default': 'amount', 'description': "Sort order: 'amount' (largest total value first, default) or 'date' (most recent award first)"}, 'ticker': {'type': 'string', 'description': 'Stock ticker symbol (e.g., LMT, RTX, BA)'}, 'endDate': {'type': 'string', 'default': None, 'description': 'End date in YYYY-MM-DD format (defaults to today)'}, 'startDate': {'type': 'string', 'default': None, 'description': 'Start date in YYYY-MM-DD format, filtering on the award action date (defaults to 1 year ago)'}, 'maxResults': {'type': 'integer', 'default': 50, 'description': 'Maximum number of awards to return (default: 50)'}}}
GetGuidance
Company Guidance
Get company guidance from written Item 2.02 earnings releases and earnings-call transcripts, newest release first, with range, unit, GAAP basis, fiscal period and source provenance. Closed target periods are marked ended. Revenue and diluted-EPS guidance includes the reported actual and verdict once comparable XBRL facts exist; non-GAAP guidance is never compared with GAAP actuals. Coverage notes distinguish unprocessed documents from sources that state no guidance.
只读
输入模式
{'type': 'object', 'required': ['ticker'], 'properties': {'ticker': {'type': 'string', 'description': 'Stock ticker symbol (e.g., AAPL, MSFT).'}}}
GetIndexChanges
Index Additions and Deletions
Get the companies that have joined or left a major US stock index, newest first. Changes are derived by comparing consecutive constituent lists from the funds that track the index, so each one is dated to the window between two reports rather than to an announcement: a daily holdings file dates a change to a day, a quarterly filing only to a quarter. Several funds track the same index and each records a change separately, so records for the same company and direction over overlapping windows are collapsed into the single event a reader should see, keeping the narrowest window. This is observed membership, not an announcement feed, so a change appears once a tracking fund has actually reported it.
只读
输入模式
{'type': 'object', 'required': ['index'], 'properties': {'index': {'type': 'string', 'description': 'Index name or slug, for example "S&P 500", "sp-500", "nasdaq-100" or "Russell 2000".'}, 'maxResults': {'type': 'integer', 'default': 25, 'description': 'Maximum changes to return, newest first (default 25, max 500).'}}}
GetIndexComposition
Index Constituents
Get the current constituent list of a major US stock index: S&P 500, S&P MidCap 400, S&P SmallCap 600, Nasdaq-100, Russell 1000, Russell 2000, or the Dow Jones Industrial Average. Each row carries the company's rank by weight, its ticker, and its share of the index. The list is a full-replication tracking fund's own disclosed holdings, taken from an SEC Form N-PORT filing or from the holdings file the fund publishes daily, and the answer names which fund and which date it came from. A list is only published once a fund's filing reaches us whole, so a partial filing is never served as a shrunken index. Rows that could not be matched to a tracked company are listed under the name the fund reported rather than dropped, because a dropped row would make the index look shorter than it is. Use GetIndexChanges for what has joined or left, and GetIndexForecast for who the published rules point to next.
只读
输入模式
{'type': 'object', 'required': ['index'], 'properties': {'index': {'type': 'string', 'description': 'Index name or slug, for example "S&P 500", "sp-500", "nasdaq-100" or "Russell 2000".'}, 'offset': {'type': 'integer', 'default': 0, 'description': 'Rows to skip before returning, for paging through a full list (default 0).'}, 'maxResults': {'type': 'integer', 'default': 100, 'description': 'Maximum constituents to return, heaviest first (default 100, max 500).'}}}
GetIndexForecast
Index Rebalance Forecast
Apply an index's published entry rules and return candidates with rule-by-rule evidence. S&P results are SCREENS because a committee chooses additions; the S&P 500 adds versioned 90-day empirical join probabilities for eligible candidates and exit probabilities for every member. They are estimates, not guarantees. Russell and Nasdaq-100 are PROJECTIONS decided by published rankings. A non-member with a missing figure has no entry verdict. An unmeasured member stays out of deterministic departure buckets, while the S&P 500 gives it the neutral exit baseline. The Dow has no quantitative rule or forecast. Each model revision is immutable. A model-version change may append a higher revision for the same trading day, and readers use the highest revision.
只读
输入模式
{'type': 'object', 'required': ['index'], 'properties': {'index': {'type': 'string', 'description': 'Index name or slug, for example "S&P 500", "nasdaq-100" or "Russell 2000". The Dow is not forecastable.'}, 'maxResults': {'type': 'integer', 'default': 25, 'description': 'Maximum companies to return per bucket (default 25, max 1000).'}}}
GetInsiderOwnership
Insider Ownership Summary
Get a summary of insider ownership for a stock, ranked by total shares held. Shares come from each insider's most recent SEC Form 3/4/5 filing: the filing's closing balance per security and ownership bucket (actual shares only — options and other derivative holdings are excluded), summed into Direct and Indirect columns and restated onto today's split basis, so they can differ from the raw figures in older filings. Indirect can understate an insider holding through several vehicles, because a filing reports one balance per vehicle and only the last is kept. Former insiders may linger with stale dates or zero shares. Returns at most maxResults insiders (default 30). Use this to understand the insider ownership structure of a company; use GetInsiderTransactions for the underlying trades.
只读
输入模式
{'type': 'object', 'required': ['ticker'], 'properties': {'offset': {'type': 'integer', 'default': 0, 'description': "Number of ranked insiders to skip before returning rows (default: 0, clamped to 0-100000). For the next page, add the returned row count to the clamped current offset; if the next offset exceeds 100000, narrow the filters instead. Stop when fewer than the effective page size (maxResults clamped to 1-500) are returned, or the response's total has been reached."}, 'ticker': {'type': 'string', 'description': 'Company ticker symbol (e.g., AAPL, MSFT)'}, 'maxResults': {'type': 'integer', 'default': 30, 'description': 'Maximum number of insiders to return (default: 30, max: 500; values outside 1-500 are clamped)'}}}
GetInsiderSentimentScores
Insider Sentiment Scores
Rank stocks by a peer-relative 0-100 insider-accumulation score over 90 days: net buyers, net shares bought as a percent of shares outstanding, and net buy value. It uses qualifying open-market Forms 4/5 purchases and sales; Form 3 establishes initial ownership, and disclosed Rule 10b5-1 trades are excluded. Filter for cluster buys or liquidity, request the bottom ranking for distribution, or pass ticker for one stock's factors and universe rank. Filters never renumber the universe rank. Use GetInsiderTransactions for the filings.
只读
输入模式
{'type': 'object', 'properties': {'bottom': {'type': 'boolean', 'default': False, 'description': 'Return the LOWEST-scored stocks instead — the heaviest peer-relative net insider selling — lowest score first.'}, 'offset': {'type': 'integer', 'default': 0, 'description': 'Number of matching ranked stocks to skip before returning rows (default: 0; ignored for a single-ticker lookup).'}, 'ticker': {'type': 'string', 'default': None, 'description': "Optional stock ticker (e.g. NVDA): returns that one stock's score, factor breakdown, and rank within the scored universe instead of the leaderboard. The other filters do not apply to a single-ticker lookup."}, 'maxResults': {'type': 'integer', 'default': 25, 'description': 'Maximum number of stocks to return (default: 25, highest score first; clamped to 1-200).'}, 'minMarketCap': {'type': 'number', 'default': 0, 'description': 'Minimum market capitalization in US dollars (e.g. 300000000 = $300M; default 0 = no floor). Stocks with an unknown market cap are excluded when set.'}, 'minSharePrice': {'type': 'number', 'default': 0, 'description': 'Minimum share price in US dollars (e.g. 5 = $5; default 0 = no floor). Stocks with an unknown price are excluded when set.'}, 'clusterBuysOnly': {'type': 'boolean', 'default': False, 'description': 'Return only stocks flagged as cluster buys (three or more distinct insiders buying in the window).'}, 'minDollarVolume': {'type': 'number', 'default': 0, 'description': 'Minimum trailing 3-month average daily dollar volume in US dollars (e.g. 5000000 = $5M/day; default 0 = no floor). Stocks with unknown volume are excluded when set.'}}}
GetInsiderTransactions
Insider Transactions (Forms 4/5)
Get recent insider trading transactions for a stock from SEC Forms 4 and 5, newest first. Form 3 supplies initial ownership rather than a transaction. The Type column carries the SEC transaction code meaning: 'Buy'/'Sell' are open-market purchases/sales only, while Award, Conversion, Exercise, Tax Payment, Expiration, Gift, Inheritance, Discretionary and Other are compensation or derivative mechanics — not conviction trades. The 10b5-1 column marks trades made under a pre-arranged Rule 10b5-1 plan ('-' = filing predates the 2023 checkbox). Per-row Shares/Price/Value are as filed; Owned After is the post-transaction balance restated onto today's split basis, tracked per security kind and ownership form. Supports optional date-range, transaction-type and insider-name filters to reach history beyond the newest rows. Use this to understand insider buying/selling activity.
只读
输入模式
{'type': 'object', 'required': ['ticker'], 'properties': {'offset': {'type': 'integer', 'default': 0, 'description': 'Number of matching transactions to skip before returning rows (default: 0)'}, 'ticker': {'type': 'string', 'description': 'Company ticker symbol (e.g., AAPL, MSFT)'}, 'toDate': {'type': 'string', 'default': None, 'description': 'Only include transactions on or before this date, format yyyy-MM-dd (optional)'}, 'fromDate': {'type': 'string', 'default': None, 'description': 'Only include transactions on or after this date, format yyyy-MM-dd (optional)'}, 'maxResults': {'type': 'integer', 'default': 50, 'description': 'Maximum number of transactions to return (default: 50, max: 500; values outside 1-500 are clamped)'}, 'insiderName': {'type': 'string', 'default': None, 'description': "Only include transactions by insiders whose SEC-filed name contains every word of this value, case-insensitive (e.g. 'Huang') (optional)"}, 'transactionType': {'type': 'string', 'default': None, 'description': 'Only include one transaction type: Buy, Sell, Award, Conversion, Exercise, TaxPayment, Expiration, Gift, Inheritance, Discretionary or Other (optional)'}}}
GetInstitutionalOwnershipHistory
Institutional Ownership History
Get the historical trend of aggregate reported 13F exposure for an exact stock or ETF listing across multiple quarters. The legacy Total Shares field sums reported quantities across common-share rows, put/call notional-underlying rows, and any tracked principal-denominated rows, so it is not a pure share-ownership measure. Shows total reported quantity, published position value, and filer count. Changes are withheld when a relevant filer has no observed 13F in either compared quarter; missing filings and filer identity changes are not trades. Values normally use report-date closing prices, may fall back to filer values, and can include zero when unavailable. While the newest quarter's filing window is open, non-ETF primary stocks use a provisional combined view; ETF listings remain exact and as-filed because carry-forward is filer-wide.
只读
输入模式
{'type': 'object', 'required': ['ticker'], 'properties': {'ticker': {'type': 'string', 'description': 'Listed security ticker (e.g., AAPL, VOO)'}, 'maxPeriods': {'type': 'integer', 'default': 8, 'description': 'Maximum number of quarterly periods to return (default: 8, clamped to 1-500)'}}}
GetInstitutionCloneBacktest
13F Portfolio Clone Backtest
Backtest how cloning an institutional filer's reported 13F portfolio would have performed against a market benchmark, either over a trailing window (windowYears) or an explicit fromDate/toDate range. Reconstructs the filer's portfolio at each quarterly 13F snapshot, rebalances on the SEC filing lag, and values each exact listed security on raw closing prices. Returns price return (dividends excluded), CAGR, and max drawdown for the clone and benchmark, plus price-return alpha. Returns are unavailable when a held security or benchmark crosses a captured split without a certified price basis; the requested window is not shortened to hide it.
只读
输入模式
{'type': 'object', 'required': ['institution'], 'properties': {'toDate': {'type': 'string', 'default': None, 'description': 'Optional window end in YYYY-MM-DD format (defaults to today when only fromDate is given)'}, 'fromDate': {'type': 'string', 'default': None, 'description': 'Optional window start in YYYY-MM-DD format for an anchored historical backtest (e.g. 2015-01-01); overrides windowYears'}, 'benchmark': {'type': 'string', 'default': 'SPY', 'description': 'Benchmark ticker to compare against (default: SPY)'}, 'institution': {'type': 'string', 'description': "Institution name or SEC CIK (e.g., 'Berkshire Hathaway', '1067983', or zero-padded '0001067983'). Unique partials and verified aliases resolve; ambiguous partials return candidate CIKs."}, 'windowYears': {'type': 'integer', 'default': 3, 'description': 'Trailing window length in years anchored at today (default: 3, clamped to 1-20; ignored when fromDate/toDate are supplied)'}}}
GetInstitutionConsensusHoldings
Consensus Holdings Across Institutions
Combine 2-25 institutions' 13F portfolios on their latest common report date. Ranks stocks by holder count, then combined value. Published values normally use report-date closing prices, may fall back to filer values, and can be zero when unavailable. Set minInstitutions to 2 or more for positions shared by multiple filers.
只读
输入模式
{'type': 'object', 'required': ['institutionNames'], 'properties': {'maxResults': {'type': 'integer', 'default': 30, 'description': 'Maximum number of stocks to return (default: 30, clamped to 1-500)'}, 'reportDate': {'type': 'string', 'default': None, 'description': 'Quarter-end 13F report date in YYYY-MM-DD format (defaults to the latest common quarter; an off-quarter date snaps to the nearest common report on or before it)'}, 'minInstitutions': {'type': 'integer', 'default': 1, 'description': 'Minimum number of institutions that must hold a stock (default: 1; set 2 or more for shared positions)'}, 'institutionNames': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Institution names or CIKs (2-25). Unique partial names and verified aliases resolve; ambiguous partials return candidate CIKs.'}}}
GetInstitutionPortfolio
Institution Portfolio (13F)
View the tracked stock positions of a specific institutional investor from an SEC 13F-HR filing. Shows the largest positions by published value (default 20, max 500), with share counts, value, percent of tracked 13F value, and position count. Values normally use report-date closing prices, may fall back to filer values, and can be zero when unavailable. Coverage is limited to tracked U.S.-listed common stocks and related put/call positions; use position type before treating options as ownership. Use SearchInstitutions first when the name is ambiguous.
只读
输入模式
{'type': 'object', 'required': ['institutionName'], 'properties': {'offset': {'type': 'integer', 'default': 0, 'description': "Number of ranked holding rows to skip before returning rows (default: 0, clamped to 0-100000). For the next page, add the returned row count to the clamped current offset; if the next offset exceeds 100000, narrow the filters instead. Stop when fewer than the effective page size (maxResults clamped to 1-500) are returned, or the response's total has been reached."}, 'maxResults': {'type': 'integer', 'default': 20, 'description': 'Maximum number of holdings to return (default: 20, clamped to 1-500)'}, 'reportDate': {'type': 'string', 'default': None, 'description': "Quarter-end 13F report date in YYYY-MM-DD format (defaults to the holder's latest; an off-quarter date snaps to the nearest report on or before it)"}, 'institutionName': {'type': 'string', 'description': 'Institution name or SEC CIK. A unique partial name resolves; an ambiguous partial returns candidate CIKs instead of selecting silently.'}}}
GetInstitutionQuarterlyActivity
Institution Quarterly Activity
Get an institution's quarterly position-change activity — Initiated / Increased / Reduced / Exited stocks diffed against the immediately prior quarter. Returns the buckets as one markdown section per bucket, sorted by absolute Δ market-value desc (Δ Value includes price movement, not just trading). Use `bucket` to filter to a single bucket. Use this to answer 'what did this fund do this quarter?'
只读
输入模式
{'type': 'object', 'required': ['institutionName'], 'properties': {'bucket': {'type': 'string', 'default': None, 'description': 'Filter to a single bucket: initiated, increased, reduced, exited (omit for all four)'}, 'maxResults': {'type': 'integer', 'default': 20, 'description': 'Maximum number of stocks to return per bucket (default: 20, clamped to 1-500)'}, 'reportDate': {'type': 'string', 'default': None, 'description': "Quarter-end 13F report date in YYYY-MM-DD format (defaults to the holder's latest; an off-quarter date snaps to the nearest report on or before it)"}, 'institutionName': {'type': 'string', 'description': 'Institution name or CIK (a unique partial resolves; ambiguous partials return candidate CIKs)'}}}
GetInstitutionSectorAllocation
Institution Sector Allocation
Get an institution's 13F portfolio allocation for a given report quarter (defaults to the latest), grouped by fine-grained industry (default) or rolled up by sector via `groupBy`. Returns a markdown table sorted by % of portfolio descending, with stocks lacking a classification collapsed into a single 'Unclassified' row at the end. Published values normally use report-date closing prices, may fall back to filer values, and can be zero when unavailable. Use SearchInstitutions for an exact CIK; ambiguous partial names return candidates instead of selecting silently.
只读
输入模式
{'type': 'object', 'required': ['institutionName'], 'properties': {'groupBy': {'type': 'string', 'default': 'industry', 'description': "Grouping level: 'industry' (default, fine-grained) or 'sector' (broad rollup)"}, 'reportDate': {'type': 'string', 'default': None, 'description': "Quarter-end 13F report date in YYYY-MM-DD format (defaults to the holder's latest; an off-quarter date snaps to the nearest report on or before it)"}, 'institutionName': {'type': 'string', 'description': 'Institution name or CIK (a unique partial resolves; ambiguous partials return candidate CIKs)'}}}
GetInstitutionSummary
Institution Portfolio Summary
Get the portfolio summary header for an institutional 13F filer — published tracked 13F value (not total firm AUM), position count, top-10 / top-25 concentration, QoQ turnover, and the latest / prior report dates with the count of quarters tracked in this database. Values normally use report-date closing prices, may fall back to filer values, and can include zero for unavailable valuations. Resolve exact CIKs with SearchInstitutions; ambiguous partial names return candidates rather than selecting a filer silently.
只读
输入模式
{'type': 'object', 'required': ['institutionName'], 'properties': {'reportDate': {'type': 'string', 'default': None, 'description': "Quarter-end 13F report date in YYYY-MM-DD format (defaults to the holder's latest; an off-quarter date snaps to the nearest report on or before it)"}, 'institutionName': {'type': 'string', 'description': 'Institution name or CIK (a unique partial resolves; ambiguous partials return candidate CIKs)'}}}
GetInvestmentAdviser
Investment Adviser Profile (Form ADV)
Get the full Form ADV profile for a single SEC-registered investment adviser by its Organization CRD number: legal and business names, SEC file number, main office, website, regulatory assets under management (discretionary, non-discretionary and total), employee count, and how the firm is compensated (fee structure). Find CRD numbers with SearchInvestmentAdvisers.
只读
输入模式
{'type': 'object', 'required': ['crd'], 'properties': {'crd': {'type': 'integer', 'description': "The adviser's Organization CRD number (e.g., 231)"}}}
GetInvestorEventSlideMetadata
Investor Event Slide Metadata
Get metadata and access links for a captured investor-event slide deck by event id. Returns the same deck metadata as REST: event and ticker, call date, deck title and source, PDF versus image-slideshow kind, page count, capture time, MIME type, and either the PDF API path or ordered slide-image API paths. The binary PDF/image contents are not embedded in the response. Get the event id from ListInvestorEvents or GetEarningsCallEvent.
只读
输入模式
{'type': 'object', 'required': ['eventId'], 'properties': {'eventId': {'type': 'string', 'format': 'uuid', 'description': 'The investor event id (from ListInvestorEvents or GetEarningsCallEvent)'}}}
GetInvestorEventTranscript
Investor Event Transcript
Get the speaker-labelled transcript of a specific investor event (earnings call, conference, investor day) by its event id — every speaker turn in order, attributed to the real person (executive or analyst) with their role when the resolution is trusted; unverified voices show as a role label (e.g. Operator) or a neutral speaker number. Get the event id from ListInvestorEvents. Use this for conferences and other non-earnings events, which have no fiscal quarter to key on.
只读
输入模式
{'type': 'object', 'required': ['eventId'], 'properties': {'limit': {'type': 'integer', 'default': 50, 'description': 'Maximum number of speaker turns to return (default 50, max 200; values outside 1-200 are clamped)'}, 'offset': {'type': 'integer', 'default': 0, 'description': 'Number of leading speaker turns to skip, for paging through events longer than the 200-turn cap (default 0)'}, 'eventId': {'type': 'string', 'format': 'uuid', 'description': 'The investor event id (from ListInvestorEvents)'}}}
GetInvestorRelationsNews
Investor Relations News
Get recent investor-relations press releases for a stock, scraped from the company's IR website. Returns the most recent news items (headline, publish date, summary when the source provides one, and link) in reverse-chronological order. Use this to see a company's latest official announcements straight from its IR page, distinct from third-party news. Coverage is partial — only companies whose IR page has been discovered and content-scraped have items, so an empty answer may be a coverage gap rather than corporate silence; the response says which case applies.
只读
输入模式
{'type': 'object', 'required': ['ticker'], 'properties': {'since': {'type': 'string', 'default': None, 'description': 'Optional earliest publish date, strict yyyy-MM-dd (UTC). Only items published on or after this date are returned.'}, 'offset': {'type': 'integer', 'default': 0, 'description': 'Number of matching news items to skip before returning rows (default: 0).'}, 'ticker': {'type': 'string', 'description': 'Company ticker symbol (e.g., NVDA)'}, 'maxResults': {'type': 'integer', 'default': 20, 'description': 'Maximum number of news items to return (default: 20, max: 500)'}}}
GetIpoDetails
IPO Registration Details
Get one S-1/F-1 registration's full picture by the filer's SEC CIK (as listed by GetIpoFeed): lifecycle status, verified offering classification, effective-prospectus accession and EDGAR link, proposed ticker and exchange, the offer price range and shares offered with their verbatim prospectus quotes, what the company does, how it will use the proceeds, the underwriting banks in cover order, the key summary risk factors (each with its verbatim prospectus sentence), the annual pre-IPO financials from the filer's own XBRL-tagged statements, and the complete S-1/amendment/prospectus filing chain with EDGAR links. Underwriter and risk-factor availability distinguishes pending/rejected extraction from a completed read that stated none. Everything extracted is verified against the filing text and never estimated.
只读
输入模式
{'type': 'object', 'required': ['cik'], 'properties': {'cik': {'type': 'string', 'description': "The filer's SEC CIK, with or without leading zeros (e.g. 1995137)."}}}
GetIpoFeed
IPO Feed
Get the US S-1/F-1 registration pipeline, newest filing activity first. Rows distinguish Primary, Resale, DirectListing, NonOffering and Unknown transactions; terms come from the newest effective prospectus or latest filing and never a superseded document. Results include lifecycle, proposed listing, applicable offer terms and latest annual XBRL financials in the filer's currency. Filter lifecycle or SEC-classified SPAC versus operating filers. Use a row's CIK with GetIpoDetails for the filing chain and extracted detail.
只读
输入模式
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'default': 25, 'description': 'Maximum registrations to return, newest filing activity first (default 25).'}, 'offset': {'type': 'integer', 'default': 0, 'description': 'Number of matching registrations to skip before returning rows (default 0).'}, 'status': {'type': 'string', 'default': None, 'description': 'Optional lifecycle filter: Filed, Priced, Listed, or Withdrawn. Omit for all.'}, 'filerType': {'type': 'string', 'default': None, 'description': 'Optional company-type filter: Operating (non-SPAC) or Spac (SIC 6770 blank checks). Omit for all.'}}}
GetLargestShortVolume
Largest Short Volume by Day
Get the exact listed securities, including ETFs, with the largest daily short sale volume for a single trading day (defaults to the latest available), from FINRA's daily short sale volume files, sorted by short volume descending. Short % is the share of that day's FINRA-facility (off-exchange/TRF) volume sold short — 40-50% is a normal market-making baseline — NOT short interest (the open short position; use GetShortInterest/GetShortInterestSnapshot for positions and GetShortSqueezeScores for operating-stock squeeze candidates; use GetShortVolume for one listed security's daily history). Pass sortBy=shortPercent with a minTotalVolume floor to rank by short intensity instead of raw size.
只读
输入模式
{'type': 'object', 'properties': {'date': {'type': 'string', 'default': None, 'description': 'Trading day in YYYY-MM-DD format (defaults to the latest available day)'}, 'offset': {'type': 'integer', 'default': 0, 'description': "Number of ranked results to skip before returning rows (default: 0, clamped to 0-100000). For the next page, add the returned row count to the clamped current offset; if the next offset exceeds 100000, narrow the filters instead. Stop when fewer than the effective page size (maxResults clamped to 1-500) are returned, or the response's total has been reached."}, 'sortBy': {'type': 'string', 'default': 'shortVolume', 'description': 'Sort key: shortVolume (default) or shortPercent — with shortPercent set a minTotalVolume floor, otherwise illiquid names dominate'}, 'maxResults': {'type': 'integer', 'default': 50, 'description': 'Maximum number of results to return (default: 50, max: 500)'}, 'minShortVolume': {'type': 'integer', 'default': 0, 'description': 'Minimum short volume filter (default: 0)'}, 'minTotalVolume': {'type': 'integer', 'default': 0, 'description': 'Minimum total FINRA-reported volume filter, in shares (default: 0 = no floor)'}}}
GetLatestCftcPositioning
Latest CFTC Positioning Snapshot
Get the latest COT positioning snapshot across all tracked futures contracts, grouped by category (Agriculture, Energy, Metals, Equity Indices, Interest Rates, Currencies). Shows commercial and non-commercial net positions in contract counts from the legacy futures-only COT report (positions as of each Tuesday, published Friday). Each row carries the market code accepted by GetCftcPositioning.
只读
输入模式
{'type': 'object', 'properties': {'category': {'type': 'string', 'default': None, 'description': 'Category filter: Agriculture, Energy, Metals, EquityIndices, InterestRates, Currencies (defaults to all)'}}}
GetLatestClosingPrices
Latest Closing Prices
Get each ticker's newest traded, settled daily close in USD, with one-session change, volume, and trailing 52-week closing range. Rows can have different dates while a session settles; use the Date column. Change is omitted when the immediately prior trading session is absent. Split-limited or partial 52-week ranges are marked in the response. This is settled history, not an intraday quote.
只读
输入模式
{'type': 'object', 'required': ['tickers'], 'properties': {'tickers': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Ticker symbols (max 25). Class shares may use BRK-B or BRK.B.'}}}
GetLatestEconomicIndicators
Latest Economic Indicators
Get the latest values for key economic indicators across categories: interest rates, yield spreads, inflation, employment, GDP, money supply, sentiment, housing, exchange rates, and market indicators. Each row shows a series' latest stored observation with its date, plus the previous observation and the change between them for direction — check the Latest Date column for freshness. Returns a snapshot of current macro conditions.
只读
输入模式
{'type': 'object', 'properties': {'category': {'type': 'string', 'default': None, 'description': 'Category filter: InterestRates, YieldSpreads, CorporateBondSpreads, Inflation, Employment, GdpAndOutput, MoneySupply, Sentiment, Housing, ExchangeRates, Market (defaults to all)'}}}
GetLiveQuote
Live Stock Quote
Get the latest available consolidated SIP intraday reading for active U.S. listings, including last trade, UTC timestamp, session freshness, and bid/ask. This needs a paid plan: Pro receives real-time readings and Plus receives 15-minute-delayed readings, while the Free plan covers end-of-day data only and is answered with an upgrade note. Stale=true means the returned trade predates the expected market session and must not be reported as current. This tool does not backfill historical intraday bars after hours. Missing readings are listed explicitly. Use GetLatestClosingPrices or GetStockPrices for settled daily bars.
只读
输入模式
{'type': 'object', 'required': ['tickers'], 'properties': {'tickers': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Ticker symbols (max 25).'}}}
GetMarketHolidayCalendar
US Market Holiday Calendar
List the US equity market holidays and early-close (1:00 p.m. ET) half days for a calendar year (NYSE/Nasdaq). Defaults to the current year. The calendar is curated for 2025 through 2027; a year outside that range reports so rather than guessing.
只读
输入模式
{'type': 'object', 'properties': {'year': {'type': ['integer', 'null'], 'default': None, 'description': 'Calendar year, e.g. 2026. Defaults to the current year.'}}}
GetMarketStatus
US Market Status
Get the current US equity market status (NYSE/Nasdaq), evaluated in America/New_York: whether the market is open, the current session (pre-market, regular, after-hours, or closed), whether today is a full-day holiday or a 1:00 p.m. ET early close, today's regular and extended (pre-market/after-hours) trading hours, and the next open and next close. Backed by the exchange's curated holiday and early-close calendar, not a heuristic.
只读
输入模式
{'type': 'object', 'properties': {}}
GetMarketWide13FActivity
Market-Wide 13F Activity
Get the market-wide 13F leaderboards for a given quarter — which stocks were most bought, most sold, most initiated, or most exited across all 13F filers vs the prior quarter. The `bucket` argument selects one of: top-buys (Δ shares > 0 ranked by Δ value desc), top-sells (Δ shares < 0 ranked by Δ value asc), new-positions (stocks ranked by count of filers initiating a position), sold-out-positions (stocks ranked by count of filers exiting). Δ Value is the change in published position value: values normally use report-date closing prices, may fall back to filer values, and can be zero when unavailable. It includes price movement on held shares, so use Δ Shares to read the position change itself. The output publishes the first complete 13F report quarter and refuses comparisons that cross that corpus boundary. Use this to answer 'what's the consensus 13F move this quarter?'
只读
输入模式
{'type': 'object', 'required': ['bucket'], 'properties': {'bucket': {'type': 'string', 'description': 'Bucket: top-buys, top-sells, new-positions, or sold-out-positions'}, 'maxResults': {'type': 'integer', 'default': 20, 'description': 'Maximum number of stocks to return (default: 20, clamped to 1-500)'}, 'reportDate': {'type': 'string', 'default': None, 'description': 'Quarter-end 13F report date in YYYY-MM-DD format, e.g. 2026-03-31 (defaults to the latest available 13F quarter; an off-quarter date snaps to the nearest report on or before it)'}}}
GetMarketWideCongressionalActivity
Market-Wide Congressional Activity
Get the stocks members of Congress traded most over a trailing window, aggregated across EVERY member and ticker — 'what did Congress buy this week' without needing a ticker or a member name. The window is anchored on the DISCLOSURE (filing) date because the STOCK Act's general outside filing deadline is 45 days after a trade; late or amended records can arrive later. Each row aggregates one stock's disclosed trades: distinct members buying and selling, trade counts, estimated dollar flow per direction (each disclosed amount range's midpoint — members disclose a band, not an exact figure), the largest participants, and the latest filing and transaction dates. direction=buys ranks by estimated net buying, direction=sells by estimated net selling; chamber=senate/house narrows to one chamber. Use GetCongressionalTrades for one stock's underlying disclosures and GetMemberTrades for one member's.
只读
输入模式
{'type': 'object', 'properties': {'days': {'type': 'integer', 'default': 30, 'description': 'Trailing disclosure window in days (default: 30, max: 365).'}, 'chamber': {'type': 'string', 'default': None, 'description': "Filter by chamber: 'senate' or 'house' (defaults to both)."}, 'direction': {'type': 'string', 'default': 'buys', 'description': "Ranking direction: 'buys' (most net congressional buying first, default) or 'sells' (most net selling first)."}, 'maxResults': {'type': 'integer', 'default': 25, 'description': 'Maximum number of stocks to return (default: 25, max: 200).'}}}
GetMemberNetWorth
Congress Member Net Worth
Get a congress member's net worth history from their annual financial disclosures. Disclosed values are ranges, so every year is a band (minimum-maximum), never a point estimate. Only electronically filed reports are read: a missing year means no electronic filing, not zero net worth. Use SearchCongressMembers to find member names.
只读
输入模式
{'type': 'object', 'required': ['memberName'], 'properties': {'maxResults': {'type': 'integer', 'default': 20, 'description': 'Maximum number of years to return (default: 20, max: 500, newest first)'}, 'memberName': {'type': 'string', 'description': "Congress member name, case-insensitive (e.g., 'Nancy Pelosi', 'Marsha Blackburn'); use SearchCongressMembers to find the exact name"}}}
GetMemberTrades
Trades by Congress Member
Get a congress member's disclosed securities transactions (newest first, last year by default). Shows tickers, transaction and filing dates, disclosed amount ranges, and the filed Asset identifying the instrument (such as stock, option, or bond). Use SearchCongressMembers to find member names, and GetCongressionalTrades for all members' transactions in one ticker.
只读
输入模式
{'type': 'object', 'required': ['memberName'], 'properties': {'offset': {'type': 'integer', 'default': 0, 'description': "Number of trades to skip before returning rows (default: 0, clamped to 0-100000). For the next page, add the returned row count to the clamped current offset; if the next offset exceeds 100000, narrow the filters instead. Stop when fewer than the effective page size (maxResults clamped to 1-500) are returned, or the response's total has been reached."}, 'ticker': {'type': 'string', 'default': None, 'description': 'Optional stock ticker to combine with the member filter (e.g., AAPL)'}, 'endDate': {'type': 'string', 'default': None, 'description': 'End date in YYYY-MM-DD format (defaults to today)'}, 'startDate': {'type': 'string', 'default': None, 'description': 'Start date in YYYY-MM-DD format (defaults to 1 year ago)'}, 'maxResults': {'type': 'integer', 'default': 50, 'description': 'Maximum number of trades to return (default: 50, max: 500, newest first)'}, 'memberName': {'type': 'string', 'description': "Congress member name, case-insensitive (e.g., 'Nancy Pelosi', 'Dan Crenshaw'); use SearchCongressMembers to find the exact name"}, 'transactionType': {'type': 'string', 'default': None, 'description': 'Filter by transaction type: Purchase or Sale; the synonyms Buy/Sell are accepted (defaults to all)'}}}
GetMostHeldStocks
Most Widely Held Stocks
Get the cross-sectional ranking of stocks by institutional 13F breadth for a quarter. Rank by filer count (default), quarter-over-quarter filer-count change, or total published position value. Values normally use report-date closing prices, may fall back to filer values, and can include zero for unavailable valuations. Includes Δ filers, total value, Δ value, and share of the 13F universe. The first complete report quarter is published; earlier rankings and boundary-quarter deltas are unavailable. Only currently-held stocks rank; sold-out names use GetMarketWide13FActivity. During the newest quarter's open filing window, non-filers carry prior-quarter positions (noted in output).
只读
输入模式
{'type': 'object', 'properties': {'sort': {'type': 'string', 'default': 'filers', 'description': "Sort by: 'filers' (default, # of 13F filers desc), 'filersDelta' (QoQ filer-count delta desc — warming names), 'filersDeltaAsc' (QoQ filer-count delta asc — cooling names), or 'value' (current total published position value desc)"}, 'maxResults': {'type': 'integer', 'default': 25, 'description': 'Maximum number of stocks to return (default: 25, clamped to 1-500)'}, 'reportDate': {'type': 'string', 'default': None, 'description': 'Quarter-end 13F report date in YYYY-MM-DD format, e.g. 2026-03-31 (defaults to the latest available 13F quarter; an off-quarter date snaps to the nearest report on or before it)'}}}
GetMyPortfolio
My Portfolio
Get the caller's saved personal portfolios, including stock and option lots, cost basis, realized and unrealized profit, and watched instruments. Omit portfolio to list portfolios; if exactly one exists it is returned in full. Pass its name to select one. Quantities are signed; costs are the owner's per-share inputs and are never split-restated. Every mark names its session. Unpriceable and expired positions have unknown value, never zero. Watched instruments are not positions and must not be counted as exposure. Returned lot ids address the update, close and remove tools. Use GetInstitutionPortfolio for 13F holdings.
只读
输入模式
{'type': 'object', 'properties': {'portfolio': {'type': 'string', 'default': None, 'description': "Optional. The portfolio's name. Omit to list the account's portfolios."}}}
GetNonGaapBridge
Non-GAAP to GAAP Bridge
Get a company's non-GAAP-to-GAAP reconciliations ('bridges') as extracted from its earnings releases and 10-K/10-Q periodic reports: for each stated non-GAAP measure (Adjusted EBITDA, adjusted EPS, adjusted operating income, FFO/AFFO, ...), the GAAP starting line, each stated adjustment in order, and the non-GAAP result, with the period, unit and the verbatim source quote. Verifier-approved, newest filing first. Use this to see exactly how a company builds its adjusted numbers; GetCompanyKpis carries the same bridge inline with a metric, this returns the reconciliations on their own.
只读
输入模式
{'type': 'object', 'required': ['ticker'], 'properties': {'limit': {'type': 'integer', 'default': 6, 'description': 'Maximum number of source filings to read, newest first (default 6, valid 1-20; out-of-range values are clamped)'}, 'offset': {'type': 'integer', 'default': 0, 'description': 'Number of approved source filings to skip before returning rows (default 0)'}, 'ticker': {'type': 'string', 'description': 'Company ticker symbol (e.g., AAPL, MSFT)'}}}
GetOffExchangeVolume
Off-Exchange (Dark Pool) Volume
Get weekly off-exchange (dark pool / OTC) trading volume for an exact stock or ETF listing from the FINRA OTC/ATS Transparency data. Each week shows ATS (alternative trading system / dark pool) volume and trade count, non-ATS OTC volume and trade count, and the total off-exchange volume (ATS + non-ATS OTC). The FINRA file does not include consolidated tape volume, so the off-exchange share of total market volume is not reported here; compute that share elsewhere against a consolidated-volume source. Weeks before 2025-08-11 may include volume from a case-variant sibling security because they predate the ordinal FINRA symbol-map fix and can no longer be re-imported from FINRA's rolling source window. FINRA publishes each week on a delay (2 weeks for Tier 1 NMS stocks, longer for other tiers), so the latest week lags today.
只读
输入模式
{'type': 'object', 'required': ['ticker'], 'properties': {'ticker': {'type': 'string', 'description': 'Listed security ticker (e.g., AAPL, VOO, GME)'}, 'endDate': {'type': 'string', 'default': None, 'description': 'End date in YYYY-MM-DD format (defaults to latest available)'}, 'startDate': {'type': 'string', 'default': None, 'description': 'Start date in YYYY-MM-DD format (defaults to 6 months ago)'}, 'maxResults': {'type': 'integer', 'default': 26, 'description': 'Maximum number of weeks to return — keeps the most recent N weeks in the range, displayed oldest to newest (default: 26, max: 500)'}}}
GetOnBalanceVolume
On-Balance Volume (OBV)
On-Balance Volume (OBV) for a stock. Running cumulative volume that adds the bar's volume on up-closes, subtracts on down-closes, and stays flat on equal closes. Useful for confirming or diverging from price trends with volume flow. OBV is anchored at 0 on the first bar of the requested range, so absolute values shift with startDate and are not comparable across calls - read the slope and divergences, not the level.
只读
输入模式
{'type': 'object', 'required': ['ticker'], 'properties': {'ticker': {'type': 'string', 'description': 'Stock ticker symbol (e.g., AAPL, MSFT). Class shares use a dash (BRK-B); the dot form (BRK.B) is also accepted.'}, 'endDate': {'type': 'string', 'default': None, 'description': 'End date in YYYY-MM-DD format (defaults to latest available)'}, 'startDate': {'type': 'string', 'default': None, 'description': 'Start date in YYYY-MM-DD format (defaults to 6 months ago)'}, 'maxResults': {'type': 'integer', 'default': 60, 'description': 'Maximum number of records to return (default: 60, max: 500); the newest rows are kept and listed newest first.'}}}
GetOptionChain
Option Chain
Get the option chain (calls and puts) for a stock for ONE expiration: strike, greeks (delta/gamma/theta/vega), implied volatility, open interest, and the latest daily price. Defaults to the nearest upcoming expiration; pass expiration=YYYY-MM-DD to pick another (use GetOptionExpirations to list them). When the chain is larger than maxResults the contracts nearest the money are returned, so an unfiltered call already lands where strategies trade. Narrow with minStrike/maxStrike and type (call/put) to reach the wings. Each row attributes its last price, day range and volume to its provider-stamped session and attributes open interest to its separate effective date, or marks either date unknown; implied volatility and greeks are the provider's model values computed at fetch time, so repeated calls can return different values. The daily figures are not live quotes. Bid/ask use real-time OPRA on Pro and a 15-minute delayed indicative feed on Plus; Free covers end-of-day data only.
只读
输入模式
{'type': 'object', 'required': ['ticker'], 'properties': {'type': {'type': 'string', 'default': None, 'description': 'Contract type: call or put (default: both)'}, 'ticker': {'type': 'string', 'description': 'Stock ticker, e.g. AAPL'}, 'maxStrike': {'type': ['number', 'null'], 'default': None, 'description': 'Only include strikes at or below this price'}, 'minStrike': {'type': ['number', 'null'], 'default': None, 'description': 'Only include strikes at or above this price'}, 'expiration': {'type': 'string', 'default': None, 'description': 'Expiration date in YYYY-MM-DD format (default: nearest upcoming)'}, 'maxResults': {'type': 'integer', 'default': 60, 'description': 'Maximum contracts to return (default: 60, max: 500)'}}}
GetOptionContract
Option Contract
Get the full snapshot for ONE option contract by its OCC symbol (e.g. O:AAPL260724C00110000): greeks, implied volatility, open interest, the latest daily price, and bid/ask when the plan entitles quotes. Last, day range and volume name the provider's trading-session timestamp when supplied and otherwise mark it unknown; open interest names its separate effective date when supplied; implied volatility and greeks are the provider's model values computed at fetch time and can differ slightly from a chain response. Bid/ask use consolidated real-time OPRA on Pro and a 15-minute delayed indicative feed on Plus; the Free plan covers end-of-day data only and is answered with an upgrade note.
只读
输入模式
{'type': 'object', 'required': ['ticker', 'contract'], 'properties': {'ticker': {'type': 'string', 'description': 'Stock ticker, e.g. AAPL'}, 'contract': {'type': 'string', 'description': 'OCC option symbol, e.g. O:AAPL260724C00110000'}}}
GetOptionExpirations
Option Expirations
List the available option expiration dates for a stock, with the contract count at each. Use this to pick an expiration for GetOptionChain.
只读
输入模式
{'type': 'object', 'required': ['ticker'], 'properties': {'ticker': {'type': 'string', 'description': 'Stock ticker, e.g. AAPL'}}}
GetPutCallRatios
CBOE Put/Call Ratios
Get CBOE put/call ratio data showing market sentiment. Available types: Total (all exchange), Equity, Index, Vix, Etp. High ratios (>1.0) indicate bearish sentiment; low ratios (<0.7) indicate bullish sentiment. Volumes are contract counts. Data available from November 2006 to present (the Vix type from October 2019); pre-2013 history is sampled roughly weekly rather than daily.
只读
输入模式
{'type': 'object', 'properties': {'type': {'type': 'string', 'default': 'Equity', 'description': 'Ratio type: Total, Equity, Index, Vix, Etp (default: Equity)'}, 'endDate': {'type': 'string', 'default': None, 'description': 'End date in YYYY-MM-DD format (defaults to latest available)'}, 'startDate': {'type': 'string', 'default': None, 'description': 'Start date in YYYY-MM-DD format (defaults to 3 months ago)'}, 'maxResults': {'type': 'integer', 'default': 60, 'description': 'Maximum number of records to return (default: 60, max: 500). When the range holds more rows the newest are kept; rows are always listed oldest to newest.'}}}
GetRevenueBreakdown
Revenue Breakdown by Segment
Get a company's revenue disaggregated by business segment, geography and product/service — plus operating income by segment when the issuer tags it, so segment profitability and margins are answerable — from the dimensional XBRL facts the issuer tags in its own filings. Annual fiscal years only, latest restated values, one table per axis the company reports; source values are as-reported and never estimated, while segment operating margin is derived as operating income divided by revenue for the same folded raw member QName and exact period. Rows within one table can OVERLAP when the issuer tags several granularities on the same axis (a parent segment alongside its components), so never sum rows to derive total revenue — use the consolidated total row each table carries. For consolidated figures use GetFinancialStatement or GetFinancialFact.
只读
输入模式
{'type': 'object', 'required': ['ticker'], 'properties': {'ticker': {'type': 'string', 'description': 'Stock ticker symbol (e.g., AAPL, MSFT)'}, 'maxYears': {'type': 'integer', 'default': 8, 'description': 'Most recent fiscal years to include (default 8, max 12)'}}}
GetShortInterest
Short Interest History
Get bi-monthly short interest history for an exact stock or ETF listing from FINRA. Shows the reported short position, change from the previous settlement, average daily volume, and days to cover per settlement date. Share counts are restated onto today's split basis so the series stays continuous across stock splits; days to cover is as reported (FINRA caps it at 999.99). High days-to-cover (>5) suggests a potential short squeeze — for short interest as a % of shares outstanding and an actual squeeze-candidate ranking use GetShortSqueezeScores; for the market-wide latest settlement use GetShortInterestSnapshot. For primary operating-company stocks only, the answer may also carry a model estimate of the settlement FINRA has not published yet; it appears BELOW the table and must never be presented as a FINRA figure.
只读
输入模式
{'type': 'object', 'required': ['ticker'], 'properties': {'ticker': {'type': 'string', 'description': 'Listed security ticker (e.g., AAPL, VOO, GME)'}, 'endDate': {'type': 'string', 'default': None, 'description': 'End date in YYYY-MM-DD format (defaults to latest available)'}, 'startDate': {'type': 'string', 'default': None, 'description': 'Start date in YYYY-MM-DD format (defaults to 1 year ago)'}, 'maxResults': {'type': 'integer', 'default': 24, 'description': 'Maximum number of records to return — keeps the most recent N settlements in the range, displayed oldest to newest (default: 24, max: 500)'}}}
GetShortInterestSnapshot
Market-Wide Short Interest Snapshot
Market-wide snapshot of the latest FINRA bi-monthly short interest settlement — one row per exact listed security, sorted by days to cover (descending) by default. FINRA caps days to cover at 999.99: capped rows are a sentinel (almost always illiquid names with a tiny average-daily-volume denominator) and are ranked after real readings; pass minAvgDailyVolume (e.g. 100000) to drop illiquid names entirely. This is the raw FINRA snapshot — for genuine short-squeeze candidate ranking use GetShortSqueezeScores; for one stock or ETF's history use GetShortInterest; for daily short-sale flow use GetShortVolume/GetLargestShortVolume.
只读
输入模式
{'type': 'object', 'properties': {'offset': {'type': 'integer', 'default': 0, 'description': "Number of ranked results to skip before returning rows (default: 0, clamped to 0-100000). For the next page, add the returned row count to the clamped current offset; if the next offset exceeds 100000, narrow the filters instead. Stop when fewer than the effective page size (maxResults clamped to 1-500) are returned, or the response's total has been reached."}, 'sortBy': {'type': 'string', 'default': 'daysToCover', 'description': 'Sort key: daysToCover (default; FINRA-capped 999.99 sentinel rows ranked last), shortPosition, or change (largest increase in short position first)'}, 'maxResults': {'type': 'integer', 'default': 50, 'description': 'Maximum number of results to return (default: 50, max: 500)'}, 'minDaysToCover': {'type': 'number', 'default': 0, 'description': 'Minimum days to cover filter (default: 0)'}, 'minAvgDailyVolume': {'type': 'integer', 'default': 0, 'description': 'Minimum average daily share volume — set a floor (e.g. 100000) to drop illiquid names whose days-to-cover is inflated by a tiny volume denominator (default: 0 = no floor)'}}}
GetShortSqueezeScores
Short Squeeze Scores
Rank primary operating-company stocks by a peer-relative 0-100 short-squeeze score using short interest, capped days to cover, price versus trailing VWAP, short-volume trend, short-interest change, fails-to-deliver pressure, and bounded price/volume/earnings catalyst boosts. Optional liquidity floors filter the board without changing scores. Pass ticker for one stock's factor breakdown and universe rank. Exchange-traded products are excluded because issuer shares outstanding and earnings are not product-level facts; use GetShortInterest for an ETF's exact FINRA series.
只读
输入模式
{'type': 'object', 'properties': {'offset': {'type': 'integer', 'default': 0, 'description': "Number of ranked results to skip before returning rows (default: 0, clamped to 0-100000; ignored for a single-ticker lookup). For the next page, add the returned row count to the clamped current offset; if the next offset exceeds 100000, narrow the filters instead. Stop when fewer than the effective page size (maxResults clamped to 1-200) are returned, or the response's total has been reached."}, 'ticker': {'type': 'string', 'default': None, 'description': "Optional stock ticker (e.g. GME): returns that one stock's score, factor breakdown, and rank within the scored universe instead of the board. The liquidity floors do not apply to a single-ticker lookup."}, 'maxResults': {'type': 'integer', 'default': 25, 'description': 'Maximum number of stocks to return (default: 25, highest score first; clamped to 1-200).'}, 'minMarketCap': {'type': 'number', 'default': 0, 'description': 'Minimum market capitalization in US dollars (e.g. 300000000 = $300M; default 0 = no floor). Stocks with an unknown market cap are excluded when set.'}, 'minDollarVolume': {'type': 'number', 'default': 0, 'description': 'Minimum average daily dollar volume in US dollars, approximated as the FINRA average daily share volume times the market-cap-implied share price (e.g. 5000000 = $5M/day; default 0 = no floor). Stocks with unknown volume or market cap are excluded when set.'}}}
GetShortVolume
Daily Short Sale Volume
Get daily short sale volume history for an exact stock or ETF listing from FINRA's short sale volume files. Shows short volume, short-exempt volume, total volume, and short volume percentage per trading day. Volumes cover trades reported to FINRA facilities (off-exchange/TRF) only — NOT consolidated tape volume — and a 40-50% Short % is the normal baseline from market-maker liquidity provision, so it must not be quoted as a share of the stock's total traded volume. This daily flow metric is distinct from bi-monthly short interest positions: use GetShortInterest for positions, GetLargestShortVolume for a market-wide single-day ranking, and GetShortSqueezeScores for squeeze candidates.
只读
输入模式
{'type': 'object', 'required': ['ticker'], 'properties': {'ticker': {'type': 'string', 'description': 'Listed security ticker (e.g., AAPL, VOO, GME)'}, 'endDate': {'type': 'string', 'default': None, 'description': 'End date in YYYY-MM-DD format (defaults to latest available)'}, 'startDate': {'type': 'string', 'default': None, 'description': 'Start date in YYYY-MM-DD format (defaults to 3 months ago)'}, 'maxResults': {'type': 'integer', 'default': 90, 'description': 'Maximum number of records to return — keeps the most recent N trading days in the range, displayed oldest to newest (default: 90, max: 500)'}}}
GetStochasticOscillator
Stochastic Oscillator
Stochastic Oscillator (%K and %D) for a stock. %K measures the close relative to the high/low range over the lookback window; %D is the smoothed signal line (simple moving average of %K). Useful for spotting overbought (>80) and oversold (<20) conditions. The lookback window is warmed up on price history fetched before startDate, so values do not depend on the requested range's left edge.
只读
输入模式
{'type': 'object', 'required': ['ticker'], 'properties': {'ticker': {'type': 'string', 'description': 'Stock ticker symbol (e.g., AAPL, MSFT). Class shares use a dash (BRK-B); the dot form (BRK.B) is also accepted.'}, 'dPeriod': {'type': 'integer', 'default': 3, 'description': 'Smoothing window for %D (default: 3)'}, 'endDate': {'type': 'string', 'default': None, 'description': 'End date in YYYY-MM-DD format (defaults to latest available)'}, 'kPeriod': {'type': 'integer', 'default': 14, 'description': 'Lookback window for %K (default: 14)'}, 'startDate': {'type': 'string', 'default': None, 'description': 'Start date in YYYY-MM-DD format (defaults to 6 months ago)'}, 'maxResults': {'type': 'integer', 'default': 60, 'description': 'Maximum number of records to return (default: 60, max: 500); the newest rows are kept and listed newest first.'}}}
GetStockPrices
Daily Price History
Get daily OHLCV (Open, High, Low, Close, Volume) price history for a stock. Useful for technical analysis, charting, and price trend analysis. Prices are in USD. An Adj Close column shows the provider's split- and cash-dividend-adjusted close when it differs from Close. Captured corporate-action changes trigger a full-history refresh of the exact listed series, but the stored rows do not certify which split basis the provider returned. Do not treat reconciliation status alone as proof that a window is a consistent total-return series. Zero-volume carry-forward candles are excluded because they do not establish a traded market price.
只读
输入模式
{'type': 'object', 'required': ['ticker'], 'properties': {'ticker': {'type': 'string', 'description': 'Stock ticker symbol (e.g., AAPL, MSFT, TSLA). Class shares use a dash (BRK-B); the dot form (BRK.B) is also accepted.'}, 'endDate': {'type': 'string', 'default': None, 'description': 'End date in YYYY-MM-DD format (defaults to latest available)'}, 'startDate': {'type': 'string', 'default': None, 'description': 'Start date in YYYY-MM-DD format (defaults to 1 year ago)'}, 'maxResults': {'type': 'integer', 'default': 260, 'description': 'Maximum number of records to return (default: 260, max: 500). When the range holds more rows the newest are kept; rows are always listed oldest to newest.'}}}
GetSuperInvestors
Superinvestor Directory
Get the curated superinvestor directory — a hand-picked list of well-known value investors and fund managers (Buffett, Ackman, Burry, Klarman and more), each with their 13F filer CIK and latest reported portfolio value, position count, quarter-over-quarter change, and report date. Portfolio value covers long US-listed 13F positions only, not total firm AUM; as-of dates vary by filer, and rows lagging the group's latest quarter are marked (stale). Use the returned CIK with GetInstitutionPortfolio for a manager's full holdings, or GetInstitutionQuarterlyActivity for their latest buys and sells.
只读
输入模式
{'type': 'object', 'properties': {}}
GetTopGovernmentContractors
Top Federal Contractors
Rank public companies by total federal contract dollars awarded over a date range (from USAspending.gov). Sums the total award value (obligated dollars plus unexercised ceiling) of prime contract awards of $1M or more that resolve to a listed company; smaller awards and unlisted recipients are excluded. Answers questions like 'which public companies won the most federal contracts last quarter'. Use GetGovernmentContracts for one company's individual awards.
只读
输入模式
{'type': 'object', 'properties': {'endDate': {'type': 'string', 'default': None, 'description': 'End date in YYYY-MM-DD format (defaults to today)'}, 'startDate': {'type': 'string', 'default': None, 'description': 'Start date in YYYY-MM-DD format, filtering on the award action date (defaults to 1 year ago)'}, 'maxResults': {'type': 'integer', 'default': 25, 'description': 'Maximum number of companies to return (default: 25, largest first)'}}}
GetTopHolders
Top Institutional Holders
Get the top institutional holders (fund managers) of an exact stock or ETF listing from SEC 13F-HR filings. Returns a ranked list by shares held, including published position value and percentage of total institutional 13F shares (not of shares outstanding). Values normally use report-date closing prices, may fall back to filer values, and can be zero when unavailable. During the newest quarter's filing window, non-ETF primary stocks carry non-filers' prior-quarter positions; ETF listings remain exact and as-filed because carry-forward is filer-wide. Use position type before treating put/call rows as ownership.
只读
输入模式
{'type': 'object', 'required': ['ticker'], 'properties': {'offset': {'type': 'integer', 'default': 0, 'description': 'Number of ranked holding rows to skip before returning results (default: 0)'}, 'ticker': {'type': 'string', 'description': 'Listed security ticker (e.g., AAPL, VOO)'}, 'maxResults': {'type': 'integer', 'default': 20, 'description': 'Maximum number of holding rows to return (default: 20, clamped to 1-500)'}, 'reportDate': {'type': 'string', 'default': None, 'description': 'Quarter-end 13F report date in YYYY-MM-DD format, e.g. 2026-03-31 (defaults to the latest available; an off-quarter date snaps to the nearest report on or before it)'}}}
GetTopInstitutionalBuyersSellers
Top Institutional Buyers and Sellers
Get the institutions that moved the needle the most on a stock this quarter — biggest absolute share additions (Top Buyers) and biggest absolute share reductions (Top Sellers) versus the previous 13F report date. Includes new positions (Δ = full position) and sold-out positions (Δ = −prior position); entries and exits require observed 13F filings in both compared quarters, so missing filings or a CIK migration cannot become a full-position buy or sale. While the newest quarter's filing window is open, results cover only the funds that have already filed (noted in the output). Returns a markdown table with two sections. Use this to surface the most actionable quarterly signal from 13F filings.
只读
输入模式
{'type': 'object', 'required': ['ticker'], 'properties': {'ticker': {'type': 'string', 'description': 'Listed security ticker (e.g., AAPL, VOO)'}, 'maxResults': {'type': 'integer', 'default': 10, 'description': 'Maximum number of buyers and sellers to return per section (default: 10, clamped to 1-500)'}, 'reportDate': {'type': 'string', 'default': None, 'description': 'Quarter-end 13F report date in YYYY-MM-DD format, e.g. 2026-03-31 (defaults to the latest available; an off-quarter date snaps to the nearest report on or before it)'}}}
GetUpcomingInvestorEvents
Upcoming Investor Events
Get upcoming investor-relations events for a stock — earnings webcasts, conference appearances, presentations, and shareholder meetings — scraped from the company's IR website. Returns events scheduled from now onward, soonest first, optionally filtered by event type. Coverage is partial — an empty answer distinguishes a coverage gap from a genuinely empty calendar. Only future events are returned; for past events and their transcripts use ListInvestorEvents / GetInvestorEventTranscript.
只读
输入模式
{'type': 'object', 'required': ['ticker'], 'properties': {'ticker': {'type': 'string', 'description': 'Company ticker symbol (e.g., NVDA, AAPL)'}, 'eventType': {'type': 'string', 'default': None, 'description': "Optional event-type filter: EarningsCall, Conference, Presentation, ShareholderMeeting, or Webcast. Omit for all types. Events whose source label could not be classified carry the generic type 'Event' and only appear when no filter is set."}, 'maxResults': {'type': 'integer', 'default': 20, 'description': 'Maximum number of events to return (default: 20, max: 500)'}}}
GetValuationMultiples
Valuation Multiples
Get current EV/Revenue, EV/EBIT and P/E with peer median, quartiles and sample size; REITs also include verified company-stated P/FFO and P/AFFO, and any filer with a verified reconciliation also includes EV over its own stated Adjusted EBITDA, when available. TTM money flows use four discrete fiscal quarters or an exact annual-plus-current-YTD-minus-prior-YTD bridge; annual-only figures are not TTM. P/E uses validated diluted EPS or explicitly reported income available to common shareholders, with the basis named. Enterprise value uses same-date reported debt, cash and tagged short-term investments. Inputs must reconcile, share one effective split basis and be stated in USD; missing inputs are never estimated. The company is excluded from its peer cohort, which uses similar-size industry peers when sufficient and the full industry otherwise. The response names every figure's date and cohort basis. Use GetValuationMultiplesHistory for point-in-time history.
只读
输入模式
{'type': 'object', 'required': ['ticker'], 'properties': {'ticker': {'type': 'string', 'description': 'Stock ticker symbol (e.g., AAPL, MSFT).'}}}
GetValuationMultiplesHistory
Valuation Multiples History
Get up to ~10 years of quarterly EV/Revenue, EV/EBIT, EV/EBITDA and P/E, with P/FFO and P/AFFO for REITs and EV/Adjusted EBITDA for verified filers. Each row is recomputed at its filing date from facts then available and that day's raw close; non-GAAP cells name their TTM or fiscal-year basis. Completed exact-primary split reconciliation preserves older samples; anchors before an unresolved split are omitted. The reply reports omissions and missing EV inputs by cause. Uses the strict USD-only TTM/EV methodology of GetValuationMultiples on one effective split basis. Missing or unproved inputs are dashes, never estimates.
只读
输入模式
{'type': 'object', 'required': ['ticker'], 'properties': {'ticker': {'type': 'string', 'description': 'Stock ticker symbol (e.g., AAPL, MSFT).'}}}
GetVixHistory
VIX Volatility Index History
Get CBOE Volatility Index (VIX) historical daily OHLC data. VIX measures expected 30-day S&P 500 volatility. Below 15 = low volatility/complacency, above 30 = high fear/uncertainty. Data available from 1990 to present.
只读
输入模式
{'type': 'object', 'properties': {'endDate': {'type': 'string', 'default': None, 'description': 'End date in YYYY-MM-DD format (defaults to latest available)'}, 'startDate': {'type': 'string', 'default': None, 'description': 'Start date in YYYY-MM-DD format (defaults to 3 months ago)'}, 'maxResults': {'type': 'integer', 'default': 60, 'description': 'Maximum number of records to return (default: 60, max: 500). When the range holds more rows the newest are kept; rows are always listed oldest to newest.'}}}
GetWebDataFeed
Get Web Data Feed
Get the latest independently verified stored result for one of the caller's web data feeds, or the latest retained result at or before a requested timestamp. This is read-only, never triggers a live run, and preserves the last good result after a newer failure. To create or manage a feed, tell the user to open the Equibles Portal and choose Dashboard → Web Data Feeds: https://www.equibles.com/WebDataFeeds
只读
输入模式
{'type': 'object', 'required': ['dataFeed'], 'properties': {'dataFeed': {'type': 'string', 'description': 'The web data feed name or full id shown by ListWebDataFeeds.'}, 'capturedAtOrBefore': {'type': 'string', 'default': None, 'description': 'Optional ISO-8601 timestamp. Returns the newest retained verified capture completed at or before this instant. Omit it for the latest result.'}}}
ListFilings
List Filings
List stored SEC filings and earnings-call transcripts newest first. Omit ticker for a market-wide feed or provide one ticker for a company-specific list. Returns company identity, document IDs, types, filing and reporting dates, SEC item numbers, line counts, and page totals. Supports date, document-type, and exact SEC item-number filters. Hidden document types remain excluded unless explicitly requested. Pass a returned ID to SearchDocument or ReadDocumentLines.
只读
输入模式
{'type': 'object', 'properties': {'page': {'type': 'integer', 'default': 1, 'description': 'Page number for pagination (default: 1)'}, 'ticker': {'type': 'string', 'default': None, 'description': 'Optional company ticker symbol (e.g., AAPL, MSFT). Omit for all companies.'}, 'endDate': {'type': ['string', 'null'], 'format': 'date-time', 'default': None, 'description': 'Optional end date filter in YYYY-MM-DD format'}, 'maxItems': {'type': 'integer', 'default': 10, 'description': 'Maximum number of documents per page (default: 10)'}, 'startDate': {'type': ['string', 'null'], 'format': 'date-time', 'default': None, 'description': 'Optional start date filter in YYYY-MM-DD format'}, 'itemNumber': {'type': 'string', 'default': None, 'description': 'Optional exact SEC current-report item number, e.g. 2.02, 5.02, or 1.01.'}, 'documentType': {'type': 'string', 'default': None, 'description': "Document type filter. Accepts a registered type value — 'TenK', 'TenQ', 'EightK', 'TenKa', 'TenQa', 'EightKa', 'TwentyF', 'SixK', 'FortyF', 'TwentyFa', 'SixKa', or 'FortyFa' — or its display name (e.g. '10-K', '20-F/A'), plus any deployment-registered type, such as EarningsCallTranscript (display name: Earnings Call) for earnings-call transcripts where available. An unrecognized value returns an error listing every accepted value."}}}
ListInvestorEvents
Browse Investor Events
List a company's recent investor events — earnings calls AND the other events it webcasts (conferences, investor/analyst days, shareholder meetings) — newest first. Each row gives the event id, type, the UTC start (time shown when one was reported), the event title, fiscal period (earnings calls only), status, and whether a transcript, audio and slide deck are on file. Conferences have no fiscal quarter, so use the event id with GetInvestorEventTranscript to read one rather than GetEarningsCallEvent (which is keyed by fiscal quarter and earnings-only).
只读
输入模式
{'type': 'object', 'required': ['ticker'], 'properties': {'limit': {'type': 'integer', 'default': 25, 'description': 'Maximum number of events to return (default 25, max 100; values outside 1-100 are clamped)'}, 'offset': {'type': 'integer', 'default': 0, 'description': 'Number of matching events to skip before returning rows (default 0)'}, 'ticker': {'type': 'string', 'description': 'Company ticker symbol (e.g., AAPL, MSFT)'}, 'eventType': {'type': 'string', 'default': None, 'description': 'Optional event type to filter on: EarningsCall, CapitalMarketsDay, InvestorUpdate, AGM, Conference, FiresideChat, or MAndA (default: all types)'}}}
ListWebDataFeeds
List Web Data Feeds
List the caller's own recurring web data feeds, schedule, state, and most recent run. This is read-only and never contacts a source website. To create or manage one, tell the user to open the Equibles Portal and choose Dashboard → Web Data Feeds: https://www.equibles.com/WebDataFeeds
只读
输入模式
{'type': 'object', 'properties': {}}
ReadDocumentLines
Read Filing Lines
Read numbered lines from one SEC filing or earnings-call transcript. Use line numbers returned by SearchDocument or request a known range. Returns at most 2,000 lines and identifies the next startLine when truncated.
只读
输入模式
{'type': 'object', 'required': ['documentId', 'startLine', 'endLine'], 'properties': {'endLine': {'type': 'integer', 'description': 'Last line to read (1-based, inclusive). At most 2,000 lines are returned per call; a longer range is truncated with a note on how to continue.'}, 'startLine': {'type': 'integer', 'description': 'First line to read (1-based, inclusive)'}, 'documentId': {'type': 'string', 'format': 'uuid', 'description': 'Document ID obtained from ListFilings'}}}
RemovePortfolioLot
Remove Portfolio Lot
Permanently delete a lot from the USER's portfolio, as if it had never been recorded. This is for a lot entered by mistake. It is NOT how a sale is recorded: deleting a lot that was sold destroys its realized profit; use ClosePortfolioLot for that. This cannot be undone, so confirm with the user first, naming the lot.
可能执行破坏性操作
输入模式
{'type': 'object', 'required': ['portfolio', 'lotId'], 'properties': {'lotId': {'type': 'string', 'description': 'The lot id shown by GetMyPortfolio, e.g. a1b2c3d4.'}, 'portfolio': {'type': 'string', 'description': 'The portfolio holding the lot, by name.'}}}
ReportProblem
Report an Equibles Tool Problem
Report an Equibles tool call you actually made when it failed, timed out, was unexpectedly empty (ToolFailed), or returned verifiably impossible or contradictory data (ImplausibleResult). Answer the user first, then retry or use a fallback; this report does not fix the current call. Report the call and response, never the person or their question. Omit private or user-provided argument values or replace them with [redacted]. Mention briefly that you flagged it. Do not report surprising-but-plausible data, missing tools, feature requests, or non-Equibles tools.
输入模式
{'type': 'object', 'required': ['problemKind', 'toolName', 'observation'], 'properties': {'expected': {'type': 'string', 'default': None, 'description': "Optional. What you expected instead, and how you know — a figure from another Equibles tool, a filing, or the tool's own documented behaviour. This is what makes an implausible-result report reproducible."}, 'toolName': {'type': 'string', 'description': 'The Equibles tool that misbehaved, e.g. GetCompanyKpis.'}, 'arguments': {'type': 'string', 'default': None, 'description': 'Optional. The arguments you passed to the failing tool, as JSON or key=value pairs, so the call can be replayed. Omit or redact any user-provided or private text.'}, 'observation': {'type': 'string', 'description': 'What went wrong, in one or two sentences: the error text, or why the figures are not credible. Describe the call and its response only — never the user or their question. Do not submit placeholder-only text such as N/A.'}, 'problemKind': {'type': 'string', 'description': "Either 'ToolFailed' (error, timeout, or unexpectedly empty) or 'ImplausibleResult' (answered, but the data cannot be right)."}}}
ScreenStocks
Stock Screener
Screen listed stocks with optional min/max bounds for price, market cap, institutional ownership, short data, insider activity, valuation, growth, margins, liquidity and earnings. Exact sector, industry, covered-index membership and going-concern filters are also available. A stock missing a bounded metric is excluded. Results use the requested sort (market cap descending by default), are paged, and include each dataset's vintage. Filtering or sorting on a fundamental metric adds that metric to the result table.
只读
输入模式
{'type': 'object', 'properties': {'page': {'type': 'integer', 'default': 1, 'description': 'Result page (default 1) — combine with maxResults to walk past the first page of a large match set.'}, 'index': {'type': 'string', 'default': None, 'description': 'Keep only members of one covered index, by slug or name (sp-500, S&P 500, nasdaq-100, Russell 2000). An unknown name returns the accepted list.'}, 'maxPe': {'type': ['number', 'null'], 'default': None, 'description': 'Maximum trailing-twelve-month price-to-earnings ratio (e.g. 15 for value screens).'}, 'minPe': {'type': ['number', 'null'], 'default': None, 'description': 'Minimum trailing-twelve-month price-to-earnings ratio.'}, 'sector': {'type': 'string', 'default': None, 'description': 'Exact sector name (e.g. Technology, Healthcare). An unknown name returns the accepted list.'}, 'sortBy': {'type': 'string', 'default': 'marketcap', 'description': 'Sort key: marketcap, ticker, name, price, filers, filerdelta, sipct, dtc, squeeze, sentiment, insiderbuy, pe, divyield, revgrowth, grossmargin, dollarvol or netincome. Default marketcap. An unknown key is rejected, never silently ignored.'}, 'tickers': {'type': 'array', 'items': {'type': 'string'}, 'default': None, 'description': 'Optional list of up to 200 tickers to restrict the screen to, for scoring stocks the user already holds or follows instead of searching the whole market. Every other bound still applies and sortBy still orders the result. Class-share dots (BRK.B) resolve to the listed form, a secondary listing resolves to its issuer, and any symbol outside the covered universe is named back to you.'}, 'industry': {'type': 'string', 'default': None, 'description': 'Exact industry name (e.g. Semiconductors). Prefer sector for broad groups.'}, 'maxPrice': {'type': ['number', 'null'], 'default': None, 'description': 'Maximum share price in dollars.'}, 'minPrice': {'type': ['number', 'null'], 'default': None, 'description': 'Minimum share price in dollars.'}, 'maxResults': {'type': 'integer', 'default': 50, 'description': 'Maximum rows to return (default 50; clamped to 1-200).'}, 'maxMarketCap': {'type': ['number', 'null'], 'default': None, 'description': 'Maximum market capitalization in dollars.'}, 'maxNetIncome': {'type': ['number', 'null'], 'default': None, 'description': 'Maximum trailing-twelve-month net income in dollars.'}, 'minMarketCap': {'type': ['number', 'null'], 'default': None, 'description': 'Minimum market capitalization in dollars.'}, 'minNetIncome': {'type': ['number', 'null'], 'default': None, 'description': 'Minimum trailing-twelve-month net income in dollars (0 keeps profitable companies only).'}, 'maxFilerCount': {'type': ['integer', 'null'], 'default': None, 'description': 'Maximum number of 13F institutional filers holding the stock.'}, 'maxFilerDelta': {'type': ['integer', 'null'], 'default': None, 'description': 'Maximum quarter-over-quarter change in filer count.'}, 'minFilerCount': {'type': ['integer', 'null'], 'default': None, 'description': 'Minimum number of 13F institutional filers holding the stock.'}, 'minFilerDelta': {'type': ['integer', 'null'], 'default': None, 'description': 'Minimum quarter-over-quarter change in filer count.'}, 'sortAscending': {'type': 'boolean', 'default': False, 'description': 'Sort ascending instead of descending.'}, 'maxDaysToCover': {'type': ['number', 'null'], 'default': None, 'description': 'Maximum days to cover.'}, 'maxGrossMargin': {'type': ['number', 'null'], 'default': None, 'description': 'Maximum gross margin in percent (0-100).'}, 'minDaysToCover': {'type': ['number', 'null'], 'default': None, 'description': 'Minimum days to cover.'}, 'minGrossMargin': {'type': ['number', 'null'], 'default': None, 'description': 'Minimum gross margin in percent (0-100).'}, 'maxDollarVolume': {'type': ['number', 'null'], 'default': None, 'description': 'Maximum trailing-3-month average daily dollar volume in dollars.'}, 'maxSqueezeScore': {'type': ['number', 'null'], 'default': None, 'description': 'Maximum composite short-squeeze score (0-100, peer-relative).'}, 'minDollarVolume': {'type': ['number', 'null'], 'default': None, 'description': 'Minimum trailing-3-month average daily dollar volume in dollars (e.g. 5000000 = $5M/day).'}, 'minSqueezeScore': {'type': ['number', 'null'], 'default': None, 'description': 'Minimum composite short-squeeze score (0-100, peer-relative; higher = more squeeze-prone).'}, 'maxDividendYield': {'type': ['number', 'null'], 'default': None, 'description': 'Maximum trailing dividend yield in percent.'}, 'maxNetInsiderBuy': {'type': ['number', 'null'], 'default': None, 'description': 'Maximum net insider buying in dollars over the trailing 90 days.'}, 'maxRevenueGrowth': {'type': ['number', 'null'], 'default': None, 'description': 'Maximum revenue growth in percent, latest quarter vs the same quarter a year earlier.'}, 'minDividendYield': {'type': ['number', 'null'], 'default': None, 'description': 'Minimum trailing dividend yield in percent (e.g. 3 = 3%).'}, 'minNetInsiderBuy': {'type': ['number', 'null'], 'default': None, 'description': 'Minimum net insider buying in dollars over the trailing 90 days.'}, 'minRevenueGrowth': {'type': ['number', 'null'], 'default': None, 'description': 'Minimum revenue growth in percent, latest quarter vs the same quarter a year earlier.'}, 'maxInsiderSentiment': {'type': ['number', 'null'], 'default': None, 'description': 'Maximum composite insider-sentiment score (0-100, peer-relative).'}, 'minInsiderSentiment': {'type': ['number', 'null'], 'default': None, 'description': 'Minimum composite insider-sentiment score (0-100, peer-relative; higher = more aggressive insider accumulation).'}, 'hasGoingConcernDoubt': {'type': ['boolean', 'null'], 'default': None, 'description': 'True keeps only companies whose latest filing states unalleviated going-concern doubt; false keeps only companies without the flag.'}, 'maxShortInterestPercent': {'type': ['number', 'null'], 'default': None, 'description': 'Maximum short interest as a percent of shares outstanding (0-100).'}, 'minShortInterestPercent': {'type': ['number', 'null'], 'default': None, 'description': 'Minimum short interest as a percent of shares outstanding (0-100).'}}}
SearchCftcMarkets
Search CFTC Futures Contracts
Search the tracked CFTC futures contracts by name, market code, common contract name, or standard futures symbol, or omit the query to list every tracked contract. Coverage is a curated set of ~35 major contracts across Agriculture, Energy, Metals, Equity Indices, Interest Rates, and Currencies - markets outside this set have no COT data here. Returns matching contracts with their codes and categories; use this to discover market codes before calling GetCftcPositioning.
只读
输入模式
{'type': 'object', 'properties': {'query': {'type': 'string', 'default': None, 'description': "Search query — market code, name words, common name, or standard symbol (e.g., 'gold futures', 'WTI', 'ES', 'S&P 500', '088691'). Search requires every punctuation-independent word first and broadens to any word only when no strict row matches. Omit to list all tracked contracts."}, 'maxResults': {'type': 'integer', 'default': 50, 'description': 'Maximum number of results to return (default: 50, max: 500)'}}}
SearchCongressMembers
Search Congress Members
Search the tracked congressional roster by name. Search first requires every punctuation-independent query word anywhere in the filed name, then broadens to any word only when no strict row matches. Verified public-name aliases such as Dan Crenshaw resolve to the roster name. Returns each match with its position; pass the returned exact Name to GetMemberTrades or GetMemberNetWorth.
只读
输入模式
{'type': 'object', 'required': ['query'], 'properties': {'query': {'type': 'string', 'description': "Search query — partial or full name (e.g., 'Pelosi', 'Cruz', 'Dan')"}, 'position': {'type': 'string', 'default': None, 'description': 'Filter by position: Senator or Representative (defaults to both)'}, 'maxResults': {'type': 'integer', 'default': 20, 'description': 'Maximum number of results to return (default: 20, max: 500)'}}}
SearchDocument
Search Within One Filing
Search one SEC filing or earnings-call transcript by document ID. semantic mode uses hybrid relevance and returns excerpts in document order with approximate line numbers. exact mode performs a literal case-insensitive substring match and returns precise matching lines. Get document IDs from SearchDocuments or ListFilings; use ReadDocumentLines for surrounding text.
只读
输入模式
{'type': 'object', 'required': ['query', 'documentId'], 'properties': {'query': {'type': 'string', 'description': "Search query — plain keywords or a short natural-language phrase. When too few excerpts match every word, the search automatically broadens to match any of the words. In searchMode 'exact', matched as a literal case-insensitive substring."}, 'documentId': {'type': 'string', 'format': 'uuid', 'description': 'Document ID obtained from ListFilings or a SearchDocuments result header'}, 'maxResults': {'type': 'integer', 'default': 5, 'description': 'Maximum number of results to return (default: 5)'}, 'searchMode': {'type': 'string', 'default': 'semantic', 'description': "How to match: 'semantic' (default — hybrid keyword and semantic relevance) or 'exact' (literal case-insensitive substring match with precise line numbers)."}, 'maxExcerptChars': {'type': 'integer', 'default': 0, 'description': 'Maximum characters per excerpt (default: 0 = full excerpt). Set a small value (e.g. 400) for a compact scan across many results; truncated excerpts end with an explicit note.'}}}
SearchDocuments
Search SEC Filings
Search SEC filings and earnings-call transcripts with hybrid keyword and semantic retrieval. Omit ticker to search every company, or provide one ticker to search only that company. Returns excerpts with document IDs for SearchDocument or ReadDocumentLines. Use excludeTickers and maxResultsPerCompany only for market-wide discovery; use ListFilings to browse filings newest first without a text query.
只读
输入模式
{'type': 'object', 'required': ['query'], 'properties': {'query': {'type': 'string', 'description': "Search query — plain keywords or a short natural-language phrase. When too few excerpts match every word, the search automatically broadens to match any of the words; concise, filing-phrased terms (e.g. 'Data Center revenue') still rank best."}, 'ticker': {'type': 'string', 'default': None, 'description': 'Optional company ticker. Omit to search across all companies.'}, 'endDate': {'type': ['string', 'null'], 'format': 'date-time', 'default': None, 'description': 'Optional end date filter in YYYY-MM-DD format'}, 'startDate': {'type': ['string', 'null'], 'format': 'date-time', 'default': None, 'description': 'Optional start date filter in YYYY-MM-DD format'}, 'maxResults': {'type': 'integer', 'default': 5, 'description': 'Maximum number of results to return (default: 5, max: 500)'}, 'documentTypes': {'type': 'array', 'items': {'type': 'string'}, 'default': None, 'description': 'Optional document types. Accepts registered values such as TenK, TenQ, EightK, TwentyF, SixK, FortyF, or deployment-registered types such as EarningsCallTranscript. Display names such as 10-K are also accepted; an invalid value returns the full accepted list.'}, 'excludeTickers': {'type': 'array', 'items': {'type': 'string'}, 'default': None, 'description': 'Optional tickers to exclude from a market-wide search (max 25). Cannot be combined with ticker.'}, 'maxExcerptChars': {'type': 'integer', 'default': 0, 'description': 'Maximum characters per excerpt (default: 0 = full excerpt). Set a small value (e.g. 400) for a compact scan across many results; truncated excerpts end with an explicit note.'}, 'maxResultsPerCompany': {'type': 'integer', 'default': 0, 'description': 'Maximum results from any single company (default: 0 = unlimited). Set a small value (e.g. 2) to spread results across more companies for discovery-style queries.'}}}
SearchEconomicIndicators
Search Economic Indicators
Search the curated set of ~40 US macro FRED series Equibles tracks (rates, inflation, employment, GDP, housing, market indicators) — not the full FRED catalog. Search first requires every punctuation-independent query word anywhere across the series ID, title, or category, then broadens to any word only when that strict search has no rows. Standard names such as fed funds rate, jobless claims, payrolls, yield curve, and core CPI are recognized. An empty query lists every tracked series. Results include seasonal adjustment, the latest observation date, and the UTC time Equibles last synced the series.
只读
输入模式
{'type': 'object', 'required': ['query'], 'properties': {'query': {'type': 'string', 'description': "Search query — series ID, title keyword, or category name (e.g., 'inflation', 'unemployment', 'GDP', 'FEDFUNDS'). Empty lists all tracked series."}, 'maxResults': {'type': 'integer', 'default': 20, 'description': 'Maximum number of results to return (default: 20, max: 500)'}}}
SearchEtfs
Search ETFs
Search active exchange-traded funds and products by exact ticker, fund name, or sponsor. ETF identity comes from the authoritative security-type reference directory, while assets and holdings come from the linked SEC Form NPORT-P fund series when available. Use GetEtfProfile for analysis or GetEtfHoldings for a paged portfolio.
只读
输入模式
{'type': 'object', 'required': ['query'], 'properties': {'query': {'type': 'string', 'description': 'Ticker, fund name, or sponsor (for example SPY, S&P 500, or iShares).'}, 'maxResults': {'type': 'integer', 'default': 20, 'description': 'Maximum results to return (default 20, max 500).'}}}
SearchFunds
Search Funds and ETFs
Search the tracked SEC Form NPORT-P fund directory by fund name, ticker, SEC series ID, or registrant. Returns one canonical profile per series with ticker, registration type, latest report date, assets, and reported-versus-stored holding counts. Exact stored tickers outrank verified share-class aliases. Use the profile ID with GetFundProfile. The directory covers NPORT-P filers; a miss is a dataset-coverage result, not proof that a fund does not exist.
只读
输入模式
{'type': 'object', 'required': ['query'], 'properties': {'query': {'type': 'string', 'description': "Fund name, ticker, registrant, or verified share-class alias (e.g., 'Russell 2000', 'iShares', 'IWM', 'VOO')."}, 'maxResults': {'type': 'integer', 'default': 20, 'description': 'Maximum number of funds to return, largest by net assets first (default: 20, max: 500)'}}}
SearchInsiders
Search Corporate Insiders
Search the tracked SEC corporate-insider set (directors, officers, 10% owners) by name. Search first requires every punctuation-independent whole query word in the filed legal name, then broadens to any whole word only when no strict row matches; a token inside a different word is not a match. Verified public-name aliases such as Jensen Huang resolve to the SEC owner identity. Returns CIK, role, latest filing company, and location, ordered by recent filing activity.
只读
输入模式
{'type': 'object', 'required': ['query'], 'properties': {'query': {'type': 'string', 'description': 'Search query for insider name'}, 'offset': {'type': 'integer', 'default': 0, 'description': "Number of matches to skip before returning rows (default: 0, clamped to 0-100000). For the next page, add the returned row count to the clamped current offset; if the next offset exceeds 100000, narrow the filters instead. Stop when fewer than the effective page size (maxResults clamped to 1-500) are returned, or the response's total has been reached."}, 'maxResults': {'type': 'integer', 'default': 10, 'description': 'Maximum number of results (default: 10, max: 500; values outside 1-500 are clamped)'}}}
SearchInstitutions
Search Institutional Investors
Search the tracked 13F filer set by institution name or SEC CIK. Search first requires every punctuation-independent query word anywhere in the filed name, then broadens to any word only when no strict row matches. Verified brand aliases such as Fidelity, Vanguard, and BlackRock include their current flagship CIK. Results are largest within the recently-active filing bucket first and include latest report date, tracked 13F position value, and position count so same-name filers can be compared before calling an institution tool. Values normally use report-date closing prices, may fall back to filer values, and can include zero for unavailable valuations. Scoped institution tools remain strict and never discard an unmatched word.
只读
输入模式
{'type': 'object', 'required': ['query'], 'properties': {'query': {'type': 'string', 'description': 'Search query — institution name, partial name, or CIK'}, 'maxResults': {'type': 'integer', 'default': 10, 'description': 'Maximum number of results to return (default: 10, clamped to 1-500)'}}}
SearchInvestmentAdvisers
Search Investment Advisers
Search the tracked SEC Form ADV adviser set by firm name. Search first requires every punctuation-independent query word anywhere in the legal or business name, then broadens to any word only when no strict row matches. Returns CRD, main office, regulatory assets under management, employee count and as-of date, largest by assets first. Use the CRD with GetInvestmentAdviser.
只读
输入模式
{'type': 'object', 'required': ['query'], 'properties': {'query': {'type': 'string', 'description': 'Part of the firm\'s legal or business name (e.g., "Vanguard", "Renaissance")'}, 'maxResults': {'type': 'integer', 'default': 20, 'description': 'Maximum number of advisers to return (default: 20, clamped to 1-500)'}}}
SuggestToolImprovement
Suggest an Equibles Tool Improvement
Suggest the smallest actionable contract improvement to an existing Equibles tool you actually called when it worked as documented but lacked a useful operation, filter, parameter or output option. Answer the user first; this records a future improvement and does not change the current call. Describe the call, never the person or their question. Omit private or user-provided argument values or replace them with [redacted]. Mention briefly that you suggested it. Use ReportProblem for wrong data; do not request new tools, duplicate existing options, or report non-Equibles ideas.
输入模式
{'type': 'object', 'required': ['toolName', 'limitation', 'suggestedChange'], 'properties': {'toolName': {'type': 'string', 'description': 'The existing Equibles tool you actually called, e.g. GetCompanyKpis.'}, 'arguments': {'type': 'string', 'default': None, 'description': 'Optional. The arguments you passed to the existing tool, as JSON or key=value pairs, so the limitation can be reproduced. Omit or redact any user-provided or private text.'}, 'limitation': {'type': 'string', 'description': 'The concrete limitation encountered in that call. State what the current operation, filter, parameter, or output contract could not do. Describe the call only — never the user or their question. Do not submit placeholder-only text such as N/A.'}, 'suggestedChange': {'type': 'string', 'description': 'The smallest actionable change you recommend, including the proposed operation, filter, parameter, or output behaviour and why it would resolve the limitation. Do not submit placeholder-only text such as N/A.'}}}
UnwatchInstrument
Unwatch Instrument
Remove a stock or an option contract from one of the USER's portfolio watchlists. This only removes the watch entry: it never touches a holding, so a stock the portfolio also owns stays exactly as recorded. Confirm with the user before removing. Address the instrument the way it appears in GetMyPortfolio's Watching section: the ticker for a stock, or the OCC symbol in optionContract for an option.
可能执行破坏性操作
输入模式
{'type': 'object', 'required': ['portfolio'], 'properties': {'ticker': {'type': 'string', 'default': None, 'description': "The watched stock's ticker. Omit when removing an option by its OCC symbol."}, 'portfolio': {'type': 'string', 'description': 'The portfolio whose watchlist to remove from, by name.'}, 'optionContract': {'type': 'string', 'default': None, 'description': "Optional. The watched option's OCC symbol, e.g. O:AAPL260724C00110000."}}}
UpdatePortfolioLot
Update Portfolio Lot
Correct a lot the USER already recorded: a mistyped quantity, price, trade date or note. Only the fields you pass change; the rest are left alone. The instrument itself cannot be edited: a lot on the wrong stock or the wrong contract is a different holding, so remove it with RemovePortfolioLot and add the right one. To record a sale, use ClosePortfolioLot rather than editing the quantity down, because editing it away loses the realized profit.
输入模式
{'type': 'object', 'required': ['portfolio', 'lotId'], 'properties': {'note': {'type': 'string', 'default': None, 'description': 'Optional. A replacement note, up to 256 characters.'}, 'lotId': {'type': 'string', 'description': 'The lot id shown by GetMyPortfolio, e.g. a1b2c3d4.'}, 'quantity': {'type': ['number', 'null'], 'default': None, 'description': 'Optional. The corrected signed size. Negative is a short or written option.'}, 'portfolio': {'type': 'string', 'description': 'The portfolio holding the lot, by name.'}, 'costPerUnit': {'type': ['number', 'null'], 'default': None, 'description': 'Optional. The corrected price per share, always positive.'}, 'acquiredDate': {'type': 'string', 'default': None, 'description': 'Optional. The corrected trade date, as yyyy-MM-dd.'}}}
WatchInstrument
Watch Instrument
Put a stock or an option contract on one of the USER's portfolio watchlists, without recording any position. A watched instrument shows up in GetMyPortfolio's 'Watching (not held)' section with a current mark and nothing else - no quantity, no cost, no value. For a stock, pass its ticker. For an option, pass BOTH the underlying ticker and the OCC symbol in optionContract, exactly as AddPortfolioLot takes them; the contract is verified against the live options data before anything is stored. Watching something the portfolio already holds is allowed - the page shows one row, and selling out later keeps the instrument on the list.
输入模式
{'type': 'object', 'required': ['portfolio', 'ticker'], 'properties': {'ticker': {'type': 'string', 'description': 'Stock ticker. For an option, the UNDERLYING ticker, e.g. AAPL.'}, 'portfolio': {'type': 'string', 'description': 'The portfolio whose watchlist to add to, by name.'}, 'optionContract': {'type': 'string', 'default': None, 'description': 'Optional. The OCC option symbol, e.g. O:AAPL260724C00110000. Provide it to watch an option contract; omit it for the stock itself.'}}}
已更改
GetMemberTrades
2026年9月29日 02:52
已更改
GetShortSqueezeScores
2026年9月29日 02:52
已更改
GetLargestShortVolume
2026年9月29日 02:52
已更改
GetInsiderOwnership
2026年9月29日 02:52
已更改
GetInstitutionPortfolio
2026年9月29日 02:52
已更改
SearchInsiders
2026年9月29日 02:52
已更改
GetShortInterestSnapshot
2026年9月29日 02:52
已更改
GetEtfHoldings
2026年9月27日 02:44
已更改
GetDividendHistory
2026年9月27日 02:44
已更改
GetAnalystEstimates
2026年9月19日 02:41
已添加
SearchDocuments
2026年9月17日 12:41
已添加
GetMemberTrades
2026年9月17日 12:41
已添加
GetMostHeldStocks
2026年9月17日 12:41
已添加
SearchEconomicIndicators
2026年9月17日 12:41
已添加
GetTopInstitutionalBuyersSellers
2026年9月17日 12:41
已添加
GetBollingerBands
2026年9月17日 12:41
已添加
GetOptionExpirations
2026年9月17日 12:41
已添加
GetEarningsBrief
2026年9月17日 12:41
已添加
ReadDocumentLines
2026年9月17日 12:41
已添加
GetInvestmentAdviser
2026年9月17日 12:41
已添加
GetEconomicIndicator
2026年9月17日 12:41
已添加
GetExecutiveCompensation
2026年9月17日 12:41
已添加
GetVixHistory
2026年9月17日 12:41
已添加
GetMarketWide13FActivity
2026年9月17日 12:41
已添加
GetShortVolume
2026年9月17日 12:41
已添加
SearchCongressMembers
2026年9月17日 12:41
已添加
GetShortSqueezeScores
2026年9月17日 12:41
已添加
GetInstitutionSectorAllocation
2026年9月17日 12:41
已添加
GetFinancialFact
2026年9月17日 12:41
已添加
GetLargestShortVolume
2026年9月17日 12:41

Valuein — SEC EDGAR Fundamentals & Smart-Money Data

io.github.valuein/mcp-sec-edgar

Provides point-in-time SEC EDGAR fundamentals, filings, ownership signals, financial analysis, valuation models, research reports…

EventTrader Research (read-only)

com.cymetica/event-trader-research

Offers read-only research on funds, event markets, order books, arena markets, crypto pools, backtests, and related financial ana…

World Monitor

app.worldmonitor/mcp

Delivers live geopolitical, conflict, country-risk, market, energy, climate, aviation, supply-chain, and macroeconomic intelligen…

Slacking.biz — SEC Financial Data + US Economics + Demographics + FX

io.github.Th3Slack3r/slacking-biz

Provides financial, economic, demographic, foreign-exchange, regulatory, and company research data from public sources.

TipRanks

com.tipranks/tipranks

Provides market research and investment data covering stocks, ETFs, commodities, crypto, forex, analyst ratings, news, earnings, …

welcome

com.thebalancedinvestorclub/welcome

Provides market data and educational investment research for stocks, ETFs, and crypto, including fundamentals, prices, macro indi…

Currencyformat

io.github.pipeworx-io/currencyformat

Formats localized numbers and currencies and also provides routed access to structured financial, market, government, and researc…

Unpaywall

io.github.pipeworx-io/unpaywall

Provides open-access scholarly paper lookup plus routed research and structured data queries across financial, economic, scientif…