MCP Tools Reference

Complete reference for all 22 Metric Duck MCP tools available via the remote server at mcp.metricduck.com

Contract version 0.9.0 — auto-derived from mcp-worker/tool-contract.json

browse_company

Entity-axis orientation map for one company. Returns identity, filing inventory by form type, signal availability inline, indexed range, and ranked drill-down pointers — all in one call, so you can see which axis (signal, source, metric) to descend. Accepts a ticker, name, or CIK, so it resolves the entity too; search_companies is the resolver for picking between candidates.

Accepts ticker, company name, or 10-digit CIK. For delisted companies, prefer the CIK.

Parameters:

query[string]required

Company name, ticker, or 10-digit zero-padded CIK. Free-text fuzzy match.

include_delisted[boolean]optionaldefault: false

Include delisted companies among FUZZY (ticker-prefix / name) candidates. Default false — an exact ticker, former ticker or CIK always resolves regardless, and for a delisted company the CIK is the safest key.

Backend:

GET /api/v1/companies/search + /data-availability + /signal-summary

Example prompts:

"What signals fire for US Steel?" or "Tell me about NVDA"

search_companies

Find companies matching a name, ticker, or keyword.

Parameters:

query[string]required

Company name or ticker (partial matches and typos OK). Foreign 20-F/40-F filers: use the company name, not a local symbol.

limit[integer]optionaldefault: 5range: 1–20

Max results to return.

Backend:

GET /api/v1/companies/search

Example prompts:

"Find semiconductor companies" or "Search for NVDA"

get_company_overview

Everything about a company in one call: profile, profitability (ROE, ROIC, margins), balance-sheet strength, cash-flow quality, valuation multiples, capital allocation, 8-quarter trends, and latest filing-intelligence highlights.

Parameters:

ticker[string]required

Company ticker symbol (e.g., AAPL).

depth[string]optionaldefault: core

How much detail to include. snapshot = thinnest, core = default, full = every section.

enum:
snapshotcorefull

Backend:

GET /api/v1/companies/{ticker}/overview-page

Example prompts:

"Tell me about Apple" or "Give me a full overview of COST"

get_stock_price

Daily end-of-day stock prices (open/high/low, close, split- & dividend-adjusted adj_close, volume) for ~8,400 US exchange-listed companies. Rows exist only for trading days — the data is the trading calendar. When the window spans 2+ days it also reports the first/last close and the period return on both close and adj_close. Sourced from a market-data feed, not SEC filings.

Markets trade only on business days: start_date returns the price on/after that date; end_date returns the price on/before it; omit both for the latest price.

Parameters:

ticker[string]required

Company ticker symbol (e.g., AAPL). US exchange-listed, 1–5 letters.

start_date[string]optional

Window start (YYYY-MM-DD). First row is this date or the next open day (price on/after). Omit end_date for just the on/after price.

end_date[string]optional

Window end (YYYY-MM-DD). Last row is this date or the prior open day (price on/before).

limit[integer]optionaldefault: 30range: 1–2000

Max rows, newest first when the window is longer. Default 30. For a point-to-point return over a long span, make two narrow-window calls rather than one wide one — cheaper, and the cap cannot drop your start date.

Backend:

GET /api/v1/market/daily/{ticker}

Example prompts:

"AAPL close on 2025-07-28" or "DKNG total return Jan 2025 → Feb 2026"

get_financials

Multi-period financial statement data: income statement, balance sheet, cash flow. Quarterly or annual, up to 10 years.

Parameters:

ticker[string]required

Company ticker symbol (e.g., MSFT).

period[string]optionaldefault: quarterly

Reporting period.

enum:
quarterlyannual
years[integer]optionaldefault: 2range: 1–10

Number of years of history.

statements[array]optionaldefault: [income, balance, cashflow]

Which statements to include. Pass any subset.

enum:
incomebalancecashflow
vantage_date[string]optional

As-of date (YYYY-MM-DD): restrict to filings published on or before it, and cite the filing current then. Bounds which filings are VISIBLE, not what the numbers were — a later restatement is served at its restated value, with an explicit look-ahead warning. Omit for the latest.

Backend:

GET /api/v1/companies/{ticker}/income-statementGET /api/v1/companies/{ticker}/balance-sheetGET /api/v1/companies/{ticker}/cash-flow

Example prompts:

"Show me MSFT revenue trend last 5 years" or "AAPL quarterly cash flow"

compare_companies

Benchmark a company against its sector peers across 70+ metrics with sector percentile rankings, 8-quarter trends, and relative strengths/weaknesses.

Parameters:

ticker[string]required

Company ticker symbol to benchmark.

custom_peers[string]optional

Comma-separated tickers to use instead of sector defaults.

peer_mode[string]optionaldefault: sector

How peers are selected. sector = SIC peers, tags = thematic-tag peers.

enum:
sectortags
metrics[string]optional

Comma-separated metric_ids to show instead of the curated default table (e.g. 'ev_ebitda,roa,interest_coverage'). A near-miss such as 'operating_margin' is read as 'oper_margin' and said so; any other unknown id is named with its closest ids.

Backend:

GET /api/v1/peers/{ticker}

Example prompts:

"How does MSFT compare to its peers?" or "Compare Google to its sector"

screen_companies

Filter companies by financial metrics. Define metric thresholds with operators (gt/lt/between/...) and rank results by any metric.

Parameters:

filters[array]required

Array of metric filters. Each filter: { metric_id, operator, value | min_value | max_value, period_type? }.

each: { metric_id, operator, value, min_value, max_value, period_type }

sort_by[string]optional

Metric to sort results by.

sectors[array]optional

Optional sector codes to restrict the universe.

required_tags[array]optional

Classification tags every result must carry (e.g. 'ai_ml_infrastructure', 'subscription_recurring'). Drawn from a fixed vocabulary covering business model, sector and technology; an unrecognised tag matches nothing.

excluded_tags[array]optional

Exclude companies with these thematic tags.

limit[integer]optionaldefault: 20range: 1–50

Max results (default 20, max 50); a lower limit keeps a large screen under the ~20K response cap.

Backend:

POST /api/v1/screener/screen

Example prompts:

"Find high-ROIC tech stocks" or "Screen for companies with FCF yield > 8%"

list_filings

Browse SEC filings for a company with section-level inventory — available sections, word counts, chunk counts, and table counts per filing. Use this to discover what's available before reading specific sections.

Parameters:

ticker[string]optional

Company ticker symbol.

cik[string]optional

10-digit SEC CIK, as an alternative to ticker. Use it for delisted or acquired companies whose ticker no longer resolves. Either ticker or cik is required.

form_type[string]optional

Form type: 10-K annual, 10-Q quarterly, 8-K current reports, DEF 14A proxy; 20-F/40-F annual and 6-K interim for foreign private issuers. Other forms (424B2, FWP, 13F-HR, 4): search_sec_filings(query, company, form_type, sections=false) links the filing on EDGAR (company: the 10-digit CIK; date_from for older filings).

enum:
10-K10-Q8-KDEF 14A20-F40-F
+1 more
6-K
form_subtype[string]optional

8-K subtype derived from section inventory (earnings, event, transcript, other).

enum:
8-K-earnings8-K-event8-K-transcript8-K-other
years[integer]optionaldefault: 2range: 1–7

Years of filing history (default 2, max 7). Ignored when fiscal_year is set.

fiscal_year[integer]optional

A specific fiscal year, resolved through the XBRL period index — correct for non-calendar fiscal years (a 10-K filed Feb 2024 is FY2023). Alone it lists that year's 10-K and its 10-Qs; pair it with fiscal_period to pin one. Overrides years. History from 2013.

fiscal_period[string]optional

FY = annual (10-K / 20-F / 40-F); Q1–Q3 = the quarterly 10-Q. The fourth quarter is reported inside the annual 10-K, so Q4 is treated as FY. Pair with fiscal_year to pin a single filing.

enum:
Q1Q2Q3Q4FY
vantage_date[string]optional

As-of date (YYYY-MM-DD): list only filings filed on or before it. For vantages older than the years window, widen years. Omit for the most recent.

include_delisted[boolean]optionaldefault: false

Opt in to a delisted company's history. Default false returns a structured 'delisted' error (HTTP 410) naming the delisting date; querying by cik bypasses the gate. Applies to 10-K / 10-Q / DEF 14A.

Backend:

GET /api/v1/filings/sections/summary

Example prompts:

"What filings does Apple have?" or "Show me Tesla's 10-K filings"

get_filing_section

Read specific sections from SEC filings with pagination. Supports 70 section types for 10-K/10-Q (risk_factors, mda_results_operations, footnote_debt, …) and earnings sections for 8-K filings.

Provide either ticker or cik (CIK is required for delisted companies).

Parameters:

ticker[string]optional

Company ticker symbol.

cik[string]optional

10-digit SEC CIK (zero-padded). Use instead of ticker for delisted companies.

include_delisted[boolean]optional

Allow lookups against delisted companies.

section_id[string]optional

Section identifier (e.g., risk_factors, mda_results_operations).

accession_number[string]optional

Specific filing accession number (default: latest).

form_type[string]optional

Form type filter — picks the latest filing of that type when accession_number is omitted. 20-F/40-F/6-K cover foreign private issuers. Other forms (424B2, FWP, 13F-HR, 4): search_sec_filings(query, company, form_type, sections=false) links the filing on EDGAR (company: the 10-digit CIK; date_from for older filings).

enum:
10-K10-Q8-KDEF 14A20-F40-F
+1 more
6-K
fiscal_year[integer]optional

Fiscal year to look up, resolved through the XBRL period index — correct for non-calendar fiscal years (a 10-K filed Feb 2024 covers FY2023, not FY2024). Pair with fiscal_period for a quarter, or omit it for the annual 10-K. Ignored when accession_number is given, and DEF 14A / other non-XBRL forms are not period-indexed.

fiscal_period[string]optional

Q1/Q2/Q3 for that quarter's 10-Q, or FY for the annual 10-K (the default). Resolved through the XBRL DEI period index, so non-calendar fiscal years land correctly. Q4 is reported in the annual 10-K and is treated as FY. Ignored when accession_number is given.

enum:
Q1Q2Q3Q4FY
vantage_date[string]optional

As-of date (YYYY-MM-DD): serve the latest filing filed on or before it. Ignored when accession_number is given. Omit for the latest.

offset[integer]optionaldefault: 0≥ 0

Chunk pagination start.

char_offset[integer]optionaldefault: 0≥ 0

Within-chunk character offset (default 0). A chunk longer than max_chars serves a window and returns a char_offset cursor — pass it back with the same offset to read deeper.

max_chunks[integer]optionaldefault: 10range: 1–10

Chunks per page.

query[string]optional

Optional keyword to bias chunk selection.

include_companions[boolean]optionaldefault: false

For Pattern 4 cross-filing 8-Ks (anchor + same-day companion). Expands companion section text inline.

companion_accessions[array]optional

Companion accession list to expand. If omitted with include_companions=true, falls back to same-day discovery.

max_chars[integer]optionaldefault: 20000range: 2000–60000

Response character cap. Larger = more content, more tokens.

preview_chars[integer]optionaldefault: 120range: 0–200

Outline-mode preview length per section (default 120, about 25 words). Ignored when section_id is given.

Backend:

GET /api/v1/filings/text

Example prompts:

"Show me Apple's risk factors" or "Read Tesla's MD&A section"

get_xbrl_facts

Search raw XBRL facts by human-readable label, with dimensional breakdowns (segment, geography, product). Machine-readable SEC data that complements get_financials with granular detail.

Parameters:

ticker[string]required

Company ticker symbol.

search[string]required

Search by human-readable label. Comma-separated for OR (e.g., "revenue,product").

accession_number[string]optional

Specific filing accession number from list_filings (which takes a vantage date); default: the latest filing as of today.

form_type[string]optionaldefault: 10-K

Filing type when auto-resolving; ignored if accession_number is given. Default 10-K. For foreign private issuers the backend resolves the right family (20-F/40-F annual, 6-K interim), so the default serves them too.

enum:
10-K10-Q20-F40-F6-K
fiscal_year[integer]optional

Filter to a specific fiscal year.

fiscal_period[string]optional

Pin the exact period (Q1-Q4/FY) when resolving by fiscal_year. Without it, fiscal_year resolves to that year's LATEST filing — wrong for 'as of <quarter>' questions. Ignored if accession_number or period_history is set.

enum:
Q1Q2Q3Q4FY
limit[integer]optionaldefault: 50range: 1–200

Max facts to return.

period_history[boolean]optionaldefault: false

Return the concept's full as-filed series across filings — every period: quarter, 6-month YTD, 9-month YTD, FY — instead of one filing's facts. Use it to de-cumulate a YTD cash-flow or income line into a standalone quarter.

Backend:

GET /api/v1/companies/{ticker}/raw-facts

Example prompts:

"AAPL revenue by segment" or "UNH medical cost ratio"

get_filing_index

Compact signal map of a single filing — what's interesting and where. Use this first to triage, then drill in with get_filing_section for the narrative content behind a signal.

Parameters:

ticker[string]required

Company ticker symbol.

lens[string]optional

Optional lens to bias the signal map (earnings_quality, debt_stress, risk_trajectory, competitive_position, management_outlook).

enum:
earnings_qualitydebt_stressrisk_trajectorycompetitive_positionmanagement_outlook
vantage_date[string]optional

As-of date (YYYY-MM-DD): map the latest filing filed on or before it, for point-in-time analysis. Omit for the latest filing.

Backend:

GET /api/v1/companies/{ticker}/filing-index-bundle

Example prompts:

"What's in Apple's latest 10-K?" or "Risk-trajectory lens for Tesla's 10-Q"

screen_filing_signals

Cross-company screening by qualitative signals — tone shifts, earnings beats/misses, guidance moves, new risks, IR events — across SEC filings, 8-K earnings releases, transcripts, and IR press releases. Verifiable signals (not LLM scores).

Parameters:

signals[array]required

One or more signal ids to match, exactly as listed in this tool's description — only those are screenable. Omit ticker to screen the whole universe, which is the common case; pass ticker only to check a single company.

enum:
tone_cautiouscustomer_concentration_highcovenant_riskdebt_maturity_neardividend_coverage_weaksbc_unhedged
+22 more
has_fuel_sensitivityearnings_revenue_grewearnings_revenue_declinedearnings_margin_expandedearnings_margin_contractedearnings_guidance_raised_8kearnings_guidance_lowered_8kearnings_has_special_itemsearnings_accrual_concerningearnings_has_capital_returntranscript_has_guidancetranscript_has_prepared_remarkstranscript_has_analyst_questionstranscript_guidance_raisedtranscript_guidance_loweredtranscript_has_revenue_decompositionstranscript_qa_concerns_retainedtranscript_qa_forward_committedmda_has_scale_claimsir_partnershipdef14a_peer_groupdef14a_ceo_pay_ratio
ticker[string]optional

Optional single-ticker filter for per-company inventory.

sectors[array]optional

Sector codes (TECH, HEALTH, FIN, RE, CONS_DISC, CONS_STAPLES, IND, MAT, ENERGY, UTIL, TRANSPORT, COMM, OTHER).

recency_days[integer]optionaldefault: 90range: 1–365

Only include filings from the last N days.

limit[integer]optionaldefault: 20range: 1–50

Max results.

match_mode[string]optionaldefault: all

all = every signal must fire on the same row; any = any signal qualifies.

enum:
allany
order_by[string]optionaldefault: recency

recency = newest first; market_cap = largest companies first (recency tiebreaker).

enum:
recencymarket_cap
since_date[string]optional

Inclusive lower bound on filing/event date (YYYY-MM-DD); with until_date, a range for historical windows or cross-period signal change.

until_date[string]optional

Inclusive upper bound on filing/event date (YYYY-MM-DD).

agreement_type_filter[string]optional

Discriminator for ir_partnership signals — e.g. 'm_and_a_announcement' for fresh M&A, 'partnership_strategic' for alliances. Ignored for other signals.

enum:
partnership_strategicpartnership_supplypartnership_jvpartnership_amendmentwarrant_issuancem_and_a_announcement
+4 more
m_and_a_amendmentm_and_a_terminationm_and_a_closeother

Backend:

POST /api/v1/filing-intelligence/screen

Example prompts:

"Which tech companies have cautious management?" or "Who beat earnings this quarter?"

search_sec_filings

Full-text search of SEC filings since 2001 (not just MetricDuck-tracked tickers); the window defaults to the last year unless date_from is set. Returns aggregated company / form-type / industry stats plus per-result section enrichment for 10-K and 10-Q hits.

Parameters:

query[string]optional

EDGAR full-text query. All terms are required by default; supports exact phrases, OR, NOT, NEAR(n) proximity and trailing wildcards. Use formal terms as written in filings, not abbreviations.

ticker_lookup[string]optional

Retired — returns a redirect naming what to use instead. It never filtered, and it was ignored outright whenever query was also set.

form_type[string]optional

SEC form type filter — 10-K, 10-Q, 8-K, DEF 14A, S-1 and so on. Comma-separated for several ('10-K,10-Q'). Omit to search every type. 13D/13G are filed as 'SCHEDULE 13D' / 'SCHEDULE 13G' since December 2024 and as 'SC 13D' / 'SC 13G' before: pass both for a window that spans it. Forms 3/4/5: a ticker in company finds almost none of a company's filings; use the 10-digit CIK (exact), not a name (partial match).

company[string]optional

Restrict to one company. Accepts a ticker, a 10-digit CIK (exact, preferred), or a company name (partial match — may pull in unrelated companies).

date_from[string]optional

Start date (YYYY-MM-DD; default 1 year ago). For a historical event, set it before the event.

date_to[string]optional

End date (YYYY-MM-DD).

limit[integer]optionaldefault: 10range: 1–100

Max results (default 10, max 100), deduplicated by filing and sorted most recent first. Section-level enrichment applies to the first 5.

sections[boolean]optionaldefault: true

Whether to add section-level matches (which section and chunk hold the term) to the first 5 hits, for drill-in with get_filing_section.

rank_by[string]optionaldefault: date

'date' (default) puts the most recent filings first — best for time-sensitive questions. 'relevance' uses EDGAR's own score, better for thematic discovery where the most concentrated mentions matter more than recency. The Company Exposure Map is frequency-ranked either way.

enum:
daterelevance

Backend:

GET https://efts.sec.gov/LATEST/search-index

Example prompts:

"Which companies discuss AI agents in 10-Ks?" or "Find proxy fights in 2025"

get_earnings

8-K earnings-RELEASE headline financials (revenue, net income, operating income, diluted EPS) — the figures management reports on release day, typically weeks before the audited 10-Q/10-K. Each figure carries a per-figure deep-link + verbatim quote into the source exhibit when the API has an attested receipt.

Distinct from get_financials (audited XBRL, filed later) — this is the earliest-available, as-reported release figure. A figure without a receipt is still shown; absence of a receipt is not evidence the value is wrong.

Parameters:

ticker[string]required

Company ticker symbol (e.g., NVDA). Must be exact.

quarters[integer]optionaldefault: 4range: 1–8

Number of most recent quarters to return (1-8, default 4).

vantage_date[string]optional

As-of date (YYYY-MM-DD): serve releases known on or before it, walking quarters back from the vantage rather than from today. Bounds which RELEASES are visible, not which extraction of them. Omit for the latest.

Backend:

GET /api/v1/earnings/{ticker}/history

Example prompts:

"What did NVDA report for its latest quarter's revenue?" or "TSLA's last 8 quarters of earnings releases"

get_guidance_vs_actual

Cross-feed temporal join: stitches together transcript guidance items, the SEC filing for the period, and the actual results 8-K for the same fiscal_period. Answers 'did they hit guidance?' for a single ticker and quarter.

Parameters:

ticker[string]required

Company ticker symbol.

fiscal_period[string]optional

Optional period filter (e.g., Q2-2025). Omit for latest.

Backend:

GET /api/v1/companies/{ticker}/guidance-vs-actual

Example prompts:

"Did NVDA hit Q1 guidance?" or "Show DOW guide vs actual for FY24"

compare_earnings_calls

Cross-quarter trajectory view of earnings-call signals for one ticker — guidance deltas, strategic priorities, Q&A aggregates (deflection rate, concerns retained, forward commitments), macro and competitive stance, capital-allocation posture, scenario sensitivities. Aligns calls by event date for multi-quarter pattern detection.

Parameters:

ticker[string]required

Company ticker symbol.

n_quarters[integer]optionaldefault: 4range: 2–8

How many recent earnings calls to compare.

dimensions[array]optional

Restrict to specific trajectory axes; each is a per-quarter series, and omitting this returns all. Axes cover guidance (with delta vs prior), Q&A aggregates and deflection rate, ranked priorities, macro stance, competitive mentions, quantified scale claims and segment revenue decompositions.

enum:
guidancehedgesqaprioritiesmacrocompetitive
+7 more
scale_claimsrevdecompkpicapital_allocationscenariosforward_commitscustomer_cohort
vantage_date[string]optional

As-of date (YYYY-MM-DD): compare only calls reported on or before it, with the window anchored there rather than at today. Omit for the most recent.

Backend:

GET /api/v1/companies/{ticker}/transcript-trajectory

Example prompts:

"How has NVDA's guidance discipline trended?" or "AT&T tone over last 4 calls"

get_metric_history

Time series for a single metric across recent fiscal periods. Each row carries fiscal_year + fiscal_period for authoritative 'Q2 FY2025' lookups, plus filing accession for citation.

Parameters:

ticker[string]required

Company ticker symbol.

metric_id[string]required

Exact metric id, lowercase with underscores — e.g. gross_margin, roic, ev_ebitda, fcf_yield, revenues, net_income, dividends_per_share. Also covers non-XBRL operating KPIs (net_interest_margin, return_on_average_assets, …), quarterly and annual.

period_type[string]optionaldefault: Q

Period granularity: Q (quarterly), FY (annual), TTM (trailing).

enum:
QFYTTM
window[integer]optionaldefault: 20range: 1–40

How many periods to return.

vantage_date[string]optional

As-of date (YYYY-MM-DD): restrict the series to periods whose ORIGINAL filing was published on or before it. Bounds period existence and the citation, not the value — a restated period is served restated, with a look-ahead warning. Omit for the latest.

Backend:

GET /api/v1/companies/{ticker}/metrics/history

Example prompts:

"AAPL gross margin trend" or "MSFT FCF history annual"

get_metric_lineage

The derivation of one COMPUTED metric — its human-readable formula plus immediate inputs (each value + source), one level at a time. The audit / verify affordance for derived figures (margins, ratios, ROIC, FCF): use it to show HOW a metric is computed or WHICH definition was used, not to fetch the value.

Drillable: a derived input points to its own lineage (call again with that symbol); a base input is an as-filed XBRL fact.

Parameters:

ticker[string]required

Company ticker symbol. Must be exact.

metric[string]required

Metric id of a COMPUTED metric (e.g., net_margin, roic, fcf, ev_ebitda).

period_type[string]optionaldefault: Q

Period granularity: Q (quarterly), FY (annual), TTM (trailing).

enum:
QFYTTM
fiscal_year[integer]optional

Pin the fiscal year (e.g., 2025). Omit for the latest period.

fiscal_period[string]optional

Pin the fiscal period (Q1–Q4, FY). Omit for the latest.

enum:
Q1Q2Q3Q4FY
segment[string]optional

Reporting segment id. Omit for the consolidated figure.

Backend:

GET /api/v1/companies/{ticker}/metrics/lineage

Example prompts:

"How is AAPL's net_margin calculated?" or "Audit MSFT ROIC for FY2024"

get_ir_documents

IR earnings-PRESENTATION-DECK text — forward guidance, operational KPIs, and segment outlook that live ONLY in a company's investor-relations slide deck, not in the SEC 8-K/10-Q release text or XBRL. The channel to reach for when get_metric_history / get_filing_section / get_xbrl_facts come up empty on a guidance or KPI question.

Pass a query to land on the exact slide page; omit it for a bounded prefix of the latest deck. Resolve by ticker or cik.

Parameters:

ticker[string]optional

Company ticker symbol (e.g., OXY). Required unless cik is provided.

cik[string]optional

10-digit SEC CIK as an alternative to ticker.

fiscal_year[integer]optionalrange: 2000–2100

Fiscal year of the deck (e.g., 2024).

fiscal_period[string]optional

Fiscal period: 'Q3' (with fiscal_year) or combined '2024Q3'. Omit for the latest deck(s).

query[string]optional

Keyword filter over slide text — returns only pages matching every word; cites the exact page.

mode[string]optional

'full' (default) returns slide text for the matched deck(s); 'list' returns a cheap inventory of the company's served IR documents with no slide text. query is ignored in list mode.

enum:
fulllist

Backend:

GET /api/v1/ir-documents

Example prompts:

"OXY Q3 2024 production guidance" or "NCLH berth-capacity outlook"

get_company_events

A company's IR event CALENDAR — upcoming and past investor-relations events (earnings calls, annual/shareholder meetings, broker conferences, investor days) with the materials attached to each (deck, webcast, press release, transcript). The when/what-is-attached surface — distinct from get_ir_documents (a document's content) and compare_earnings_calls (what management said).

Returns upcoming (soonest-first) + past events with material chips; a chip's material_id is the get_ir_documents doc_id. Coverage is honest — a not-yet-harvested company says so.

Parameters:

ticker[string]required

Company ticker symbol (e.g., AAPL). Required.

Backend:

GET /api/v1/companies/{ticker}/events

Example prompts:

"When does AAPL next report?" or "What IR events did NVDA have this year?"

get_earnings_reports

Per-fiscal-period earnings DOCUMENT INDEX — one row per quarter/year gathering the documents for that reporting period: the 8-K press release, the earnings-call transcript (with prepared-remarks / Q&A deep-links), the 10-Q/10-K, the IR presentation deck(s), and the webcast event. Each artifact is present or honestly absent — the “what can I pull for this quarter, and how do I reach it” map.

A NAVIGATION index, not figures — for the release NUMBERS use get_earnings, for audited statements get_financials, for the IR event CALENDAR get_company_events, for a deck's slide TEXT get_ir_documents, for what management SAID on the call compare_earnings_calls.

Parameters:

ticker[string]required

Company ticker symbol (e.g., MRK). Required.

limit[integer]optionalrange: 1–40

Most-recent fiscal periods to return, newest first (1-40, default 12).

Backend:

GET /api/v1/companies/{ticker}/earnings-reports

Example prompts:

"What documents does MRK have for its last earnings?" or "Give me AMD's earnings decks and transcripts by quarter"

list_recent_filings

Universe-wide feed of extracted filings by SEC filing date since a floor. A small share are extracted days or weeks after their filing date, so look back up to a month and dedupe by accession. Single call regardless of portfolio size — the right primitive for event-driven workflows and daily portfolio checks.

Parameters:

since[string]required

Filing date floor (inclusive), on the SEC filing date. YYYY-MM-DD. Look back up to a month and dedupe by accession: some filings are extracted days or weeks late.

form_types[array]optional

Optional SEC form type filter (e.g., ['8-K', '10-Q']).

form_subtypes[array]optional

8-K subtype filter computed from section inventory. Implies 8-K only.

enum:
8-K-earnings8-K-transcript8-K-event8-K-other
tickers[array]optional

Optional portfolio filter (up to 50 tickers).

ticker[string]optional

Single-ticker alias of `tickers` — this is the only tool whose filter is plural, so the singular form is accepted too. Supply both and they are unioned (cap 50).

limit[integer]optionaldefault: 50range: 1–100

Max results, sorted by filing date DESC.

Backend:

GET /api/v1/filings/recent

Example prompts:

"What 8-Ks landed today?" or "New filings for my watchlist since Monday"

Best Practices

  • Start with get_company_overview for a comprehensive snapshot before drilling into specifics
  • Use get_filing_index first to triage what's interesting in a filing — then get_filing_section to read the narrative
  • Use get_financials for raw numbers in DCFs; get_metric_history for a single metric across periods
  • Combine screen_companies with compare_companies for a complete screening workflow
  • Use screen_filing_signals for cross-company qualitative screening (tone, beats, guidance, IR events)
  • Use list_recent_filings as the watermark feed for event-driven workflows and daily portfolio checks
  • Use get_xbrl_facts for industry-specific metrics or dimensional breakdowns (segment, geography)
  • The AI picks the right tool automatically — just ask your question naturally