SEC filings, company financials, holdings, earnings calls, stock prices, options and macro data.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Bearer API key (eq_...). Required unless your client signs in over OAuth; tool calls without either are rejected. Free tier: 100 requests/day.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
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; a listing on another exchange is its MIC:TICKER symbol (e.g. XPAR:AIR, as ScreenStocks returns it). 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, in the currency the listing trades in and in major units (London prices in pounds, not pence). Identical retries within the duplicate window return the existing lot instead of adding another.
Stock ticker, or MIC:TICKER for a listing on another exchange, e.g. XPAR:AIR. For an option, the UNDERLYING U.S. ticker, e.g. AAPL.
Signed size: shares for a stock, contracts for an option. Negative for a short sale or a written option.
The portfolio to add to, by name.
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). In the currency the stock trades in, in major units: London prices in pounds, not pence.
The trade date, as yyyy-MM-dd. Cannot be in the future.
Optional. A short note from the user about this lot, up to 256 characters.
Optional. The broker's exchange rate on the trade, as units of the portfolio's currency per 1 unit of the stock's trading currency (e.g. 0.92 for EUR per USD). Only when the user states it; omit to convert at the official rate on the trade date.
Optional. The OCC option symbol, e.g. O:AAPL260724C00110000. Provide it to record an option contract; omit it for shares.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
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; a listing on another exchange is its MIC:TICKER symbol (e.g. XPAR:AIR, as ScreenStocks returns it). 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, in the currency the listing trades in and in major units (London prices in pounds, not pence). Identical retries within the duplicate window return the existing lot instead of adding another.
| Argument | Type | Description |
|---|---|---|
| note | string | Optional. A short note from the user about this lot, up to 256 characters. |
| fxRate | number | null | Optional. The broker's exchange rate on the trade, as units of the portfolio's currency per 1 unit of the stock's trading currency (e.g. 0.92 for EUR per USD). Only when the user states it; omit to convert at the official rate on the trade date. |
| ticker* | string | Stock ticker, or MIC:TICKER for a listing on another exchange, e.g. XPAR:AIR. For an option, the UNDERLYING U.S. ticker, e.g. AAPL. |
| quantity* | number | Signed size: shares for a stock, contracts for an option. Negative for a short sale or a written option. |
| portfolio* | string | The portfolio to add to, by name. |
| costPerUnit* | number | 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). In the currency the stock trades in, in major units: London prices in pounds, not pence. |
| acquiredDate* | string | The trade date, as yyyy-MM-dd. Cannot be in the future. |
| optionContract | string | Optional. The OCC option symbol, e.g. O:AAPL260724C00110000. Provide it to record an option contract; omit it for shares. |
{
"type": "object",
"required": [
"portfolio",
"ticker",
"quantity",
"costPerUnit",
"acquiredDate"
],
"properties": {
"note": {
"type": "string",
"default": null,
"description": "Optional. A short note from the user about this lot, up to 256 characters."
},
"fxRate": {
"type": [
"number",
"null"
],
"default": null,
"description": "Optional. The broker's exchange rate on the trade, as units of the portfolio's currency per 1 unit of the stock's trading currency (e.g. 0.92 for EUR per USD). Only when the user states it; omit to convert at the official rate on the trade date."
},
"ticker": {
"type": "string",
"description": "Stock ticker, or MIC:TICKER for a listing on another exchange, e.g. XPAR:AIR. For an option, the UNDERLYING U.S. 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). In the currency the stock trades in, in major units: London prices in pounds, not pence."
},
"acquiredDate": {
"type": "string",
"description": "The trade date, as yyyy-MM-dd. Cannot be in the future."
},
"optionContract": {
"type": "string",
"default": null,
"description": "Optional. The OCC option symbol, e.g. O:AAPL260724C00110000. Provide it to record an option contract; omit it for shares."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| lotId* | string | The lot id shown by GetMyPortfolio, e.g. a1b2c3d4. |
| quantity | number | null | Optional. How much of the lot to close, as a positive size. Omit to close all of it. |
| closeDate* | string | The closing date, as yyyy-MM-dd. Cannot be in the future or before the lot was acquired. |
| portfolio* | string | The portfolio holding the lot, by name. |
| closePrice* | number | Price per share received (or paid, to cover a short). Zero for an option that expired worthless. |
{
"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": null,
"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."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| concept* | string | Concept alias, e.g. 'revenue', 'net-income', 'eps-diluted'. Call with an unknown value to list supported aliases. |
| tickers* | array | Ticker symbols to compare (max 25); a listing on another exchange is MIC:TICKER (XPAR:AIR). |
| fiscalYear* | integer | Fiscal year, e.g. 2023 |
| fiscalPeriod | string | Fiscal period: 'FY' (default) or 'Q1'..'Q4' |
{
"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); a listing on another exchange is MIC:TICKER (XPAR:AIR)."
},
"fiscalYear": {
"type": "integer",
"description": "Fiscal year, e.g. 2023"
},
"fiscalPeriod": {
"type": "string",
"default": "FY",
"description": "Fiscal period: 'FY' (default) or 'Q1'..'Q4'"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| maxResults | integer | Maximum number of stocks to return (default: 30, clamped to 1-500) |
| reportDate | string | 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* | string | First institution name or CIK (a unique partial resolves; ambiguous partials return candidate CIKs) |
| institutionName2* | string | Second institution name or CIK (a unique partial resolves; ambiguous partials return candidate CIKs) |
{
"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": null,
"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)"
}
}
}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. Totals are reported in the portfolio's currency; each holding stays in the currency its listing trades in.
| Argument | Type | Description |
|---|---|---|
| name* | string | A short name for the portfolio, e.g. Main or Retirement. |
| currency | string | Optional. ISO code the totals are reported in: USD (default), EUR, GBP, CHF, DKK, NOK, SEK, CNY or HKD. Use the user's home currency. |
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "A short name for the portfolio, e.g. Main or Retirement."
},
"currency": {
"type": "string",
"default": null,
"description": "Optional. ISO code the totals are reported in: USD (default), EUR, GBP, CHF, DKK, NOK, SEK, CNY or HKD. Use the user's home currency."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| name* | string | The exact name of the portfolio to delete. |
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "The exact name of the portfolio to delete."
}
}
}Get every disclosed holder of a stock or ETF listing in one table: 13F institutions, Schedule 13D and 13G filers, insiders (Forms 3, 4, 5) and registered funds (N-PORT). The default view shows one row per holder from its freshest filing, with its other filings and the 13D/G, insider and fund disclosures its 13F report contains nested under it, matched by CIK and SEC reporting links, never by name. Shares are restated onto today's split basis, change is against the same holder's previous filing in the same source, and % Out is of shares outstanding. Funds are never summed: their shares sit inside their advisers' 13F reports. view=all lists every row flat, stale ones included; view=ultimate groups the summed holders under their ultimate parent and lists each parent's members with the link that put them there. Use GetOwnershipSummary for the totals.
| Argument | Type | Description |
|---|---|---|
| view | string | default (one row per holder, others nested), all (every row flat, stale included) or ultimate (summed holders grouped by ultimate parent, members listed beneath) |
| offset | integer | Number of ranked rows to skip before returning results (default: 0) |
| source | string | Source to list: all (default), 13f, 13dg (13D and 13G), 13d, 13g, insider, fund or nonus (non-US disclosures a deployment adds). A single source lists its rows flat, stale ones flagged. |
| ticker* | string | Listed security ticker (e.g., NVDA, VOO) |
| maxResults | integer |
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.
| Argument | Type | Description |
|---|---|---|
| asOf | string | ISO-8601 UTC cutoff for a snapshot verified at or before this instant. |
| limit | integer | Maximum observations, default 25, range 1–100. |
| metric | string | Exact source metric label; omit to read all metrics. |
| offset | integer | Zero-based observation offset, default 0, maximum 100000. |
| period | string | Exact source forecast-period label; omit for all periods. |
| ticker* | string | Stock ticker symbol (e.g., SAP), or MIC:TICKER (e.g., XETR:SAP) for a listing outside the US. |
| dimensions | string | Exact source dimension label; omit for all products and segments. |
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.
| Argument | Type | Description |
|---|---|---|
| ticker* | string | Stock ticker symbol (e.g., AAPL, MSFT). |
{
"type": "object",
"required": [
"ticker"
],
"properties": {
"ticker": {
"type": "string",
"description": "Stock ticker symbol (e.g., AAPL, MSFT)."
}
}
}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 for a US listing, the listing's own quote unit otherwise). The smoothing is warmed up on price history fetched before startDate, so values do not depend on the requested range's left edge.
| Argument | Type | Description |
|---|---|---|
| period | integer | Smoothing window (default: 14) |
| ticker* | string | Stock ticker symbol (e.g., AAPL, MSFT). Class shares use a dash (BRK-B); the dot form (BRK.B) is also accepted. A listing on another exchange is MIC:TICKER (XPAR:AIR). |
| endDate | string | End date in YYYY-MM-DD format (defaults to latest available) |
| startDate | string | Start date in YYYY-MM-DD format (defaults to 6 months ago) |
| maxResults | integer | Maximum number of records to return (default: 60, max: 500); the newest rows are kept and listed newest first. |
{
"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. A listing on another exchange is MIC:TICKER (XPAR:AIR)."
},
"endDate": {
"type": "string",
"default": null,
"description": "End date in YYYY-MM-DD format (defaults to latest available)"
},
"startDate": {
"type": "string",
"default": null,
"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."
}
}
}Get the Schedule 13D and 13G beneficial-ownership record of a stock or ETF listing: each filer's latest 13D or 13G, its event date, the block's shares (restated onto today's split basis) and percent of class, the change since the filer's previous 13D or 13G, and every reporting person on the cover pages with their own amount, percent and sole or shared voting and dispositive power. Reporting persons on one filing each claim the same block, so never add them together. Largest block first.
| Argument | Type | Description |
|---|---|---|
| offset | integer | Number of filers to skip before returning results (default: 0) |
| ticker* | string | Listed security ticker (e.g., NVDA, BRK-B) |
| maxResults | integer | Maximum number of filers to return (default: 20, clamped to 1-500) |
{
"type": "object",
"required": [
"ticker"
],
"properties": {
"offset": {
"type": "integer",
"default": 0,
"description": "Number of filers to skip before returning results (default: 0)"
},
"ticker": {
"type": "string",
"description": "Listed security ticker (e.g., NVDA, BRK-B)"
},
"maxResults": {
"type": "integer",
"default": 20,
"description": "Maximum number of filers to return (default: 20, clamped to 1-500)"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| period | integer | Moving-average window (default: 20) |
| stdDev | number | Standard deviations for the upper/lower bands (default: 2) |
| ticker* | string | Stock ticker symbol (e.g., AAPL, MSFT). Class shares use a dash (BRK-B); the dot form (BRK.B) is also accepted. A listing on another exchange is MIC:TICKER (XPAR:AIR). |
| endDate | string | End date in YYYY-MM-DD format (defaults to latest available) |
| startDate | string | Start date in YYYY-MM-DD format (defaults to 6 months ago) |
| maxResults | integer | Maximum number of records to return (default: 60, max: 500); the newest rows are kept and listed newest first. |
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.
| Argument | Type | Description |
|---|---|---|
| ticker* | string | Stock ticker symbol (e.g., AAPL, MSFT). |
{
"type": "object",
"required": [
"ticker"
],
"properties": {
"ticker": {
"type": "string",
"description": "Stock ticker symbol (e.g., AAPL, MSFT)."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| endDate | string | End date in YYYY-MM-DD format (defaults to latest available) |
| startDate | string | Start date in YYYY-MM-DD format (defaults to 1 year ago) |
| marketCode* | string | CFTC market code, common contract name, or standard futures symbol (e.g., 067651, WTI, ES, Gold futures) |
| maxResults | integer | 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. |
{
"type": "object",
"required": [
"marketCode"
],
"properties": {
"endDate": {
"type": "string",
"default": null,
"description": "End date in YYYY-MM-DD format (defaults to latest available)"
},
"startDate": {
"type": "string",
"default": null,
"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."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| metric | string | 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* | string | Stock ticker symbol (e.g., AAPL, MSFT). |
{
"type": "object",
"required": [
"ticker"
],
"properties": {
"metric": {
"type": "string",
"default": null,
"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)."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| offset | integer | Number of matching trades to skip before returning rows (default: 0) |
| ticker* | string | Listed security ticker (e.g., AAPL, VOO, MSFT) |
| endDate | string | End date in YYYY-MM-DD format (defaults to today) |
| startDate | string | Start date in YYYY-MM-DD format (defaults to 1 year ago) |
| maxResults | integer | Maximum number of trades to return (default: 50, max: 500, newest first) |
| transactionType | string | Filter by transaction type: Purchase or Sale; the synonyms Buy/Sell are accepted (defaults to all) |
{
"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": null,
"description": "End date in YYYY-MM-DD format (defaults to today)"
},
"startDate": {
"type": "string",
"default": null,
"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": null,
"description": "Filter by transaction type: Purchase or Sale; the synonyms Buy/Sell are accepted (defaults to all)"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| days | integer | Trailing calendar window in days for the return series (default 180, clamped to 30-730). |
| scope | string | Candidate universe: Industry (default), Sector, or Market (~1,500 largest listed names). |
| ticker* | string | 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 | string | Positive (default) for the strongest co-movers, Negative for the strongest inverse movers. |
| maxResults | integer | Maximum number of stocks to return (default 10, max 50). |
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).
| Argument | Type | Description |
|---|---|---|
| ticker* | string | Stock ticker symbol (e.g., AAPL, MSFT). |
| maxFilings | integer | How many of the newest disclosing filings to return (default 1 — the latest; cap 10). |
{
"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)."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| ticker* | string | Stock ticker symbol (e.g., AAPL, MSFT), or MIC:TICKER (e.g., XPAR:AIR) for a listing outside the US. |
| maxHistory | integer | Maximum filing-history rows to return (default 10, max 10). |
| instrumentId* | string | Debt instrument identifier returned by GetDebtProfile. |
| maxCovenants | integer | Maximum covenant rows to return (default 10, max 10). |
| maxDocuments | integer | Maximum governing/update documents to return (default 10, max 10). |
| historyOffset | integer | Zero-based filing-history offset for paging. |
| covenantOffset | integer | Zero-based covenant offset for paging. |
Get a company's source-linked reported debt balances, total debt history, and identified notes, loans, and revolving credit facilities. The latest annual report establishes the baseline; subsequent interim reports and event disclosures update 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.
| Argument | Type | Description |
|---|---|---|
| offset | integer | Zero-based instrument offset for paging (default 0, max 100000). |
| ticker* | string | Stock ticker symbol (e.g., AAPL, MSFT), or MIC:TICKER (e.g., XPAR:AIR) for a listing outside the US. |
| maxResults | integer | Maximum instruments to return (default 25, max 25). |
| evidenceOffset | integer | Zero-based character offset into the selected company-reported totals' exact evidence. |
| maxReportedTotals | integer | Maximum company-reported totals to return (default 10, max 10). |
| reportedTotalOffset | integer | Zero-based company-reported-total offset for paging. |
Get the stored declared cash dividends of an exact stock or ETF listing, newest first. Each row gives the ex-dividend date and cash amount per share: in USD for a US listing, and in the listing's trading currency for a listing on another exchange (MIC:TICKER). Date filters apply to the ex-dividend date. Future ex-dates can appear after a dividend is declared. Each listing reports its own payments: a share class (BRK-A beside BRK-B) or a fund series sharing its trust's filer (SCHD beside FNDA) never inherits another listing's dividends.
| Argument | Type | Description |
|---|---|---|
| offset | integer | Number of newest matching records to skip for pagination (default: 0). |
| ticker* | string | Listed stock or ETF ticker (e.g., AAPL, BRK-A, SCHD); a listing on another exchange is MIC:TICKER (XPAR:AIR). |
| endDate | string | null | Optional latest ex-dividend date in YYYY-MM-DD format. |
| startDate | string | null | Optional earliest ex-dividend date in YYYY-MM-DD format. |
| maxResults | integer | Maximum number of records to return (default: 20, max: 500). |
{
"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": "Listed stock or ETF ticker (e.g., AAPL, BRK-A, SCHD); a listing on another exchange is MIC:TICKER (XPAR:AIR)."
},
"endDate": {
"type": [
"string",
"null"
],
"format": "date-time",
"default": null,
"description": "Optional latest ex-dividend date in YYYY-MM-DD format."
},
"startDate": {
"type": [
"string",
"null"
],
"format": "date-time",
"default": null,
"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)."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Maximum number of quarterly briefs to return, newest first (default 2, max 8; values outside 1-8 are clamped) |
| ticker* | string | Company ticker symbol (e.g., AAPL, MSFT), or MIC:TICKER (e.g., XPAR:AIR) for a listing outside the US. |
| fiscalYear | integer | null | Company fiscal year. Omit both period fields for newest briefs; year alone filters that fiscal year. |
| fiscalQuarter | integer | null | Company fiscal quarter, 1-4. Quarter alone filters that quarter across fiscal years; both fields select an exact period. |
{
"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), or MIC:TICKER (e.g., XPAR:AIR) for a listing outside the US."
},
"fiscalYear": {
"type": [
"integer",
"null"
],
"default": null,
"description": "Company fiscal year. Omit both period fields for newest briefs; year alone filters that fiscal year."
},
"fiscalQuarter": {
"type": [
"integer",
"null"
],
"default": null,
"description": "Company fiscal quarter, 1-4. Quarter alone filters that quarter across fiscal years; both fields select an exact period."
}
}
}Get the earnings-call event for a company's fiscal quarter: one record grouping the call's audio, transcript, slide deck and 8-K earnings release. Returns the event id, title, call date, status, each artefact's status (available, pending, notPublished, failed, notAttempted, noCallHeld) with its reason and capture times, the transcript and release document ids, and approved guidance rows from the 8-K. Omit the fiscal period for the latest call; read the transcript with GetEarningsCallTranscript.
| Argument | Type | Description |
|---|---|---|
| ticker* | string | Company ticker symbol (e.g., AAPL, MSFT), or MIC:TICKER (e.g., XPAR:AIR) for a listing outside the US. |
| fiscalYear | integer | null | Company fiscal year. Omit both period fields for the latest call; year alone selects the latest call in that fiscal year. |
| fiscalQuarter | integer | null | Company fiscal quarter, 1-4. Quarter alone selects the latest matching quarter across fiscal years; provide both fields for an exact period. |
{
"type": "object",
"required": [
"ticker"
],
"properties": {
"ticker": {
"type": "string",
"description": "Company ticker symbol (e.g., AAPL, MSFT), or MIC:TICKER (e.g., XPAR:AIR) for a listing outside the US."
},
"fiscalYear": {
"type": [
"integer",
"null"
],
"default": null,
"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": null,
"description": "Company fiscal quarter, 1-4. Quarter alone selects the latest matching quarter across fiscal years; provide both fields for an exact period."
}
}
}Get the analyst questions asked in a call's Q&A, one entry per analyst turn at the microphone, follow-ups included: the analyst and firm, the full question text, who answered, the turn range to read the exchange with GetEarningsCallTranscript or GetInvestorEventTranscript, and audio offsets for calls transcribed from audio. Names appear only for trusted identity resolutions. Pass a ticker with an optional fiscal period, or an eventId.
| Argument | Type | Description |
|---|---|---|
| ticker | string | Company ticker symbol (e.g., AAPL, MSFT), or MIC:TICKER (e.g., XPAR:AIR) for a listing outside the US. Required unless eventId is given. |
| eventId | string | null | Investor event id from ListInvestorEvents or GetEarningsCallEvent; reads any event's Q&A, conferences included. When given, ticker and fiscal period are ignored. |
| fiscalYear | integer | null | Company fiscal year. Omit both period fields for the latest call; year alone selects the latest call in that fiscal year. |
| fiscalQuarter | integer | null | Company fiscal quarter, 1-4. Quarter alone selects the latest matching quarter across fiscal years; provide both fields for an exact period. |
{
"type": "object",
"properties": {
"ticker": {
"type": "string",
"default": null,
"description": "Company ticker symbol (e.g., AAPL, MSFT), or MIC:TICKER (e.g., XPAR:AIR) for a listing outside the US. Required unless eventId is given."
},
"eventId": {
"type": [
"string",
"null"
],
"format": "uuid",
"default": null,
"description": "Investor event id from ListInvestorEvents or GetEarningsCallEvent; reads any event's Q&A, conferences included. When given, ticker and fiscal period are ignored."
},
"fiscalYear": {
"type": [
"integer",
"null"
],
"default": null,
"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": null,
"description": "Company fiscal quarter, 1-4. Quarter alone selects the latest matching quarter across fiscal years; provide both fields for an exact period."
}
}
}Track how a company's earnings-call themes move quarter over quarter: a theme by fiscal-quarter table of mention counts and tone across its last scored calls, oldest first, with each theme's status on the latest call (new, recurring, dropped, or unknown where an unscored quarter sits between the calls compared). Themes are paired across calls by name or shared keywords. Verifier-approved reads only; GetEarningsCallToneAndThemes gives one call's scores and keywords.
| Argument | Type | Description |
|---|---|---|
| calls | integer | Number of most recent scored fiscal quarters to compare (default 8, max 12; values outside 1-12 are clamped) |
| ticker* | string | Company ticker symbol (e.g., AAPL, MSFT), or MIC:TICKER (e.g., XPAR:AIR) for a listing outside the US. |
{
"type": "object",
"required": [
"ticker"
],
"properties": {
"calls": {
"type": "integer",
"default": 8,
"description": "Number of most recent scored fiscal quarters to compare (default 8, max 12; values outside 1-12 are clamped)"
},
"ticker": {
"type": "string",
"description": "Company ticker symbol (e.g., AAPL, MSFT), or MIC:TICKER (e.g., XPAR:AIR) for a listing outside the US."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Maximum number of scored calls to return, newest first (default 2, max 8; values outside 1-8 are clamped) |
| ticker* | string | Company ticker symbol (e.g., AAPL, MSFT), or MIC:TICKER (e.g., XPAR:AIR) for a listing outside the US. |
| fiscalYear | integer | null | Company fiscal year. Omit both period fields for newest results; year alone filters that fiscal year. |
| fiscalQuarter | integer | null | Company fiscal quarter, 1-4. Quarter alone filters that quarter across fiscal years; both fields select an exact period. |
{
"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), or MIC:TICKER (e.g., XPAR:AIR) for a listing outside the US."
},
"fiscalYear": {
"type": [
"integer",
"null"
],
"default": null,
"description": "Company fiscal year. Omit both period fields for newest results; year alone filters that fiscal year."
},
"fiscalQuarter": {
"type": [
"integer",
"null"
],
"default": null,
"description": "Company fiscal quarter, 1-4. Quarter alone filters that quarter across fiscal years; both fields select an exact period."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Maximum number of speaker turns to return (default 50, max 200; values outside 1-200 are clamped) |
| offset | integer | Number of leading speaker turns to skip, for paging through calls longer than the 200-turn cap (default 0) |
| ticker* | string | Company ticker symbol (e.g., AAPL, MSFT), or MIC:TICKER (e.g., XPAR:AIR) for a listing outside the US. |
| fiscalYear | integer | null | Company fiscal year. Omit both period fields for the latest call; year alone selects the latest call in that fiscal year. |
| fiscalQuarter | integer | null | Company fiscal quarter, 1-4. Quarter alone selects the latest matching quarter across fiscal years; provide both fields for an exact period. |
{
"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), or MIC:TICKER (e.g., XPAR:AIR) for a listing outside the US."
},
"fiscalYear": {
"type": [
"integer",
"null"
],
"default": null,
"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": null,
"description": "Company fiscal quarter, 1-4. Quarter alone selects the latest matching quarter across fiscal years; provide both fields for an exact period."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| endDate | string | End date in YYYY-MM-DD format (defaults to 30 days after the start date) |
| startDate | string | Start date in YYYY-MM-DD format (defaults to today, UTC) |
| maxResults | integer | Maximum number of release dates to return (default: 100, max: 500, chronological) |
| minImportance | string | Minimum importance tier to include: low, medium, or high (defaults to low = everything) |
{
"type": "object",
"properties": {
"endDate": {
"type": "string",
"default": null,
"description": "End date in YYYY-MM-DD format (defaults to 30 days after the start date)"
},
"startDate": {
"type": "string",
"default": null,
"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": null,
"description": "Minimum importance tier to include: low, medium, or high (defaults to low = everything)"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| endDate | string | End date in YYYY-MM-DD format (defaults to latest available) |
| seriesId* | string | FRED series ID or standard indicator name (e.g., FEDFUNDS, fed funds rate, core CPI, jobless claims) |
| startDate | string | Start date in YYYY-MM-DD format (defaults to 1 year before the end date) |
| maxResults | integer | 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. |
{
"type": "object",
"required": [
"seriesId"
],
"properties": {
"endDate": {
"type": "string",
"default": null,
"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": null,
"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."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| offset | integer | Number of ranked holdings to skip (default 0). |
| ticker* | string | Exact exchange-traded ticker (for example SPY). |
| maxResults | integer | Maximum holdings to return (default 20, max 500). |
{
"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)."
}
}
}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, GetDividendHistory for its own declared distributions, 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. Issuer-trained short-interest forecasts and squeeze scores are not ETF analytics.
| Argument | Type | Description |
|---|---|---|
| ticker* | string | Exact exchange-traded ticker (for example SPY, VOO, or IVV). |
{
"type": "object",
"required": [
"ticker"
],
"properties": {
"ticker": {
"type": "string",
"description": "Exact exchange-traded ticker (for example SPY, VOO, or IVV)."
}
}
}Get the director and related-person (PDMR) transactions a regulator published for one listing outside the US, written MIC:TICKER (e.g. XSTO:VOLV-B). Coverage today is Sweden's Finansinspektionen register, matched by the issuer's LEI or the security's ISIN, so rows can include the issuer's other instruments. Each row gives the transaction date, the person and role, a related person where reported, the transaction type, the instrument and ISIN, volume, price and currency, and the source status including amendments. Only captured publication days are covered, and the register is not a complete insider-ownership record. For US Form 4 filings use GetInsiderTransactions.
| Argument | Type | Description |
|---|---|---|
| offset | integer | Rows to skip for paging (default 0). |
| ticker* | string | Listing symbol MIC:TICKER, e.g. XSTO:VOLV-B; a provider suffix such as VOLV-B.ST also works. A bare ticker names a US listing and is answered with the company's listings outside the US to ask with. |
| maxResults | integer | Maximum transactions, newest first (default 20, max 100). |
{
"type": "object",
"required": [
"ticker"
],
"properties": {
"offset": {
"type": "integer",
"default": 0,
"description": "Rows to skip for paging (default 0)."
},
"ticker": {
"type": "string",
"description": "Listing symbol MIC:TICKER, e.g. XSTO:VOLV-B; a provider suffix such as VOLV-B.ST also works. A bare ticker names a US listing and is answered with the company's listings outside the US to ask with."
},
"maxResults": {
"type": "integer",
"default": 20,
"description": "Maximum transactions, newest first (default 20, max 100)."
}
}
}Get the European investment funds reporting a position in one listing outside the US, written MIC:TICKER (e.g. XSTO:VOLV-B), matched by that security's ISIN. Coverage today is Swedish UCITS quarterly portfolios published by Finansinspektionen with about a two-month delay; special funds are excluded. Each row gives the fund, its manager, the reported quantity, the market value in SEK and the position's weight in the fund's assets, which is not a share of the company. Not comprehensive European ownership and not merged with SEC filings. For US registered funds use GetFundsHoldingStock.
| Argument | Type | Description |
|---|---|---|
| offset | integer | Rows to skip for paging (default 0). |
| ticker* | string | Listing symbol MIC:TICKER, e.g. XSTO:VOLV-B; a provider suffix such as VOLV-B.ST also works. A bare ticker names a US listing and is answered with the company's listings outside the US to ask with. |
| periodEnd | string | Quarter end in YYYY-MM-DD (e.g. 2026-06-30); omit for the newest captured quarter. |
| maxResults | integer | Maximum fund positions, largest value first (default 20, max 100). |
{
"type": "object",
"required": [
"ticker"
],
"properties": {
"offset": {
"type": "integer",
"default": 0,
"description": "Rows to skip for paging (default 0)."
},
"ticker": {
"type": "string",
"description": "Listing symbol MIC:TICKER, e.g. XSTO:VOLV-B; a provider suffix such as VOLV-B.ST also works. A bare ticker names a US listing and is answered with the company's listings outside the US to ask with."
},
"periodEnd": {
"type": "string",
"default": null,
"description": "Quarter end in YYYY-MM-DD (e.g. 2026-06-30); omit for the newest captured quarter."
},
"maxResults": {
"type": "integer",
"default": 20,
"description": "Maximum fund positions, largest value first (default 20, max 100)."
}
}
}Get the net short positions disclosed to European regulators for one listing outside the US, written MIC:TICKER (e.g. XPAR:UBI, XAMS:ASML), matched by that security's ISIN, or the issuer's LEI for issuer-level sources: individual holder disclosures from registers such as France's AMF, the Netherlands' AFM and the Spanish, German, Belgian, Irish, Polish, Finnish and Danish registers, plus published aggregates such as Norway's and Sweden's. Values are percentage points of issued share capital. Each register is listed separately and never summed; these are dated disclosures, not total short interest, current holdings or short volume, and a register without a row is not a zero position. Registers checked without a match, not captured yet or out of date are named at the end. For US listings use GetShortInterest.
| Argument | Type | Description |
|---|---|---|
| ticker* | string | Listing symbol MIC:TICKER, e.g. XPAR:UBI; a provider suffix such as UBI.PA also works. A bare ticker names a US listing and is answered with the company's listings outside the US to ask with. |
| maxResults | integer | Maximum rows per register, newest first (default 20, max 100). |
{
"type": "object",
"required": [
"ticker"
],
"properties": {
"ticker": {
"type": "string",
"description": "Listing symbol MIC:TICKER, e.g. XPAR:UBI; a provider suffix such as UBI.PA also works. A bare ticker names a US listing and is answered with the company's listings outside the US to ask with."
},
"maxResults": {
"type": "integer",
"default": 20,
"description": "Maximum rows per register, newest first (default 20, max 100)."
}
}
}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'.
| Argument | Type | Description |
|---|---|---|
| action | string | Optional action filter: Appointed, Resigned, Terminated, or Retired. |
| offset | integer | Number of matching changes to skip before returning rows (default 0). |
| ticker* | string | Stock ticker symbol (e.g., AAPL, MSFT). |
| endDate | string | Optional newest filed date, YYYY-MM-DD. |
| startDate | string | Optional oldest filed date, YYYY-MM-DD. |
| maxResults | integer | Maximum changes to return (default 25, cap 100). |
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.
| Argument | Type | Description |
|---|---|---|
| ticker* | string | Stock ticker symbol (e.g., AAPL, MSFT). |
| maxYears | integer | Optional cap on how many of the newest fiscal years to return (default 0 = all imported years). |
{
"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)."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| ticker* | string | Exact stock or ETF ticker symbol (e.g., AAPL, GME, SPY) |
| endDate | string | End date in YYYY-MM-DD format (defaults to latest available) |
| startDate | string | Start date in YYYY-MM-DD format (defaults to 3 months ago) |
| maxResults | integer | Maximum number of records to return — keeps the most recent N settlement dates in the range, displayed oldest to newest (default: 90, max: 500) |
{
"type": "object",
"required": [
"ticker"
],
"properties": {
"ticker": {
"type": "string",
"description": "Exact stock or ETF ticker symbol (e.g., AAPL, GME, SPY)"
},
"endDate": {
"type": "string",
"default": null,
"description": "End date in YYYY-MM-DD format (defaults to latest available)"
},
"startDate": {
"type": "string",
"default": null,
"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)"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| endDate | string | End date in YYYY-MM-DD format (defaults to 90 days after the start) |
| startDate | string | Start date in YYYY-MM-DD format (defaults to today) |
| maxResults | integer | Maximum number of meetings to return (default: 60, soonest first) |
{
"type": "object",
"properties": {
"endDate": {
"type": "string",
"default": null,
"description": "End date in YYYY-MM-DD format (defaults to 90 days after the start)"
},
"startDate": {
"type": "string",
"default": null,
"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)"
}
}
}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), or from the issuer's regulatory filings for a listing outside the US. Returns a time series using the latest restated value unless asOriginallyReported is set: one row per fiscal period for flows, one row per as-of date for balances and share counts. 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.
| Argument | Type | Description |
|---|---|---|
| form | string | Optional SEC form filter, e.g. '10-K' or '10-Q' |
| ticker* | string | Stock ticker symbol (e.g., AAPL, MSFT); a listing on another exchange is MIC:TICKER (XPAR:AIR). |
| toDate | string | Optional latest period-end date, YYYY-MM-DD |
| concept* | string | Concept alias, e.g. 'revenue', 'net-income', 'eps-diluted', 'total-assets', 'operating-cash-flow'. Call with an unknown value to list supported aliases. |
| fromDate | string | Optional earliest period-end date, YYYY-MM-DD |
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), or from the issuer's regulatory filings for a listing outside the US. 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 values in a currency, 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.
| Argument | Type | Description |
|---|---|---|
| year | integer | null | Fiscal year, e.g. 2023. Defaults to the year of the latest period with line items to show. |
| period | string | Fiscal period: 'FY' (annual) or 'Q1'..'Q4'. Defaults to the latest period with line items to show. 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* | string | Stock ticker symbol (e.g., AAPL, MSFT, GME); a listing on another exchange is MIC:TICKER (XPAR:AIR). |
| statement | string | 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. |
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.
| Argument | Type | Description |
|---|---|---|
| offset | integer | Number of matching notices to skip before returning rows (default: 0) |
| ticker* | string | Company ticker symbol (e.g., AAPL, MSFT) |
| toDate | string | Optional latest filing date to include, ISO format yyyy-MM-dd (e.g., 2025-12-31) |
| fromDate | string | Optional earliest filing date to include, ISO format yyyy-MM-dd (e.g., 2025-01-01) |
| maxResults | integer | Maximum number of notices to return (default: 50, max: 500; values outside 1-500 are clamped) |
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.
| Argument | Type | Description |
|---|---|---|
| offset | integer | Number of matching notices to skip before returning rows (default: 0) |
| ticker* | string | Company ticker symbol (e.g., AAPL, MSFT) |
| toDate | string | Optional latest filing date to include, ISO format yyyy-MM-dd (e.g., 2024-12-31) |
| fromDate | string | Optional earliest filing date to include, ISO format yyyy-MM-dd (e.g., 2024-01-01) |
| maxResults | integer | Maximum number of notices to return (default: 50, max: 500; values outside 1-500 are clamped) |
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.
| Argument | Type | Description |
|---|---|---|
| fund* | string | Fund or ETF ticker, profile id, SEC series id, or verified share-class alias (e.g., MXF, IVV, S000004344, VOO) |
| maxResults | integer | Maximum number of annual reports to return (default: 10, max: 500) |
{
"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)"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| fund* | string | 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 | integer | Number of ranked holdings to skip before returning rows (default: 0) |
| maxResults | integer | Maximum number of holdings to return, largest first (default: 20, max: 500) |
{
"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)"
}
}
}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 (or, for a listing on another exchange written MIC:TICKER, its ISIN) 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.
| Argument | Type | Description |
|---|---|---|
| offset | integer | Number of matching fund positions to skip before returning rows (default: 0) |
| ticker* | string | Listed security ticker (e.g., AAPL, VOO); a listing on another exchange is MIC:TICKER (XPAR:AIR). |
| maxResults | integer | Maximum number of fund positions to return, largest first (default: 20, clamped to 1-500) |
| registrantOrSeries | string | Optional registrant or series name filter (case-insensitive contains, e.g. 'Vanguard') — reaches positions beyond the largest 500 |
{
"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); a listing on another exchange is MIC:TICKER (XPAR:AIR)."
},
"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": null,
"description": "Optional registrant or series name filter (case-insensitive contains, e.g. 'Vanguard') — reaches positions beyond the largest 500"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| ticker* | string | Stock ticker symbol (e.g., AAPL, MSFT). |
{
"type": "object",
"required": [
"ticker"
],
"properties": {
"ticker": {
"type": "string",
"description": "Stock ticker symbol (e.g., AAPL, MSFT)."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| agency | string | Optional case-insensitive substring filter on the awarding agency (e.g., 'Defense') |
| offset | integer | Number of matching awards to skip before returning rows (default: 0) |
| sortBy | string | Sort order: 'amount' (largest total value first, default) or 'date' (most recent award first) |
| ticker* | string | Stock ticker symbol (e.g., LMT, RTX, BA) |
| endDate | string | End date in YYYY-MM-DD format (defaults to today) |
| startDate | string | Start date in YYYY-MM-DD format, filtering on the award action date (defaults to 1 year ago) |
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.
| Argument | Type | Description |
|---|---|---|
| ticker* | string | Stock ticker symbol (e.g., AAPL, MSFT), or MIC:TICKER (e.g., XPAR:AIR) for a listing outside the US. |
{
"type": "object",
"required": [
"ticker"
],
"properties": {
"ticker": {
"type": "string",
"description": "Stock ticker symbol (e.g., AAPL, MSFT), or MIC:TICKER (e.g., XPAR:AIR) for a listing outside the US."
}
}
}Who holds a stock or ETF listing, by kind of 13F filer, quarter by quarter: each bucket's share of 13F common shares, its like-for-like change, and new and exited filers. Split by holder type (regulatory records, never names), measured style, turnover, horizon, 13F book size, client base, private funds or location. Also gives the active holders' like-for-like change, which leaves index-like books out. The fundtype dimension instead splits registered funds' Form NPORT-P positions by their Form N-CEN fund type (index funds, index ETFs, active ETFs, active funds, unclassified) as a share of shares outstanding; fund positions sit inside their advisers' 13F reports, so they are never added to 13F totals.
| Argument | Type | Description |
|---|---|---|
| ticker* | string | Listed security ticker (e.g., NVDA, VOO) |
| dimension | string | How to split the holders: type (holder type, default), style, turnover, horizon, aum (13F book size), client (client base), pf (private funds), country (filer location), fundtype (registered funds by N-CEN fund type, from N-PORT, as a share of shares outstanding) |
| maxPeriods | integer | Quarters to show, newest last (default 4, clamped to 1-12) |
{
"type": "object",
"required": [
"ticker"
],
"properties": {
"ticker": {
"type": "string",
"description": "Listed security ticker (e.g., NVDA, VOO)"
},
"dimension": {
"type": "string",
"default": "type",
"description": "How to split the holders: type (holder type, default), style, turnover, horizon, aum (13F book size), client (client base), pf (private funds), country (filer location), fundtype (registered funds by N-CEN fund type, from N-PORT, as a share of shares outstanding)"
},
"maxPeriods": {
"type": "integer",
"default": 4,
"description": "Quarters to show, newest last (default 4, clamped to 1-12)"
}
}
}Shareholder targeting for a stock: the 13F filers of the newest closed quarter that hold its holder-overlap peers (operating companies whose active holders overlap most, funds excluded) but hold no class of the stock itself, ranked by the money they have in those peers. A stock with no overlap peers falls back to its sector's largest operating-company 13F holdings; a fund has no targets. Each target shows its 13F book, the peers' share of it, the peers it holds most of, its measured style and its holder type from regulatory records.
| Argument | Type | Description |
|---|---|---|
| sort | string | Rank by: 'peerValue' (default, dollars held in the peers) or 'peerWeight' (the peers' share of the filer's 13F book, then book size) |
| ticker* | string | Listed security ticker (e.g., NVDA) |
| maxResults | integer | Maximum number of targets to return (default 25, clamped to 1-500) |
{
"type": "object",
"required": [
"ticker"
],
"properties": {
"sort": {
"type": "string",
"default": "peerValue",
"description": "Rank by: 'peerValue' (default, dollars held in the peers) or 'peerWeight' (the peers' share of the filer's 13F book, then book size)"
},
"ticker": {
"type": "string",
"description": "Listed security ticker (e.g., NVDA)"
},
"maxResults": {
"type": "integer",
"default": 25,
"description": "Maximum number of targets to return (default 25, clamped to 1-500)"
}
}
}Market-wide 13F money flows for a closed quarter by kind of filer: what each bucket bought and sold, net flow, net flow as % of its prior 13F book, and net buyers vs sellers. Buckets: holder type (regulatory records, never names), measured style, turnover, horizon, book size, client base, private funds or location. Optionally split by sector, with ETFs apart. Trades are priced at quarter-average prices; filers with no 13F the quarter before add no flow.
| Argument | Type | Description |
|---|---|---|
| bucket | string | One bucket token of the dimension (e.g. adv, idx, high) to list that bucket's flow by sector; implies groupBy=sector |
| groupBy | string | none (default) or sector: split each bucket's flow by sector |
| dimension | string | How to split the filers: type (holder type, default), style, turnover, horizon, aum (13F book size), client (client base), pf (private funds), country (filer location) |
| reportDate | string | Closed quarter-end report date in YYYY-MM-DD format (defaults to the newest computed quarter; a later date reads the newest computed quarter, an earlier off-quarter date the computed quarter before it) |
{
"type": "object",
"properties": {
"bucket": {
"type": "string",
"default": null,
"description": "One bucket token of the dimension (e.g. adv, idx, high) to list that bucket's flow by sector; implies groupBy=sector"
},
"groupBy": {
"type": "string",
"default": "none",
"description": "none (default) or sector: split each bucket's flow by sector"
},
"dimension": {
"type": "string",
"default": "type",
"description": "How to split the filers: type (holder type, default), style, turnover, horizon, aum (13F book size), client (client base), pf (private funds), country (filer location)"
},
"reportDate": {
"type": "string",
"default": null,
"description": "Closed quarter-end report date in YYYY-MM-DD format (defaults to the newest computed quarter; a later date reads the newest computed quarter, an earlier off-quarter date the computed quarter before it)"
}
}
}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. Each addition carries an estimate, not a record, of the index-fund buying it implied, in shares and days of volume.
| Argument | Type | Description |
|---|---|---|
| index* | string | Index name or slug, for example "S&P 500", "sp-500", "nasdaq-100" or "Russell 2000". |
| maxResults | integer | Maximum changes to return, newest first (default 25, max 500). |
{
"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)."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| index* | string | Index name or slug, for example "S&P 500", "sp-500", "nasdaq-100" or "Russell 2000". |
| offset | integer | Rows to skip before returning, for paging through a full list (default 0). |
| maxResults | integer | Maximum constituents to return, heaviest first (default 100, max 500). |
{
"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)."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| index* | string | Index name or slug, for example "S&P 500", "nasdaq-100" or "Russell 2000". The Dow is not forecastable. |
| maxResults | integer | Maximum companies to return per bucket (default 25, max 1000). |
{
"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)."
}
}
}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, held directly or through each indirect vehicle the filing names (a trust, partnership or LLC, told apart by its stated nature of ownership and by which balance each trade continues), 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. A vehicle the newest filing does not list is not counted. 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.
| Argument | Type | Description |
|---|---|---|
| offset | integer | 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* | string | Company ticker symbol (e.g., AAPL, MSFT) |
| maxResults | integer | Maximum number of insiders to return (default: 30, max: 500; values outside 1-500 are clamped) |
{
"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)"
}
}
}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 by officers and directors (a holder that is only a 10% owner is excluded); 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.
| Argument | Type | Description |
|---|---|---|
| bottom | boolean | Return the LOWEST-scored stocks instead — the heaviest peer-relative net insider selling — lowest score first. |
| offset | integer | Number of matching ranked stocks to skip before returning rows (default: 0; ignored for a single-ticker lookup). |
| ticker | string | 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 | integer | Maximum number of stocks to return (default: 25, highest score first; clamped to 1-200). |
| minMarketCap | number | Minimum market capitalization in US dollars (e.g. 300000000 = $300M; default 0 = no floor). Stocks with an unknown market cap are excluded when set. |
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.
| Argument | Type | Description |
|---|---|---|
| offset | integer | Number of matching transactions to skip before returning rows (default: 0) |
| ticker* | string | Company ticker symbol (e.g., AAPL, MSFT) |
| toDate | string | Only include transactions on or before this date, format yyyy-MM-dd (optional) |
| fromDate | string | Only include transactions on or after this date, format yyyy-MM-dd (optional) |
| maxResults | integer | Maximum number of transactions to return (default: 50, max: 500; values outside 1-500 are clamped) |
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.
| Argument | Type | Description |
|---|---|---|
| toDate | string | Optional window end in YYYY-MM-DD format (defaults to today when only fromDate is given) |
| fromDate | string | Optional window start in YYYY-MM-DD format for an anchored historical backtest (e.g. 2015-01-01); overrides windowYears |
| benchmark | string | Benchmark ticker to compare against (default: SPY) |
| institution* | string | 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 | integer | Trailing window length in years anchored at today (default: 3, clamped to 1-20; ignored when fromDate/toDate are supplied) |
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.
| Argument | Type | Description |
|---|---|---|
| maxResults | integer | Maximum number of stocks to return (default: 30, clamped to 1-500) |
| reportDate | string | 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 | integer | Minimum number of institutions that must hold a stock (default: 1; set 2 or more for shared positions) |
| institutionNames* | array | Institution names or CIKs (2-25). Unique partial names and verified aliases resolve; ambiguous partials return candidate CIKs. |
{
"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": null,
"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."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| offset | integer | 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 | integer | Maximum number of holdings to return (default: 20, clamped to 1-500) |
| reportDate | string | 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* | string | Institution name or SEC CIK. A unique partial name resolves; an ambiguous partial returns candidate CIKs instead of selecting silently. |
Get an institution's quarterly position-change activity — Initiated / Increased / Reduced / Exited stocks diffed against the immediately prior quarter. Common shares, put/call positions and principal amounts are separate rows labelled by Type. 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?'
| Argument | Type | Description |
|---|---|---|
| bucket | string | Filter to a single bucket: initiated, increased, reduced, exited (omit for all four) |
| maxResults | integer | Maximum number of stocks to return per bucket (default: 20, clamped to 1-500) |
| reportDate | string | 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* | string | Institution name or CIK (a unique partial resolves; ambiguous partials return candidate CIKs) |
{
"type": "object",
"required": [
"institutionName"
],
"properties": {
"bucket": {
"type": "string",
"default": null,
"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": null,
"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)"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| groupBy | string | Grouping level: 'industry' (default, fine-grained) or 'sector' (broad rollup) |
| reportDate | string | 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* | string | Institution name or CIK (a unique partial resolves; ambiguous partials return candidate CIKs) |
{
"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": null,
"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)"
}
}
}Get an institutional 13F filer's portfolio style quarter by quarter, measured from its filed common-share book: style band (index-like, systematic-like, concentrated, diversified active), turnover band, holding-horizon band, and the measurements behind them (equity value, stock count, active share against every 13F filer's combined book and against the closest benchmark among the S&P 500, S&P MidCap 400, S&P SmallCap 600, Russell 1000, Russell 2000, Nasdaq-100 and Dow Jones Industrial Average with its as-of date, sector active share, top 10 weight, effective positions, trailing annual turnover, value-weighted holding period), plus the newest quarter's active share against every benchmark. Bands are measurements with stated thresholds, never the firm's own description. Closed quarters only; the newest quarter is measured once its filing window closes.
| Argument | Type | Description |
|---|---|---|
| maxPeriods | integer | Number of measured quarters to return, newest first (default: 8, clamped to 1-40) |
| institutionName* | string | Institution name or CIK (a unique partial resolves; ambiguous partials return candidate CIKs) |
{
"type": "object",
"required": [
"institutionName"
],
"properties": {
"maxPeriods": {
"type": "integer",
"default": 8,
"description": "Number of measured quarters to return, newest first (default: 8, clamped to 1-40)"
},
"institutionName": {
"type": "string",
"description": "Institution name or CIK (a unique partial resolves; ambiguous partials return candidate CIKs)"
}
}
}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, then the holder's profile from regulatory records: entity type and the record that decided it, Form ADV adviser facts (regulatory assets, client base, private funds, LEI) with roster history and dated Schedule D private funds, registered funds it advises, the parent 13F filer that reports its holdings, and earlier or later CIKs its 13F reports continue under, then any strategy the firm states in its own filed brochure (quoted, dated, linked), then its style, turnover and horizon bands measured from its filed book. Values use report-date closing prices, may fall back to filer values, and can be zero when unvalued. Resolve exact CIKs with SearchInstitutions; ambiguous partial names return candidates rather than selecting a filer silently.
| Argument | Type | Description |
|---|---|---|
| reportDate | string | 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* | string | Institution name or CIK (a unique partial resolves; ambiguous partials return candidate CIKs) |
{
"type": "object",
"required": [
"institutionName"
],
"properties": {
"reportDate": {
"type": "string",
"default": null,
"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)"
}
}
}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. Share Chg (QoQ) is like-for-like: it compares only filers with an observed 13F in both quarters, and each quarter notes how many filers and shares it excluded (the largest named), so 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.
| Argument | Type | Description |
|---|---|---|
| ticker* | string | Listed security ticker (e.g., AAPL, VOO) |
| maxPeriods | integer | Maximum number of quarterly periods to return (default: 8, clamped to 1-500) |
{
"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)"
}
}
}Get the full Form ADV profile for a single SEC-registered or exempt reporting 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); exempt reporting advisers do not report these Item 5 figures. Find CRD numbers with SearchInvestmentAdvisers.
| Argument | Type | Description |
|---|---|---|
| crd* | integer | The adviser's Organization CRD number (e.g., 231) |
{
"type": "object",
"required": [
"crd"
],
"properties": {
"crd": {
"type": "integer",
"description": "The adviser's Organization CRD number (e.g., 231)"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| eventId* | string | The investor 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)"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Maximum number of speaker turns to return (default 50, max 200; values outside 1-200 are clamped) |
| offset | integer | Number of leading speaker turns to skip, for paging through events longer than the 200-turn cap (default 0) |
| eventId* | string | The investor event id (from ListInvestorEvents) |
{
"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)"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| since | string | Optional earliest publish date, strict yyyy-MM-dd (UTC). Only items published on or after this date are returned. |
| offset | integer | Number of matching news items to skip before returning rows (default: 0). |
| ticker* | string | Company ticker symbol (e.g., NVDA), or MIC:TICKER (e.g., XPAR:AIR) for a listing outside the US. |
| maxResults | integer | Maximum number of news items to return (default: 20, max: 500) |
{
"type": "object",
"required": [
"ticker"
],
"properties": {
"since": {
"type": "string",
"default": null,
"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), or MIC:TICKER (e.g., XPAR:AIR) for a listing outside the US."
},
"maxResults": {
"type": "integer",
"default": 20,
"description": "Maximum number of news items to return (default: 20, max: 500)"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| cik* | string | The filer's SEC CIK, with or without leading zeros (e.g. 1995137). |
{
"type": "object",
"required": [
"cik"
],
"properties": {
"cik": {
"type": "string",
"description": "The filer's SEC CIK, with or without leading zeros (e.g. 1995137)."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Maximum registrations to return, newest filing activity first (default 25). |
| offset | integer | Number of matching registrations to skip before returning rows (default 0). |
| status | string | Optional lifecycle filter: Filed, Priced, Listed, or Withdrawn. Omit for all. |
| filerType | string | Optional company-type filter: Operating (non-SPAC) or Spac (SIC 6770 blank checks). Omit for all. |
{
"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": null,
"description": "Optional lifecycle filter: Filed, Priced, Listed, or Withdrawn. Omit for all."
},
"filerType": {
"type": "string",
"default": null,
"description": "Optional company-type filter: Operating (non-SPAC) or Spac (SIC 6770 blank checks). Omit for all."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| date | string | Trading day in YYYY-MM-DD format (defaults to the latest available day) |
| offset | integer | 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 | string | Sort key: shortVolume (default) or shortPercent — with shortPercent set a minTotalVolume floor, otherwise illiquid names dominate |
| maxResults | integer | Maximum number of results to return (default: 50, max: 500) |
| minShortVolume | integer |
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.
| Argument | Type | Description |
|---|---|---|
| category | string | Category filter: Agriculture, Energy, Metals, EquityIndices, InterestRates, Currencies (defaults to all) |
{
"type": "object",
"properties": {
"category": {
"type": "string",
"default": null,
"description": "Category filter: Agriculture, Energy, Metals, EquityIndices, InterestRates, Currencies (defaults to all)"
}
}
}Get each ticker's newest traded, settled daily close (USD for US listings; a MIC:TICKER listing on another exchange in its own trading currency, named in a note), 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; for a MIC:TICKER row it compares with the previous traded close, omitted when that close is more than 12 days older or a stored session in between shows no trades. Split-limited or partial 52-week ranges are marked in the response. This is settled history, not an intraday quote.
| Argument | Type | Description |
|---|---|---|
| tickers* | array | Ticker symbols (max 25). Class shares may use BRK-B or BRK.B; a listing on another exchange is MIC:TICKER (XPAR:AIR). |
{
"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; a listing on another exchange is MIC:TICKER (XPAR:AIR)."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| category | string | Category filter: InterestRates, YieldSpreads, CorporateBondSpreads, Inflation, Employment, GdpAndOutput, MoneySupply, Sentiment, Housing, ExchangeRates, Market (defaults to all) |
{
"type": "object",
"properties": {
"category": {
"type": "string",
"default": null,
"description": "Category filter: InterestRates, YieldSpreads, CorporateBondSpreads, Inflation, Employment, GdpAndOutput, MoneySupply, Sentiment, Housing, ExchangeRates, Market (defaults to all)"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| tickers* | array | Ticker symbols (max 25). |
{
"type": "object",
"required": [
"tickers"
],
"properties": {
"tickers": {
"type": "array",
"items": {
"type": "string"
},
"description": "Ticker symbols (max 25)."
}
}
}Get the major-holding notifications regulators outside the US publish for one listing, written MIC:TICKER (e.g. XLON:BARC): who crossed a voting-rights threshold, when, and the resulting position. Coverage: the UK FCA (TR-1 under DTR 5), the French AMF (threshold crossings), the Dutch AFM (its register, which states no publication date), the Spanish CNMV (significant holdings) and Japan's EDINET (large-shareholding reports; a joint report states its holders' total ratio), matched by ISIN, LEI, a regulator-stated registration number or the issuer's EDINET code. Each row is one notification by the obligated person: voting rights through shares (direct and indirect) and financial instruments, the total, the share of capital where stated, and the previous notified total. Dated notifications, not a register, never summed or merged with SEC 13F, 13D or 13G data; a correction replaces the version it corrects. For a US listing use GetBeneficialOwnership (13D and 13G) and GetTopHolders (13F).
| Argument | Type | Description |
|---|---|---|
| offset | integer | Rows to skip for paging (default 0). |
| ticker* | string | Listing symbol MIC:TICKER, e.g. XLON:BARC; a provider suffix such as BARC.L also works. A bare ticker names a US listing and is answered with the US ownership tools and the company's listings outside the US. |
| maxResults | integer | Maximum notifications, newest event first (default 20, max 100). |
{
"type": "object",
"required": [
"ticker"
],
"properties": {
"offset": {
"type": "integer",
"default": 0,
"description": "Rows to skip for paging (default 0)."
},
"ticker": {
"type": "string",
"description": "Listing symbol MIC:TICKER, e.g. XLON:BARC; a provider suffix such as BARC.L also works. A bare ticker names a US listing and is answered with the US ownership tools and the company's listings outside the US."
},
"maxResults": {
"type": "integer",
"default": 20,
"description": "Maximum notifications, newest event first (default 20, max 100)."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| year | integer | null | Calendar year, e.g. 2026. Defaults to the current year. |
{
"type": "object",
"properties": {
"year": {
"type": [
"integer",
"null"
],
"default": null,
"description": "Calendar year, e.g. 2026. Defaults to the current year."
}
}
}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.
No arguments.
{
"type": "object",
"properties": {}
}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). Every board counts only filers with a 13F in both quarters. Δ 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?'
| Argument | Type | Description |
|---|---|---|
| bucket* | string | Bucket: top-buys, top-sells, new-positions, or sold-out-positions |
| maxResults | integer | Maximum number of stocks to return (default: 20, clamped to 1-500) |
| reportDate | string | 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) |
{
"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": null,
"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)"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| days | integer | Trailing disclosure window in days (default: 30, max: 365). |
| chamber | string | Filter by chamber: 'senate' or 'house' (defaults to both). |
| direction | string | Ranking direction: 'buys' (most net congressional buying first, default) or 'sells' (most net selling first). |
| maxResults | integer | Maximum number of stocks to return (default: 25, max: 200). |
{
"type": "object",
"properties": {
"days": {
"type": "integer",
"default": 30,
"description": "Trailing disclosure window in days (default: 30, max: 365)."
},
"chamber": {
"type": "string",
"default": null,
"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)."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| maxResults | integer | Maximum number of years to return (default: 20, max: 500, newest first) |
| memberName* | string | Congress member name, case-insensitive (e.g., 'Nancy Pelosi', 'Marsha Blackburn'); use SearchCongressMembers to find the exact name |
{
"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"
}
}
}Get a congress member's disclosed securities transactions (newest first, last year by default). Shows tickers, transaction and filing dates, disclosed amount ranges, the filed Asset identifying the instrument (such as stock, option, or bond), and the member's party on the transaction date. Use SearchCongressMembers to find member names, and GetCongressionalTrades for all members' transactions in one ticker.
| Argument | Type | Description |
|---|---|---|
| offset | integer | 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 | string | Optional stock ticker to combine with the member filter (e.g., AAPL) |
| endDate | string | End date in YYYY-MM-DD format (defaults to today) |
| startDate | string | Start date in YYYY-MM-DD format (defaults to 1 year ago) |
| maxResults | integer | Maximum number of trades to return (default: 50, max: 500, newest first) |
| memberName* | string | Congress member name, case-insensitive (e.g., 'Nancy Pelosi', 'Dan Crenshaw'); use SearchCongressMembers to find the exact name |
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, total published position value, conviction (filers holding it among their ten largest positions) or crowding (high-turnover and private-fund adviser shares as % of shares outstanding), both among stocks 10+ filers hold. Conviction and crowding read the newest closed quarter measured across every 13F book (an open or unmeasured quarter snaps to it, noted). Values use report-date closing prices, may fall back to filer values, and can be zero when unvalued. 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).
| Argument | Type | Description |
|---|---|---|
| sort | string | Sort by: 'filers' (default, # of 13F filers desc), 'filersDelta' (QoQ filer-count delta desc — warming names), 'filersDeltaAsc' (QoQ filer-count delta asc — cooling names), 'value' (current total published position value desc), 'conviction' (filers holding it among their ten largest positions desc) or 'crowding' (high-turnover and private-fund adviser shares as % of shares outstanding desc) |
| maxResults | integer | Maximum number of stocks to return (default: 25, clamped to 1-500) |
| reportDate | string | 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) |
Get the caller's saved portfolios, and those colleagues shared with the caller's organization, 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; a shared portfolio whose name is also taken is named "Name (Creator)" in the list. Quantities are signed; costs are the owner's per-share inputs and are never split-restated. Each position is in its listing's currency; totals are in the portfolio's currency at the official rates named in the answer. 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.
| Argument | Type | Description |
|---|---|---|
| portfolio | string | Optional. The portfolio's name, as listed. Omit to list the portfolios. |
{
"type": "object",
"properties": {
"portfolio": {
"type": "string",
"default": null,
"description": "Optional. The portfolio's name, as listed. Omit to list the portfolios."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Maximum number of source filings to read, newest first (default 6, valid 1-20; out-of-range values are clamped) |
| offset | integer | Number of approved source filings to skip before returning rows (default 0) |
| ticker* | string | Company ticker symbol (e.g., AAPL, MSFT) |
{
"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)"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| ticker* | string | Listed security ticker (e.g., AAPL, VOO, GME) |
| endDate | string | End date in YYYY-MM-DD format (defaults to latest available) |
| startDate | string | Start date in YYYY-MM-DD format (defaults to 6 months ago) |
| maxResults | integer | Maximum number of weeks to return — keeps the most recent N weeks in the range, displayed oldest to newest (default: 26, max: 500) |
{
"type": "object",
"required": [
"ticker"
],
"properties": {
"ticker": {
"type": "string",
"description": "Listed security ticker (e.g., AAPL, VOO, GME)"
},
"endDate": {
"type": "string",
"default": null,
"description": "End date in YYYY-MM-DD format (defaults to latest available)"
},
"startDate": {
"type": "string",
"default": null,
"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)"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| ticker* | string | Stock ticker symbol (e.g., AAPL, MSFT). Class shares use a dash (BRK-B); the dot form (BRK.B) is also accepted. A listing on another exchange is MIC:TICKER (XPAR:AIR). |
| endDate | string | End date in YYYY-MM-DD format (defaults to latest available) |
| startDate | string | Start date in YYYY-MM-DD format (defaults to 6 months ago) |
| maxResults | integer | Maximum number of records to return (default: 60, max: 500); the newest rows are kept and listed newest first. |
{
"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. A listing on another exchange is MIC:TICKER (XPAR:AIR)."
},
"endDate": {
"type": "string",
"default": null,
"description": "End date in YYYY-MM-DD format (defaults to latest available)"
},
"startDate": {
"type": "string",
"default": null,
"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."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| type | string | Contract type: call or put (default: both) |
| ticker* | string | Stock ticker, e.g. AAPL |
| maxStrike | number | null | Only include strikes at or below this price |
| minStrike | number | null | Only include strikes at or above this price |
| expiration | string | Expiration date in YYYY-MM-DD format (default: nearest upcoming) |
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.
| Argument | Type | Description |
|---|---|---|
| ticker* | string | Stock ticker, e.g. AAPL |
| contract* | string | OCC option symbol, e.g. O:AAPL260724C00110000 |
{
"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"
}
}
}List the available option expiration dates for a stock, with the contract count at each. Use this to pick an expiration for GetOptionChain.
| Argument | Type | Description |
|---|---|---|
| ticker* | string | Stock ticker, e.g. AAPL |
{
"type": "object",
"required": [
"ticker"
],
"properties": {
"ticker": {
"type": "string",
"description": "Stock ticker, e.g. AAPL"
}
}
}Get an organization no market we cover lists, such as the U.S. Government, a federal agency or an unlisted company: its kind, country, LEI, parent and parts, the listed companies whose 10-K reports name it or one of its parts with the verbatim sentence, and for a federal agency the listed companies it awarded the most contract value in the last 12 months. Names from 10-K reports require the Pro plan.
| Argument | Type | Description |
|---|---|---|
| maxResults | integer | Maximum companies listed per side (default: 50, max: 500). A company and the parts listed under it are kept together. |
| organization* | string | The organization's slug as GetSupplyChain prints it (e.g., us-government), or part of its name (e.g., Samsung). |
{
"type": "object",
"required": [
"organization"
],
"properties": {
"maxResults": {
"type": "integer",
"default": 50,
"description": "Maximum companies listed per side (default: 50, max: 500). A company and the parts listed under it are kept together."
},
"organization": {
"type": "string",
"description": "The organization's slug as GetSupplyChain prints it (e.g., us-government), or part of its name (e.g., Samsung)."
}
}
}Who holds a stock and how, measured across every 13F book of the newest closed quarter, beside the quarter before: conviction (filers holding it among their ten largest positions, its weight in their books), crowding (shares held by high-turnover filers and private-fund advisers as % of shares outstanding, with its percentile among stocks at least 10 filers hold), institutional ownership of the estimated free float, holder concentration (Herfindahl, largest ten holders), how long holders have held it, the holders' estimated average cost per share and the share of 13F value held at a loss, active holders' like-for-like change, top-scored managers' net buying, Schedule 13D and 13G filers on record, holder-overlap peers (operating companies whose active holders overlap most, one row per company, funds excluded), and the filers with the highest weight in it. Cost is an estimate from quarter average prices, never a filed figure.
| Argument | Type | Description |
|---|---|---|
| ticker* | string | Listed security ticker (e.g., NVDA) |
| maxPeers | integer | Holder-overlap peers to list (default 10, clamped to 0-20) |
| maxHolders | integer | Highest-conviction holders to list, by the stock's weight in their 13F book (default 10, clamped to 0-50) |
{
"type": "object",
"required": [
"ticker"
],
"properties": {
"ticker": {
"type": "string",
"description": "Listed security ticker (e.g., NVDA)"
},
"maxPeers": {
"type": "integer",
"default": 10,
"description": "Holder-overlap peers to list (default 10, clamped to 0-20)"
},
"maxHolders": {
"type": "integer",
"default": 10,
"description": "Highest-conviction holders to list, by the stock's weight in their 13F book (default 10, clamped to 0-50)"
}
}
}Get who owns a stock, as shares and % of shares outstanding: 13F institutions, insiders (Forms 3, 4, 5, single-class issuers only), 13D/13G blocks no 13F report already holds, and the remaining float, flagged rather than clipped when negative. Registered funds are shown but never summed, since their shares sit inside their advisers' 13F reports. Each holder counts once: insiders who file 13Fs, holders a 13F filer reports, and the filers and persons of any 13D or 13G that names a 13F filer, directly or through filings naming one another, are left out of the other lines, by CIK and SEC reporting links, never by name. A foreign private issuer's count is in ordinary shares, a different unit, so it gets no % or remainder. Also splits the 13F shares by holder type, style and location. view=ultimate adds the largest ultimate parents.
| Argument | Type | Description |
|---|---|---|
| view | string | default, or ultimate to add the largest ultimate parents |
| ticker* | string | Listed security ticker (e.g., NVDA, VOO) |
{
"type": "object",
"required": [
"ticker"
],
"properties": {
"view": {
"type": "string",
"default": "default",
"description": "default, or ultimate to add the largest ultimate parents"
},
"ticker": {
"type": "string",
"description": "Listed security ticker (e.g., NVDA, VOO)"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| type | string | Ratio type: Total, Equity, Index, Vix, Etp (default: Equity) |
| endDate | string | End date in YYYY-MM-DD format (defaults to latest available) |
| startDate | string | Start date in YYYY-MM-DD format (defaults to 3 months ago) |
| maxResults | integer | 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. |
{
"type": "object",
"properties": {
"type": {
"type": "string",
"default": "Equity",
"description": "Ratio type: Total, Equity, Index, Vix, Etp (default: Equity)"
},
"endDate": {
"type": "string",
"default": null,
"description": "End date in YYYY-MM-DD format (defaults to latest available)"
},
"startDate": {
"type": "string",
"default": null,
"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."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| ticker* | string | Stock ticker symbol (e.g., AAPL, MSFT); a listing on another exchange is MIC:TICKER (XPAR:AIR). |
| maxYears | integer | Most recent fiscal years to include (default 8, max 12) |
{
"type": "object",
"required": [
"ticker"
],
"properties": {
"ticker": {
"type": "string",
"description": "Stock ticker symbol (e.g., AAPL, MSFT); a listing on another exchange is MIC:TICKER (XPAR:AIR)."
},
"maxYears": {
"type": "integer",
"default": 8,
"description": "Most recent fiscal years to include (default 8, max 12)"
}
}
}Get a company's shareholder meeting vote results from its SEC 8-K Item 5.07 filings, latest meeting first: for each matter (each director nominee on its own row) the For, Against, Abstain, Withheld and broker non-vote counts as printed, the stated outcome and its quote, and the source filing. An 8-K/A replaces the 8-K only if it restates every matter; else both are shown. Only verified readings are shown; an empty answer says whether no vote filing is on file or one still awaits extraction.
| Argument | Type | Description |
|---|---|---|
| ticker* | string | Company ticker symbol (e.g., AAPL, PG). |
| meetings | integer | Number of meetings to return, newest first (default 1, max 10). |
{
"type": "object",
"required": [
"ticker"
],
"properties": {
"ticker": {
"type": "string",
"description": "Company ticker symbol (e.g., AAPL, PG)."
},
"meetings": {
"type": "integer",
"default": 1,
"description": "Number of meetings to return, newest first (default 1, max 10)."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| ticker* | string | Listed security ticker (e.g., AAPL, VOO, GME) |
| endDate | string | End date in YYYY-MM-DD format (defaults to latest available) |
| startDate | string | Start date in YYYY-MM-DD format (defaults to 1 year ago) |
| maxResults | integer | Maximum number of records to return — keeps the most recent N settlements in the range, displayed oldest to newest (default: 24, max: 500) |
{
"type": "object",
"required": [
"ticker"
],
"properties": {
"ticker": {
"type": "string",
"description": "Listed security ticker (e.g., AAPL, VOO, GME)"
},
"endDate": {
"type": "string",
"default": null,
"description": "End date in YYYY-MM-DD format (defaults to latest available)"
},
"startDate": {
"type": "string",
"default": null,
"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)"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| offset | integer | 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 | string | Sort key: daysToCover (default; FINRA-capped 999.99 sentinel rows ranked last), shortPosition, or change (largest increase in short position first) |
| maxResults | integer | Maximum number of results to return (default: 50, max: 500) |
| minDaysToCover | number | Minimum days to cover filter (default: 0) |
| minAvgDailyVolume | integer | 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) |
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.
| Argument | Type | Description |
|---|---|---|
| offset | integer | 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 | string | 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 | integer | Maximum number of stocks to return (default: 25, highest score first; clamped to 1-200). |
| minMarketCap | number | Minimum market capitalization in US dollars (e.g. 300000000 = $300M; default 0 = no floor). Stocks with an unknown market cap are excluded when set. |
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.
| Argument | Type | Description |
|---|---|---|
| ticker* | string | Listed security ticker (e.g., AAPL, VOO, GME) |
| endDate | string | End date in YYYY-MM-DD format (defaults to latest available) |
| startDate | string | Start date in YYYY-MM-DD format (defaults to 3 months ago) |
| maxResults | integer | Maximum number of records to return — keeps the most recent N trading days in the range, displayed oldest to newest (default: 90, max: 500) |
{
"type": "object",
"required": [
"ticker"
],
"properties": {
"ticker": {
"type": "string",
"description": "Listed security ticker (e.g., AAPL, VOO, GME)"
},
"endDate": {
"type": "string",
"default": null,
"description": "End date in YYYY-MM-DD format (defaults to latest available)"
},
"startDate": {
"type": "string",
"default": null,
"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)"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| ticker* | string | Stock ticker symbol (e.g., AAPL, MSFT). Class shares use a dash (BRK-B); the dot form (BRK.B) is also accepted. A listing on another exchange is MIC:TICKER (XPAR:AIR). |
| dPeriod | integer | Smoothing window for %D (default: 3) |
| endDate | string | End date in YYYY-MM-DD format (defaults to latest available) |
| kPeriod | integer | Lookback window for %K (default: 14) |
| startDate | string | Start date in YYYY-MM-DD format (defaults to 6 months ago) |
| maxResults | integer | Maximum number of records to return (default: 60, max: 500); the newest rows are kept and listed newest first. |
{
"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. A listing on another exchange is MIC:TICKER (XPAR:AIR)."
},
"dPeriod": {
"type": "integer",
"default": 3,
"description": "Smoothing window for %D (default: 3)"
},
"endDate": {
"type": "string",
"default": null,
"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": null,
"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."
}
}
}Get daily, weekly or monthly OHLCV (Open, High, Low, Close, Volume) price history for a stock. Useful for technical analysis, charting, and price trend analysis. Weekly (ISO week) and monthly bars roll up the daily rows: first open, highest high, lowest low, last close, summed volume, dated by their last session; a week or month the date range cuts is marked partial. A US listing is quoted in USD; a listing on another exchange (MIC:TICKER) is quoted in its own trading currency, which the output names. 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.
| Argument | Type | Description |
|---|---|---|
| ticker* | string | Stock ticker symbol (e.g., AAPL, MSFT, TSLA). Class shares use a dash (BRK-B); the dot form (BRK.B) is also accepted. A listing on another exchange is MIC:TICKER (XPAR:AIR, XLON:BP, XHKG:00005). |
| endDate | string | End date in YYYY-MM-DD format (defaults to latest available) |
| interval | string | Bar interval: daily (default), weekly or monthly. Use weekly or monthly with a wider startDate for long histories in one call. |
| startDate | string | Start date in YYYY-MM-DD format (defaults to 1 year ago) |
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.
No arguments.
{
"type": "object",
"properties": {}
}Get a company's supply chain: the customers, suppliers, competitors and partners named in annual 10-K reports, its own and those of other listed companies that name it, with any stated revenue or receivables share, a revenue share in dollars from the same filing, the verbatim sentence and the source filing. A share belongs to the filing that states it. Names the filings never state are not inferred, so a missing company is not evidence of no relationship. Requires the Pro plan.
| Argument | Type | Description |
|---|---|---|
| lens | string | Order within each side: 'stated' (largest stated share first, the default), 'dependsOn' (largest share of this company's revenue first: who it relies on) or 'dependents' (largest share of the other company's own revenue first: who relies on it). A share is stated by a filing or derived from a stated share in dollars. |
| side | string | Only one side: customers, suppliers, competitors or partners (default: all four). |
| ticker* | string | Stock ticker symbol (e.g., AAPL, QRVO), or MIC:TICKER (e.g., XBRU:BAR) for a listing outside the US. |
| maxResults | integer | Maximum companies listed per side (customers, suppliers, competitors, partners) (default: 50, max: 500). A company and the parts listed under it are kept together. |
| quantifiedOnly | boolean | Only companies with a stated revenue or receivables share (default: false). |
Get which of a company's suppliers and customers also supply or buy from its competitors, as 10-K filings name them: each one with the listed competitors it also serves, or, with vs, the company against one competitor (both, only the company, only the competitor). A competitor whose own 10-K is not read yet is marked, since other filings alone can miss what it uses. Requires the Pro plan.
| Argument | Type | Description |
|---|---|---|
| vs | string | One competitor to compare with, by the symbol GetSupplyChain lists for it (e.g., AMD); omit to check every listed competitor. |
| ticker* | string | Stock ticker symbol (e.g., NVDA), or MIC:TICKER (e.g., XPAR:SU) for a listing outside the US. |
| maxResults | integer | Maximum companies listed per side and group (default: 50, max: 500). |
{
"type": "object",
"required": [
"ticker"
],
"properties": {
"vs": {
"type": "string",
"default": null,
"description": "One competitor to compare with, by the symbol GetSupplyChain lists for it (e.g., AMD); omit to check every listed competitor."
},
"ticker": {
"type": "string",
"description": "Stock ticker symbol (e.g., NVDA), or MIC:TICKER (e.g., XPAR:SU) for a listing outside the US."
},
"maxResults": {
"type": "integer",
"default": 50,
"description": "Maximum companies listed per side and group (default: 50, max: 500)."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| endDate | string | End date in YYYY-MM-DD format (defaults to today) |
| startDate | string | Start date in YYYY-MM-DD format, filtering on the award action date (defaults to 1 year ago) |
| maxResults | integer | Maximum number of companies to return (default: 25, largest first) |
{
"type": "object",
"properties": {
"endDate": {
"type": "string",
"default": null,
"description": "End date in YYYY-MM-DD format (defaults to today)"
},
"startDate": {
"type": "string",
"default": null,
"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)"
}
}
}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. Each holder shows its entity type from regulatory records (Form ADV, SEC filer profile, 13D/13G, N-CEN), filtered by holderTypes, and its style band measured from its filed book, filtered by styles.
| Argument | Type | Description |
|---|---|---|
| offset | integer | Number of ranked holding rows to skip before returning results (default: 0) |
| styles | array | Style bands to keep, as an array of tokens: idx (index-like), sys (systematic-like), conc (concentrated), divact (diversified active), unk (book too small or unvalued to band), e.g. ["conc"]. Bands are measured from each holder's filed 13F book in the newest measured quarter on or before the report date; a holder not measured that quarter is left out by any style filter. Omit for all. |
| ticker* | string | Listed security ticker (e.g., AAPL, VOO) |
| maxResults | integer | Maximum number of holding rows to return (default: 20, clamped to 1-500) |
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 cannot become a full-position buy or sale; a filer that continues under one new CIK with a matching 13F book is compared through that successor, and one split across several new CIKs is left out; the output counts the filers and shares left out and names the largest. 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.
| Argument | Type | Description |
|---|---|---|
| ticker* | string | Listed security ticker (e.g., AAPL, VOO) |
| maxResults | integer | Maximum number of buyers and sellers to return per section (default: 10, clamped to 1-500) |
| reportDate | string | 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) |
{
"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": null,
"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)"
}
}
}Count how often a word or phrase comes up on a company's last earnings calls, oldest first: mentions per call, the rate per 10,000 words, the split between prepared remarks and Q&A where the call states its hand-off to questions, and one or two short quotes. Whole-word and case-insensitive, so "AI" never matches "said"; spellings that differ by a hyphen or a join count together ("copilot" also finds "co-pilot"), and the calls list which spelling they used. A call with no transcript text, or one in Chinese, Japanese or Korean, is flagged, never zero. Use it to follow a product, risk or initiative across quarters.
| Argument | Type | Description |
|---|---|---|
| calls | integer | Number of most recent earnings calls to read (default 8, max 12; values outside 1-12 are clamped) |
| phrase* | string | Word or phrase to count, 2-80 characters after trimming (e.g. "tariffs", "sovereign AI"). Matched as whole words, ignoring case. A space or hyphen between words matches any whitespace, a hyphen or no gap ("co-pilot" finds "co pilot" and "copilot"), and a hyphen may split a word between two letters ("copilot" finds "co-pilot"); numbers never join, so "2025" never counts "20-25". |
| ticker* | string | Company ticker symbol (e.g., AAPL, MSFT), or MIC:TICKER (e.g., XPAR:AIR) for a listing outside the US. |
{
"type": "object",
"required": [
"ticker",
"phrase"
],
"properties": {
"calls": {
"type": "integer",
"default": 8,
"description": "Number of most recent earnings calls to read (default 8, max 12; values outside 1-12 are clamped)"
},
"phrase": {
"type": "string",
"description": "Word or phrase to count, 2-80 characters after trimming (e.g. \"tariffs\", \"sovereign AI\"). Matched as whole words, ignoring case. A space or hyphen between words matches any whitespace, a hyphen or no gap (\"co-pilot\" finds \"co pilot\" and \"copilot\"), and a hyphen may split a word between two letters (\"copilot\" finds \"co-pilot\"); numbers never join, so \"2025\" never counts \"20-25\"."
},
"ticker": {
"type": "string",
"description": "Company ticker symbol (e.g., AAPL, MSFT), or MIC:TICKER (e.g., XPAR:AIR) for a listing outside the US."
}
}
}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. Also states the next earnings call when one is known beyond the listed events: a scheduled call, or an estimate projected from the company's past call dates and labelled as one. 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.
| Argument | Type | Description |
|---|---|---|
| ticker* | string | Company ticker symbol (e.g., NVDA, AAPL), or MIC:TICKER (e.g., XPAR:AIR) for a listing outside the US. |
| eventType | string | 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 | integer | Maximum number of events to return (default: 20, max: 500) |
{
"type": "object",
"required": [
"ticker"
],
"properties": {
"ticker": {
"type": "string",
"description": "Company ticker symbol (e.g., NVDA, AAPL), or MIC:TICKER (e.g., XPAR:AIR) for a listing outside the US."
},
"eventType": {
"type": "string",
"default": null,
"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)"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| ticker* | string | Stock ticker symbol (e.g., AAPL, MSFT). |
{
"type": "object",
"required": [
"ticker"
],
"properties": {
"ticker": {
"type": "string",
"description": "Stock ticker symbol (e.g., AAPL, MSFT)."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| ticker* | string | Stock ticker symbol (e.g., AAPL, MSFT). |
{
"type": "object",
"required": [
"ticker"
],
"properties": {
"ticker": {
"type": "string",
"description": "Stock ticker symbol (e.g., AAPL, MSFT)."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| endDate | string | End date in YYYY-MM-DD format (defaults to latest available) |
| startDate | string | Start date in YYYY-MM-DD format (defaults to 3 months ago) |
| maxResults | integer | 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. |
{
"type": "object",
"properties": {
"endDate": {
"type": "string",
"default": null,
"description": "End date in YYYY-MM-DD format (defaults to latest available)"
},
"startDate": {
"type": "string",
"default": null,
"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."
}
}
}Get the latest independently verified stored result for one of the caller's trackers, 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 tracker, tell the user to open the Equibles Portal and choose Dashboard → Trackers: https://www.equibles.com/trackers
| Argument | Type | Description |
|---|---|---|
| dataFeed* | string | The tracker name or full id shown by ListWebDataFeeds. |
| capturedAtOrBefore | string | Optional ISO-8601 timestamp. Returns the newest retained verified capture completed at or before this instant. Omit it for the latest result. |
{
"type": "object",
"required": [
"dataFeed"
],
"properties": {
"dataFeed": {
"type": "string",
"description": "The tracker name or full id shown by ListWebDataFeeds."
},
"capturedAtOrBefore": {
"type": "string",
"default": null,
"description": "Optional ISO-8601 timestamp. Returns the newest retained verified capture completed at or before this instant. Omit it for the latest result."
}
}
}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, EDGAR accession numbers and acceptance times (UTC; blank for filings stored before October 2026), and page totals. Supports date, document-type, and exact SEC item-number filters. Hidden document types remain excluded unless explicitly requested. When the deployment summarizes documents, each row adds a one- or two-sentence summary of what the document says. Pass a returned ID to SearchDocument or ReadDocumentLines.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number for pagination (default: 1) |
| ticker | string | Optional company ticker symbol (e.g., AAPL, MSFT); a listing outside the US is MIC:TICKER (e.g. XPAR:AIR), whose list includes its ESEF reports. Omit for all companies. |
| endDate | string | null | Optional end date filter in YYYY-MM-DD format |
| maxItems | integer | Maximum number of documents per page (default: 10) |
| startDate | string | null | Optional start date filter in YYYY-MM-DD format |
| itemNumber | string | Optional exact SEC current-report item number, e.g. 2.02, 5.02, or 1.01. |
List a company's investor events, newest first: earnings calls plus conferences, investor days and shareholder meetings. Each row gives the event id, type, UTC start, title, fiscal period (earnings calls only), status, and each material's status (available, pending, notPublished, failed, notAttempted, noCallHeld) for transcript, audio and slides. Read a conference by event id with GetInvestorEventTranscript; GetEarningsCallEvent is keyed by fiscal quarter.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Maximum number of events to return (default 25, max 100; values outside 1-100 are clamped) |
| offset | integer | Number of matching events to skip before returning rows (default 0) |
| ticker* | string | Company ticker symbol (e.g., AAPL, MSFT), or MIC:TICKER (e.g., XPAR:AIR) for a listing outside the US. |
| eventType | string | Optional event type to filter on: EarningsCall, CapitalMarketsDay, InvestorUpdate, AGM, Conference, FiresideChat, or MAndA (default: all types) |
| includeUncaptured | boolean | Also list events hidden because none of their materials could be captured and still on the company's own IR calendar (default false); their status reads Unavailable. |
{
"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), or MIC:TICKER (e.g., XPAR:AIR) for a listing outside the US."
},
"eventType": {
"type": "string",
"default": null,
"description": "Optional event type to filter on: EarningsCall, CapitalMarketsDay, InvestorUpdate, AGM, Conference, FiresideChat, or MAndA (default: all types)"
},
"includeUncaptured": {
"type": "boolean",
"default": false,
"description": "Also list events hidden because none of their materials could be captured and still on the company's own IR calendar (default false); their status reads Unavailable."
}
}
}List the caller's own trackers (recurring, verified website data collections), with schedule, state, visibility, 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 → Trackers: https://www.equibles.com/trackers
No arguments.
{
"type": "object",
"properties": {}
}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.
| Argument | Type | Description |
|---|---|---|
| endLine* | integer | 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* | integer | First line to read (1-based, inclusive) |
| documentId* | string | Document ID obtained from ListFilings |
{
"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"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| lotId* | string | The lot id shown by GetMyPortfolio, e.g. a1b2c3d4. |
| portfolio* | string | The portfolio holding the lot, by name. |
{
"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."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| expected | string | 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* | string | The Equibles tool that misbehaved, e.g. GetCompanyKpis. |
| arguments | string | 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* | string | 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* | string | Either 'ToolFailed' (error, timeout, or unexpectedly empty) or 'ImplausibleResult' (answered, but the data cannot be right). |
Screen listed stocks with optional min/max bounds for price, market cap, institutional ownership, 13F holder signals (conviction, crowding, private-fund adviser ownership, active holders' share change, holder tenure and price versus the holders' estimated cost), 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. US listings by default; pass market to screen European, Chinese or Hong Kong listings.
| Argument | Type | Description |
|---|---|---|
| page | integer | Result page (default 1) — combine with maxResults to walk past the first page of a large match set. |
| index | string | 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 | number | null | Maximum trailing-twelve-month price-to-earnings ratio (e.g. 15 for value screens). |
| minPe | number | null | Minimum trailing-twelve-month price-to-earnings ratio. |
| market | string | Listing markets as ISO country codes, comma-separated (e.g. GB,FR or CN,HK), or 'all' for every covered market. Default US. A non-US row's ticker is a qualified MIC:TICKER symbol (e.g. XPAR:AIR) that the portfolio tools and the price, financial, earnings-call, guidance, debt and estimate tools accept; its price and market cap are USD at the official exchange rate, with the traded close in its own currency beside the price. Non-US rows carry identity, price and market cap only. |
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.
| Argument | Type | Description |
|---|---|---|
| query | string | 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 | integer | Maximum number of results to return (default: 50, max: 500) |
{
"type": "object",
"properties": {
"query": {
"type": "string",
"default": null,
"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)"
}
}
}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, seat and current party (from the latest term); pass the returned exact Name to GetMemberTrades or GetMemberNetWorth.
| Argument | Type | Description |
|---|---|---|
| query* | string | Search query — partial or full name (e.g., 'Pelosi', 'Cruz', 'Dan') |
| position | string | Filter by position: Senator or Representative (defaults to both) |
| maxResults | integer | Maximum number of results to return (default: 20, max: 500) |
{
"type": "object",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"description": "Search query — partial or full name (e.g., 'Pelosi', 'Cruz', 'Dan')"
},
"position": {
"type": "string",
"default": null,
"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)"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| query* | string | 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* | string | Document ID obtained from ListFilings or a SearchDocuments result header |
| maxResults | integer | Maximum number of results to return (default: 5) |
| searchMode | string | How to match: 'semantic' (default — hybrid keyword and semantic relevance) or 'exact' (literal case-insensitive substring match with precise line numbers). |
| maxExcerptChars | integer | 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. |
Search SEC filings and earnings-call transcripts with hybrid keyword and semantic retrieval, or with match 'phrase' for only the excerpts containing an exact phrase. 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.
| Argument | Type | Description |
|---|---|---|
| match | string | How the query matches: 'ranked' (default — relevance-ranked keyword and semantic retrieval that broadens to any of the words when results are sparse) or 'phrase' (only excerpts containing the query's words consecutively and in order; case and punctuation are ignored). |
| query* | string | Search query — plain keywords or a short natural-language phrase. In ranked mode, 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. In phrase mode, the exact phrase to find. |
| ticker | string | Optional company ticker; a listing outside the US is MIC:TICKER (e.g. XPAR:AIR). Omit to search across all companies. |
| endDate | string | null | Optional end date filter in YYYY-MM-DD format |
| startDate | string | null | Optional start date filter in YYYY-MM-DD format |
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.
| Argument | Type | Description |
|---|---|---|
| query* | string | Search query — series ID, title keyword, or category name (e.g., 'inflation', 'unemployment', 'GDP', 'FEDFUNDS'). Empty lists all tracked series. |
| maxResults | integer | Maximum number of results to return (default: 20, max: 500) |
{
"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)"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| query* | string | Ticker, fund name, or sponsor (for example SPY, S&P 500, or iShares). |
| maxResults | integer | Maximum results to return (default 20, max 500). |
{
"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)."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| query* | string | Fund name, ticker, registrant, or verified share-class alias (e.g., 'Russell 2000', 'iShares', 'IWM', 'VOO'). |
| maxResults | integer | Maximum number of funds to return, largest by net assets first (default: 20, max: 500) |
{
"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)"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| query* | string | Search query for insider name |
| offset | integer | 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 | integer | Maximum number of results (default: 10, max: 500; values outside 1-500 are clamped) |
{
"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)"
}
}
}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 use report-date closing prices, may fall back to filer values, and can be zero when unvalued. Scoped institution tools remain strict and never discard an unmatched word. Each result shows its entity type from regulatory records, and holderTypes filters by it.
| Argument | Type | Description |
|---|---|---|
| query* | string | Search query — institution name, partial name, or CIK |
| maxResults | integer | Maximum number of results to return (default: 10, clamped to 1-500) |
| holderTypes | array | Holder types to keep, as an array of tokens: adv (registered investment adviser), era (exempt reporting adviser), ia (other adviser), bank, ins (insurer), bd (broker-dealer), fund (registered fund), plan (benefit plan), nonus (non-US institution), hc (parent holding company or control person with no other type on record), unk (no deciding record yet), e.g. ["bank", "ins"]. Types come from Form ADV, SEC filer profiles, 13D/13G and N-CEN, never from names. Omit for all. |
{
"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)"
},
"holderTypes": {
"type": "array",
"items": {
"type": "string"
},
"default": null,
"description": "Holder types to keep, as an array of tokens: adv (registered investment adviser), era (exempt reporting adviser), ia (other adviser), bank, ins (insurer), bd (broker-dealer), fund (registered fund), plan (benefit plan), nonus (non-US institution), hc (parent holding company or control person with no other type on record), unk (no deciding record yet), e.g. [\"bank\", \"ins\"]. Types come from Form ADV, SEC filer profiles, 13D/13G and N-CEN, never from names. Omit for all."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| query* | string | Part of the firm's legal or business name (e.g., "Vanguard", "Renaissance") |
| maxResults | integer | Maximum number of advisers to return (default: 20, clamped to 1-500) |
{
"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)"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| toolName* | string | The existing Equibles tool you actually called, e.g. GetCompanyKpis. |
| arguments | string | 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* | string | 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* | string | 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. |
{
"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": null,
"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."
}
}
}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 symbol shown for a stock (MIC:TICKER for another exchange, e.g. XPAR:AIR), or the OCC symbol in optionContract for an option.
| Argument | Type | Description |
|---|---|---|
| ticker | string | The watched stock's symbol as shown, e.g. AAPL or XPAR:AIR. Omit when removing an option by its OCC symbol. |
| portfolio* | string | The portfolio whose watchlist to remove from, by name. |
| optionContract | string | Optional. The watched option's OCC symbol, e.g. O:AAPL260724C00110000. |
{
"type": "object",
"required": [
"portfolio"
],
"properties": {
"ticker": {
"type": "string",
"default": null,
"description": "The watched stock's symbol as shown, e.g. AAPL or XPAR:AIR. 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": null,
"description": "Optional. The watched option's OCC symbol, e.g. O:AAPL260724C00110000."
}
}
}Correct a lot the USER already recorded: a mistyped quantity, price, trade date, note or exchange rate. 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.
| Argument | Type | Description |
|---|---|---|
| note | string | Optional. A replacement note, up to 256 characters. |
| lotId* | string | The lot id shown by GetMyPortfolio, e.g. a1b2c3d4. |
| fxRate | number | null | Optional. The broker's exchange rate on the trade, as units of the portfolio's currency per 1 unit of the lot's currency. |
| quantity | number | null | Optional. The corrected signed size. Negative is a short or written option. |
| portfolio* | string | The portfolio holding the lot, by name. |
| clearFxRate | boolean | Optional. True removes the broker's exchange rate, so the lot converts at the official rate on its trade date. Cannot be combined with fxRate. |
| costPerUnit | number | null | Optional. The corrected price per share, always positive. |
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, or MIC:TICKER for another exchange (e.g. XPAR:AIR). 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.
| Argument | Type | Description |
|---|---|---|
| ticker* | string | Stock ticker, or MIC:TICKER for a listing on another exchange, e.g. XPAR:AIR. For an option, the UNDERLYING U.S. ticker, e.g. AAPL. |
| portfolio* | string | The portfolio whose watchlist to add to, by name. |
| optionContract | string | Optional. The OCC option symbol, e.g. O:AAPL260724C00110000. Provide it to watch an option contract; omit it for the stock itself. |
{
"type": "object",
"required": [
"portfolio",
"ticker"
],
"properties": {
"ticker": {
"type": "string",
"description": "Stock ticker, or MIC:TICKER for a listing on another exchange, e.g. XPAR:AIR. For an option, the UNDERLYING U.S. ticker, e.g. AAPL."
},
"portfolio": {
"type": "string",
"description": "The portfolio whose watchlist to add to, by name."
},
"optionContract": {
"type": "string",
"default": null,
"description": "Optional. The OCC option symbol, e.g. O:AAPL260724C00110000. Provide it to watch an option contract; omit it for the stock itself."
}
}
}| Maximum number of rows (holders, or parents for view=ultimate) to return (default: 25, clamped to 1-500) |
| holderTypes | array | Holder types to keep, as an array of tokens: adv, era, ia, bank, ins, bd, fund, plan, nonus, hc, unk (insiders and holders without a deciding record read unk), e.g. ["bank"]. Types come from regulatory records, never names. Omit for all. |
{
"type": "object",
"required": [
"ticker"
],
"properties": {
"view": {
"type": "string",
"default": "default",
"description": "default (one row per holder, others nested), all (every row flat, stale included) or ultimate (summed holders grouped by ultimate parent, members listed beneath)"
},
"offset": {
"type": "integer",
"default": 0,
"description": "Number of ranked rows to skip before returning results (default: 0)"
},
"source": {
"type": "string",
"default": "all",
"description": "Source to list: all (default), 13f, 13dg (13D and 13G), 13d, 13g, insider, fund or nonus (non-US disclosures a deployment adds). A single source lists its rows flat, stale ones flagged."
},
"ticker": {
"type": "string",
"description": "Listed security ticker (e.g., NVDA, VOO)"
},
"maxResults": {
"type": "integer",
"default": 25,
"description": "Maximum number of rows (holders, or parents for view=ultimate) to return (default: 25, clamped to 1-500)"
},
"holderTypes": {
"type": "array",
"items": {
"type": "string"
},
"default": null,
"description": "Holder types to keep, as an array of tokens: adv, era, ia, bank, ins, bd, fund, plan, nonus, hc, unk (insiders and holders without a deciding record read unk), e.g. [\"bank\"]. Types come from regulatory records, never names. Omit for all."
}
}
}| snapshotId | string | null | Snapshot identifier from a previous response; omit for latest verified capture. |
| snapshotOffset | integer | Zero-based snapshot history offset; history is returned in pages of 10. |
{
"type": "object",
"required": [
"ticker"
],
"properties": {
"asOf": {
"type": "string",
"default": null,
"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": null,
"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": null,
"description": "Exact source forecast-period label; omit for all periods."
},
"ticker": {
"type": "string",
"description": "Stock ticker symbol (e.g., SAP), or MIC:TICKER (e.g., XETR:SAP) for a listing outside the US."
},
"dimensions": {
"type": "string",
"default": null,
"description": "Exact source dimension label; omit for all products and segments."
},
"snapshotId": {
"type": [
"string",
"null"
],
"format": "uuid",
"default": null,
"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."
}
}
}{
"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. A listing on another exchange is MIC:TICKER (XPAR:AIR)."
},
"endDate": {
"type": "string",
"default": null,
"description": "End date in YYYY-MM-DD format (defaults to latest available)"
},
"startDate": {
"type": "string",
"default": null,
"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."
}
}
}{
"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)."
}
}
}| documentOffset |
| integer |
| Zero-based document offset for paging. |
| evidenceOffset | integer | Zero-based character offset into the exact evidence for these history and covenant pages. |
| maxEvidenceCharacters | integer | 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. |
{
"type": "object",
"required": [
"ticker",
"instrumentId"
],
"properties": {
"ticker": {
"type": "string",
"description": "Stock ticker symbol (e.g., AAPL, MSFT), or MIC:TICKER (e.g., XPAR:AIR) for a listing outside the US."
},
"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."
}
}
}| maxEvidenceCharacters |
| integer |
| 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. |
{
"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), or MIC:TICKER (e.g., XPAR:AIR) for a listing outside the US."
},
"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."
}
}
}{
"type": "object",
"required": [
"ticker"
],
"properties": {
"action": {
"type": "string",
"default": null,
"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": null,
"description": "Optional newest filed date, YYYY-MM-DD."
},
"startDate": {
"type": "string",
"default": null,
"description": "Optional oldest filed date, YYYY-MM-DD."
},
"maxResults": {
"type": "integer",
"default": 25,
"description": "Maximum changes to return (default 25, cap 100)."
}
}
}| maxResults | integer | Maximum periods to return, newest first (default 40, max 200) |
| fiscalPeriod | string | 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 | boolean | When true, show the earliest canonical periodic filing instead of the latest restatement within that source priority. Default false. |
{
"type": "object",
"required": [
"ticker",
"concept"
],
"properties": {
"form": {
"type": "string",
"default": null,
"description": "Optional SEC form filter, e.g. '10-K' or '10-Q'"
},
"ticker": {
"type": "string",
"description": "Stock ticker symbol (e.g., AAPL, MSFT); a listing on another exchange is MIC:TICKER (XPAR:AIR)."
},
"toDate": {
"type": "string",
"default": null,
"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": null,
"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": null,
"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."
}
}
}{
"type": "object",
"required": [
"ticker"
],
"properties": {
"year": {
"type": [
"integer",
"null"
],
"default": null,
"description": "Fiscal year, e.g. 2023. Defaults to the year of the latest period with line items to show."
},
"period": {
"type": "string",
"default": null,
"description": "Fiscal period: 'FY' (annual) or 'Q1'..'Q4'. Defaults to the latest period with line items to show. 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); a listing on another exchange is MIC:TICKER (XPAR:AIR)."
},
"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."
}
}
}{
"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": null,
"description": "Optional latest filing date to include, ISO format yyyy-MM-dd (e.g., 2025-12-31)"
},
"fromDate": {
"type": "string",
"default": null,
"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)"
}
}
}{
"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": null,
"description": "Optional latest filing date to include, ISO format yyyy-MM-dd (e.g., 2024-12-31)"
},
"fromDate": {
"type": "string",
"default": null,
"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)"
}
}
}| maxResults |
| integer |
| Maximum number of awards to return (default: 50) |
{
"type": "object",
"required": [
"ticker"
],
"properties": {
"agency": {
"type": "string",
"default": null,
"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": null,
"description": "End date in YYYY-MM-DD format (defaults to today)"
},
"startDate": {
"type": "string",
"default": null,
"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)"
}
}
}| minSharePrice | number | Minimum share price in US dollars (e.g. 5 = $5; default 0 = no floor). Stocks with an unknown price are excluded when set. |
| clusterBuysOnly | boolean | Return only stocks flagged as cluster buys (three or more distinct insiders buying in the window). |
| minDollarVolume | number | 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. |
{
"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": null,
"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."
}
}
}| insiderName | string | Only include transactions by insiders whose SEC-filed name contains every word of this value, case-insensitive (e.g. 'Huang') (optional) |
| transactionType | string | Only include one transaction type: Buy, Sell, Award, Conversion, Exercise, TaxPayment, Expiration, Gift, Inheritance, Discretionary or Other (optional) |
{
"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": null,
"description": "Only include transactions on or before this date, format yyyy-MM-dd (optional)"
},
"fromDate": {
"type": "string",
"default": null,
"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": null,
"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": null,
"description": "Only include one transaction type: Buy, Sell, Award, Conversion, Exercise, TaxPayment, Expiration, Gift, Inheritance, Discretionary or Other (optional)"
}
}
}{
"type": "object",
"required": [
"institution"
],
"properties": {
"toDate": {
"type": "string",
"default": null,
"description": "Optional window end in YYYY-MM-DD format (defaults to today when only fromDate is given)"
},
"fromDate": {
"type": "string",
"default": null,
"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)"
}
}
}{
"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": null,
"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."
}
}
}| Minimum short volume filter (default: 0) |
| minTotalVolume | integer | Minimum total FINRA-reported volume filter, in shares (default: 0 = no floor) |
{
"type": "object",
"properties": {
"date": {
"type": "string",
"default": null,
"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)"
}
}
}| transactionType | string | Filter by transaction type: Purchase or Sale; the synonyms Buy/Sell are accepted (defaults to all) |
{
"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": null,
"description": "Optional stock ticker to combine with the member filter (e.g., AAPL)"
},
"endDate": {
"type": "string",
"default": null,
"description": "End date in YYYY-MM-DD format (defaults to today)"
},
"startDate": {
"type": "string",
"default": null,
"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": null,
"description": "Filter by transaction type: Purchase or Sale; the synonyms Buy/Sell are accepted (defaults to all)"
}
}
}{
"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), 'value' (current total published position value desc), 'conviction' (filers holding it among their ten largest positions desc) or 'crowding' (high-turnover and private-fund adviser shares as % of shares outstanding desc)"
},
"maxResults": {
"type": "integer",
"default": 25,
"description": "Maximum number of stocks to return (default: 25, clamped to 1-500)"
},
"reportDate": {
"type": "string",
"default": null,
"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)"
}
}
}| maxResults |
| integer |
| Maximum contracts to return (default: 60, max: 500) |
{
"type": "object",
"required": [
"ticker"
],
"properties": {
"type": {
"type": "string",
"default": null,
"description": "Contract type: call or put (default: both)"
},
"ticker": {
"type": "string",
"description": "Stock ticker, e.g. AAPL"
},
"maxStrike": {
"type": [
"number",
"null"
],
"default": null,
"description": "Only include strikes at or below this price"
},
"minStrike": {
"type": [
"number",
"null"
],
"default": null,
"description": "Only include strikes at or above this price"
},
"expiration": {
"type": "string",
"default": null,
"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)"
}
}
}{
"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)"
}
}
}| minDollarVolume |
| number |
| 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. |
{
"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": null,
"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."
}
}
}| maxResults |
| integer |
| 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. |
{
"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. A listing on another exchange is MIC:TICKER (XPAR:AIR, XLON:BP, XHKG:00005)."
},
"endDate": {
"type": "string",
"default": null,
"description": "End date in YYYY-MM-DD format (defaults to latest available)"
},
"interval": {
"type": "string",
"default": "daily",
"description": "Bar interval: daily (default), weekly or monthly. Use weekly or monthly with a wider startDate for long histories in one call."
},
"startDate": {
"type": "string",
"default": null,
"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."
}
}
}{
"type": "object",
"required": [
"ticker"
],
"properties": {
"lens": {
"type": "string",
"default": "stated",
"description": "Order within each side: 'stated' (largest stated share first, the default), 'dependsOn' (largest share of this company's revenue first: who it relies on) or 'dependents' (largest share of the other company's own revenue first: who relies on it). A share is stated by a filing or derived from a stated share in dollars."
},
"side": {
"type": "string",
"default": null,
"description": "Only one side: customers, suppliers, competitors or partners (default: all four)."
},
"ticker": {
"type": "string",
"description": "Stock ticker symbol (e.g., AAPL, QRVO), or MIC:TICKER (e.g., XBRU:BAR) for a listing outside the US."
},
"maxResults": {
"type": "integer",
"default": 50,
"description": "Maximum companies listed per side (customers, suppliers, competitors, partners) (default: 50, max: 500). A company and the parts listed under it are kept together."
},
"quantifiedOnly": {
"type": "boolean",
"default": false,
"description": "Only companies with a stated revenue or receivables share (default: false)."
}
}
}| reportDate |
| string |
| 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) |
| holderTypes | array | Holder types to keep, as an array of tokens: adv (registered investment adviser), era (exempt reporting adviser), ia (other adviser), bank, ins (insurer), bd (broker-dealer), fund (registered fund), plan (benefit plan), nonus (non-US institution), hc (parent holding company or control person with no other type on record), unk (no deciding record yet), e.g. ["bank", "ins"]. Types come from Form ADV, SEC filer profiles, 13D/13G and N-CEN, never from names. Omit for all. |
{
"type": "object",
"required": [
"ticker"
],
"properties": {
"offset": {
"type": "integer",
"default": 0,
"description": "Number of ranked holding rows to skip before returning results (default: 0)"
},
"styles": {
"type": "array",
"items": {
"type": "string"
},
"default": null,
"description": "Style bands to keep, as an array of tokens: idx (index-like), sys (systematic-like), conc (concentrated), divact (diversified active), unk (book too small or unvalued to band), e.g. [\"conc\"]. Bands are measured from each holder's filed 13F book in the newest measured quarter on or before the report date; a holder not measured that quarter is left out by any style filter. Omit for all."
},
"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": null,
"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)"
},
"holderTypes": {
"type": "array",
"items": {
"type": "string"
},
"default": null,
"description": "Holder types to keep, as an array of tokens: adv (registered investment adviser), era (exempt reporting adviser), ia (other adviser), bank, ins (insurer), bd (broker-dealer), fund (registered fund), plan (benefit plan), nonus (non-US institution), hc (parent holding company or control person with no other type on record), unk (no deciding record yet), e.g. [\"bank\", \"ins\"]. Types come from Form ADV, SEC filer profiles, 13D/13G and N-CEN, never from names. Omit for all."
}
}
}| documentType | string | Document type filter: a registered value such as 'TenK', 'TenQa', 'EightK', 'TwentyF', 'Def14A', 'Defa14A', 'SThree' or 'TenderOfferThirdParty', or its SEC form name ('10-K', '20-F/A', 'DEFA14A', 'S-3ASR', 'SC TO-T', 'NT 10-Q'), plus deployment-registered types such as EarningsCallTranscript. An unrecognized value returns an error listing every accepted value. |
{
"type": "object",
"properties": {
"page": {
"type": "integer",
"default": 1,
"description": "Page number for pagination (default: 1)"
},
"ticker": {
"type": "string",
"default": null,
"description": "Optional company ticker symbol (e.g., AAPL, MSFT); a listing outside the US is MIC:TICKER (e.g. XPAR:AIR), whose list includes its ESEF reports. Omit for all companies."
},
"endDate": {
"type": [
"string",
"null"
],
"format": "date-time",
"default": null,
"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": null,
"description": "Optional start date filter in YYYY-MM-DD format"
},
"itemNumber": {
"type": "string",
"default": null,
"description": "Optional exact SEC current-report item number, e.g. 2.02, 5.02, or 1.01."
},
"documentType": {
"type": "string",
"default": null,
"description": "Document type filter: a registered value such as 'TenK', 'TenQa', 'EightK', 'TwentyF', 'Def14A', 'Defa14A', 'SThree' or 'TenderOfferThirdParty', or its SEC form name ('10-K', '20-F/A', 'DEFA14A', 'S-3ASR', 'SC TO-T', 'NT 10-Q'), plus deployment-registered types such as EarningsCallTranscript. An unrecognized value returns an error listing every accepted value."
}
}
}{
"type": "object",
"required": [
"problemKind",
"toolName",
"observation"
],
"properties": {
"expected": {
"type": "string",
"default": null,
"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": null,
"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)."
}
}
}| sector | string | Exact sector name (e.g. Technology, Healthcare). An unknown name returns the accepted list. |
| sortBy | string | Sort key: marketcap, ticker, name, price, filers, filerdelta, sipct, dtc, squeeze, sentiment, insiderbuy, pe, divyield, revgrowth, grossmargin, dollarvol, netincome, instown, conv, crowd, pfown, actlfl, tenure or costgap. Default marketcap. An unknown key is rejected, never silently ignored. |
| tickers | array | 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 | string | Exact industry name (e.g. Semiconductors). Prefer sector for broad groups. |
| maxPrice | number | null | Maximum share price in dollars. |
| minPrice | number | null | Minimum share price in dollars. |
| maxResults | integer | Maximum rows to return (default 50; clamped to 1-200). |
| maxCrowding | number | null | Maximum crowding in percent of shares outstanding. |
| minCrowding | number | null | Minimum crowding: shares held by high-turnover 13F filers and private-fund advisers, in percent of shares outstanding. |
| maxMarketCap | number | null | Maximum market capitalization in dollars. |
| maxNetIncome | number | null | Maximum trailing-twelve-month net income in dollars. |
| minMarketCap | number | null | Minimum market capitalization in dollars. |
| minNetIncome | number | null | Minimum trailing-twelve-month net income in dollars (0 keeps profitable companies only). |
| maxFilerCount | integer | null | Maximum number of 13F institutional filers holding the stock. |
| maxFilerDelta | integer | null | Maximum quarter-over-quarter change in filer count. |
| minFilerCount | integer | null | Minimum number of 13F institutional filers holding the stock. |
| minFilerDelta | integer | null | Minimum quarter-over-quarter change in filer count. |
| sortAscending | boolean | Sort ascending instead of descending. |
| maxDaysToCover | number | null | Maximum days to cover. |
| maxGrossMargin | number | null | Maximum gross margin in percent (0-100). |
| minDaysToCover | number | null | Minimum days to cover. |
| minGrossMargin | number | null | Minimum gross margin in percent (0-100). |
| maxDollarVolume | number | null | Maximum trailing-3-month average daily dollar volume in dollars. |
| maxHolderTenure | number | null | Maximum value-weighted holder tenure in quarters. |
| maxSqueezeScore | number | null | Maximum composite short-squeeze score (0-100, peer-relative). |
| minDollarVolume | number | null | Minimum trailing-3-month average daily dollar volume in dollars (e.g. 5000000 = $5M/day). |
| minHolderTenure | number | null | Minimum value-weighted holder tenure in quarters (how long 13F filers have held the stock). |
| minSqueezeScore | number | null | Minimum composite short-squeeze score (0-100, peer-relative; higher = more squeeze-prone). |
| maxDividendYield | number | null | Maximum trailing dividend yield in percent. |
| maxNetInsiderBuy | number | null | Maximum net open-market insider buying by officers and directors in dollars over the trailing 90 days. |
| maxRevenueGrowth | number | null | Maximum revenue growth in percent, latest quarter vs the same quarter a year earlier. |
| minDividendYield | number | null | Minimum trailing dividend yield in percent (e.g. 3 = 3%). |
| minNetInsiderBuy | number | null | Minimum net open-market insider buying by officers and directors in dollars over the trailing 90 days. |
| minRevenueGrowth | number | null | Minimum revenue growth in percent, latest quarter vs the same quarter a year earlier. |
| maxConvictionShare | number | null | Maximum conviction share in percent. |
| minConvictionShare | number | null | Minimum conviction share: percent of the stock's 13F filers holding it among their ten largest positions. |
| maxEstimatedCostGap | number | null | Maximum quarter-end price versus the holders' estimated average cost, in percent. |
| maxInsiderSentiment | number | null | Maximum composite insider-sentiment score (0-100, peer-relative). |
| minEstimatedCostGap | number | null | Minimum quarter-end price versus the 13F holders' ESTIMATED average cost, in percent (negative = holders sit on an estimated loss). |
| minInsiderSentiment | number | null | Minimum composite insider-sentiment score (0-100, peer-relative; higher = more aggressive insider accumulation). |
| hasGoingConcernDoubt | boolean | null | True keeps only companies whose latest filing states unalleviated going-concern doubt; false keeps only companies without the flag. |
| maxActiveHolderChange | number | null | Maximum like-for-like share change of actively managed 13F holders, in percent. |
| minActiveHolderChange | number | null | Minimum like-for-like share change of actively managed 13F holders over the quarter, in percent (positive = adding). |
| maxPrivateFundOwnership | number | null | Maximum private-fund adviser ownership in percent of shares outstanding. |
| maxShortInterestPercent | number | null | Maximum short interest as a percent of shares outstanding (0-100). |
| minPrivateFundOwnership | number | null | Minimum ownership by 13F filers that advise private funds (Form ADV), in percent of shares outstanding. |
| minShortInterestPercent | number | null | Minimum short interest as a percent of shares outstanding (0-100). |
| maxInstitutionalOwnership | number | null | Maximum institutional ownership in percent. |
| minInstitutionalOwnership | number | null | Minimum institutional ownership: 13F shares held over shares outstanding, in percent (overlapping filings can exceed 100). |
{
"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": null,
"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": null,
"description": "Maximum trailing-twelve-month price-to-earnings ratio (e.g. 15 for value screens)."
},
"minPe": {
"type": [
"number",
"null"
],
"default": null,
"description": "Minimum trailing-twelve-month price-to-earnings ratio."
},
"market": {
"type": "string",
"default": null,
"description": "Listing markets as ISO country codes, comma-separated (e.g. GB,FR or CN,HK), or 'all' for every covered market. Default US. A non-US row's ticker is a qualified MIC:TICKER symbol (e.g. XPAR:AIR) that the portfolio tools and the price, financial, earnings-call, guidance, debt and estimate tools accept; its price and market cap are USD at the official exchange rate, with the traded close in its own currency beside the price. Non-US rows carry identity, price and market cap only."
},
"sector": {
"type": "string",
"default": null,
"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, netincome, instown, conv, crowd, pfown, actlfl, tenure or costgap. Default marketcap. An unknown key is rejected, never silently ignored."
},
"tickers": {
"type": "array",
"items": {
"type": "string"
},
"default": null,
"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": null,
"description": "Exact industry name (e.g. Semiconductors). Prefer sector for broad groups."
},
"maxPrice": {
"type": [
"number",
"null"
],
"default": null,
"description": "Maximum share price in dollars."
},
"minPrice": {
"type": [
"number",
"null"
],
"default": null,
"description": "Minimum share price in dollars."
},
"maxResults": {
"type": "integer",
"default": 50,
"description": "Maximum rows to return (default 50; clamped to 1-200)."
},
"maxCrowding": {
"type": [
"number",
"null"
],
"default": null,
"description": "Maximum crowding in percent of shares outstanding."
},
"minCrowding": {
"type": [
"number",
"null"
],
"default": null,
"description": "Minimum crowding: shares held by high-turnover 13F filers and private-fund advisers, in percent of shares outstanding."
},
"maxMarketCap": {
"type": [
"number",
"null"
],
"default": null,
"description": "Maximum market capitalization in dollars."
},
"maxNetIncome": {
"type": [
"number",
"null"
],
"default": null,
"description": "Maximum trailing-twelve-month net income in dollars."
},
"minMarketCap": {
"type": [
"number",
"null"
],
"default": null,
"description": "Minimum market capitalization in dollars."
},
"minNetIncome": {
"type": [
"number",
"null"
],
"default": null,
"description": "Minimum trailing-twelve-month net income in dollars (0 keeps profitable companies only)."
},
"maxFilerCount": {
"type": [
"integer",
"null"
],
"default": null,
"description": "Maximum number of 13F institutional filers holding the stock."
},
"maxFilerDelta": {
"type": [
"integer",
"null"
],
"default": null,
"description": "Maximum quarter-over-quarter change in filer count."
},
"minFilerCount": {
"type": [
"integer",
"null"
],
"default": null,
"description": "Minimum number of 13F institutional filers holding the stock."
},
"minFilerDelta": {
"type": [
"integer",
"null"
],
"default": null,
"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": null,
"description": "Maximum days to cover."
},
"maxGrossMargin": {
"type": [
"number",
"null"
],
"default": null,
"description": "Maximum gross margin in percent (0-100)."
},
"minDaysToCover": {
"type": [
"number",
"null"
],
"default": null,
"description": "Minimum days to cover."
},
"minGrossMargin": {
"type": [
"number",
"null"
],
"default": null,
"description": "Minimum gross margin in percent (0-100)."
},
"maxDollarVolume": {
"type": [
"number",
"null"
],
"default": null,
"description": "Maximum trailing-3-month average daily dollar volume in dollars."
},
"maxHolderTenure": {
"type": [
"number",
"null"
],
"default": null,
"description": "Maximum value-weighted holder tenure in quarters."
},
"maxSqueezeScore": {
"type": [
"number",
"null"
],
"default": null,
"description": "Maximum composite short-squeeze score (0-100, peer-relative)."
},
"minDollarVolume": {
"type": [
"number",
"null"
],
"default": null,
"description": "Minimum trailing-3-month average daily dollar volume in dollars (e.g. 5000000 = $5M/day)."
},
"minHolderTenure": {
"type": [
"number",
"null"
],
"default": null,
"description": "Minimum value-weighted holder tenure in quarters (how long 13F filers have held the stock)."
},
"minSqueezeScore": {
"type": [
"number",
"null"
],
"default": null,
"description": "Minimum composite short-squeeze score (0-100, peer-relative; higher = more squeeze-prone)."
},
"maxDividendYield": {
"type": [
"number",
"null"
],
"default": null,
"description": "Maximum trailing dividend yield in percent."
},
"maxNetInsiderBuy": {
"type": [
"number",
"null"
],
"default": null,
"description": "Maximum net open-market insider buying by officers and directors in dollars over the trailing 90 days."
},
"maxRevenueGrowth": {
"type": [
"number",
"null"
],
"default": null,
"description": "Maximum revenue growth in percent, latest quarter vs the same quarter a year earlier."
},
"minDividendYield": {
"type": [
"number",
"null"
],
"default": null,
"description": "Minimum trailing dividend yield in percent (e.g. 3 = 3%)."
},
"minNetInsiderBuy": {
"type": [
"number",
"null"
],
"default": null,
"description": "Minimum net open-market insider buying by officers and directors in dollars over the trailing 90 days."
},
"minRevenueGrowth": {
"type": [
"number",
"null"
],
"default": null,
"description": "Minimum revenue growth in percent, latest quarter vs the same quarter a year earlier."
},
"maxConvictionShare": {
"type": [
"number",
"null"
],
"default": null,
"description": "Maximum conviction share in percent."
},
"minConvictionShare": {
"type": [
"number",
"null"
],
"default": null,
"description": "Minimum conviction share: percent of the stock's 13F filers holding it among their ten largest positions."
},
"maxEstimatedCostGap": {
"type": [
"number",
"null"
],
"default": null,
"description": "Maximum quarter-end price versus the holders' estimated average cost, in percent."
},
"maxInsiderSentiment": {
"type": [
"number",
"null"
],
"default": null,
"description": "Maximum composite insider-sentiment score (0-100, peer-relative)."
},
"minEstimatedCostGap": {
"type": [
"number",
"null"
],
"default": null,
"description": "Minimum quarter-end price versus the 13F holders' ESTIMATED average cost, in percent (negative = holders sit on an estimated loss)."
},
"minInsiderSentiment": {
"type": [
"number",
"null"
],
"default": null,
"description": "Minimum composite insider-sentiment score (0-100, peer-relative; higher = more aggressive insider accumulation)."
},
"hasGoingConcernDoubt": {
"type": [
"boolean",
"null"
],
"default": null,
"description": "True keeps only companies whose latest filing states unalleviated going-concern doubt; false keeps only companies without the flag."
},
"maxActiveHolderChange": {
"type": [
"number",
"null"
],
"default": null,
"description": "Maximum like-for-like share change of actively managed 13F holders, in percent."
},
"minActiveHolderChange": {
"type": [
"number",
"null"
],
"default": null,
"description": "Minimum like-for-like share change of actively managed 13F holders over the quarter, in percent (positive = adding)."
},
"maxPrivateFundOwnership": {
"type": [
"number",
"null"
],
"default": null,
"description": "Maximum private-fund adviser ownership in percent of shares outstanding."
},
"maxShortInterestPercent": {
"type": [
"number",
"null"
],
"default": null,
"description": "Maximum short interest as a percent of shares outstanding (0-100)."
},
"minPrivateFundOwnership": {
"type": [
"number",
"null"
],
"default": null,
"description": "Minimum ownership by 13F filers that advise private funds (Form ADV), in percent of shares outstanding."
},
"minShortInterestPercent": {
"type": [
"number",
"null"
],
"default": null,
"description": "Minimum short interest as a percent of shares outstanding (0-100)."
},
"maxInstitutionalOwnership": {
"type": [
"number",
"null"
],
"default": null,
"description": "Maximum institutional ownership in percent."
},
"minInstitutionalOwnership": {
"type": [
"number",
"null"
],
"default": null,
"description": "Minimum institutional ownership: 13F shares held over shares outstanding, in percent (overlapping filings can exceed 100)."
}
}
}{
"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."
}
}
}| maxResults | integer | Maximum number of results to return (default: 5, max: 500) |
| documentTypes | array | Optional document types. Accepts registered values such as TenK, TenQ, EightK, TwentyF, SixK, FortyF, Def14A, SOne, or deployment-registered types such as EarningsCallTranscript. SEC form names such as 10-K, DEFA14A, S-3, SC TO-T or NT 10-K are also accepted; an invalid value returns the full accepted list. |
| excludeTickers | array | Optional tickers to exclude from a market-wide search (max 25). Cannot be combined with ticker. |
| maxExcerptChars | integer | 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 | integer | 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. |
{
"type": "object",
"required": [
"query"
],
"properties": {
"match": {
"type": "string",
"default": "ranked",
"description": "How the query matches: 'ranked' (default — relevance-ranked keyword and semantic retrieval that broadens to any of the words when results are sparse) or 'phrase' (only excerpts containing the query's words consecutively and in order; case and punctuation are ignored)."
},
"query": {
"type": "string",
"description": "Search query — plain keywords or a short natural-language phrase. In ranked mode, 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. In phrase mode, the exact phrase to find."
},
"ticker": {
"type": "string",
"default": null,
"description": "Optional company ticker; a listing outside the US is MIC:TICKER (e.g. XPAR:AIR). Omit to search across all companies."
},
"endDate": {
"type": [
"string",
"null"
],
"format": "date-time",
"default": null,
"description": "Optional end date filter in YYYY-MM-DD format"
},
"startDate": {
"type": [
"string",
"null"
],
"format": "date-time",
"default": null,
"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": null,
"description": "Optional document types. Accepts registered values such as TenK, TenQ, EightK, TwentyF, SixK, FortyF, Def14A, SOne, or deployment-registered types such as EarningsCallTranscript. SEC form names such as 10-K, DEFA14A, S-3, SC TO-T or NT 10-K are also accepted; an invalid value returns the full accepted list."
},
"excludeTickers": {
"type": "array",
"items": {
"type": "string"
},
"default": null,
"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."
}
}
}| acquiredDate | string | Optional. The corrected trade date, as yyyy-MM-dd. |
{
"type": "object",
"required": [
"portfolio",
"lotId"
],
"properties": {
"note": {
"type": "string",
"default": null,
"description": "Optional. A replacement note, up to 256 characters."
},
"lotId": {
"type": "string",
"description": "The lot id shown by GetMyPortfolio, e.g. a1b2c3d4."
},
"fxRate": {
"type": [
"number",
"null"
],
"default": null,
"description": "Optional. The broker's exchange rate on the trade, as units of the portfolio's currency per 1 unit of the lot's currency."
},
"quantity": {
"type": [
"number",
"null"
],
"default": null,
"description": "Optional. The corrected signed size. Negative is a short or written option."
},
"portfolio": {
"type": "string",
"description": "The portfolio holding the lot, by name."
},
"clearFxRate": {
"type": "boolean",
"default": false,
"description": "Optional. True removes the broker's exchange rate, so the lot converts at the official rate on its trade date. Cannot be combined with fxRate."
},
"costPerUnit": {
"type": [
"number",
"null"
],
"default": null,
"description": "Optional. The corrected price per share, always positive."
},
"acquiredDate": {
"type": "string",
"default": null,
"description": "Optional. The corrected trade date, as yyyy-MM-dd."
}
}
}