Skip to main content
Glama

Search one company's filed reports (US SEC filers and companies listed in Germany, the UK, France, Switzerland, India, Japan and South Korea)

search_company_filings
Read-only

This is FactIQ's central tool for company filings. It searches structured facts and report metadata from one company's filed reports, for every company in the filings store: US SEC filers (10-K, 10-Q, 8-K, plus 20-F, 40-F, 6-K for foreign filers, and the IPO registration statements S-1 and F-1 with the final prospectus, 424B4 or 424B1) and companies listed in Germany, the UK, France and Switzerland (annual, half-year, Q1, and Q3 reports; for example company="BAS" for BASF SE from German issuer reports in EUR, company="ULVR" for Unilever plc from the FCA National Storage Mechanism, company="MC.PA" for LVMH from the AMF via info-financiere.gouv.fr, and company="NESN" for Nestlé from the reports on the company's own website; UK values are in the issuer's reporting currency, GBP, USD or EUR, French values in EUR, and Swiss values in the issuer's reporting currency, CHF, USD or EUR). A UK, French or Swiss company whose symbol is also a US ticker is stored with its exchange suffix (.L London, .PA Paris, .SW Zurich); the bare symbol goes to the SEC filer, so company="MC" is Moelis & Company and company="MC.PA" is LVMH. It also covers the Nifty 50 companies listed in India, from the quarterly financial results they file with the National Stock Exchange (Q1 to Q4; the Q4 results also carry the audited full-year figures; values in INR; for example company="RELIANCE" for Reliance Industries). It also covers large companies listed in Japan, from the securities reports they file on EDINET, and in South Korea, from the business reports they file on DART (annual, half-year, Q1, and Q3 reports; values in JPY or KRW as filed; for example company="7203.T" for Toyota Motor and company="005930.KS" for Samsung Electronics). The search is deterministic and does not call a language model. Every successful response is a tree and does not expose database row IDs. Set format="json" for the structured tree field. Set format="pretty" for only a human-readable rendered_tree text. The two formats are never returned together. JSON filing and fact nodes retain source_url and add a standardized source_link object for the original filing/report; the pretty rendering ends with a "Source documents" list mapping each cited filing to its URL. When using a returned figure, place its source URL beside the claim as a Markdown link, for example: FY2025 revenue was $40.0B (Visa Inc. FY2025 10-K). A sources line that names the filing without linking its URL is not sufficient. Do not make a second call solely to find a citation or substitute a related press release. source_precision="document" means the URL opens the source document, not an exact passage.

Use an exact ticker when possible. A company name is accepted only when it identifies one issuer. A share-class sibling ticker resolves to the same SEC filer (for example GOOGL resolves to the stored GOOG). If a ticker has several exact matches, possible_matches lists every tied company and its identifiers. When nothing matches, possible_matches lists the closest stored companies. When a bare ticker resolves to one company and other companies are stored under that ticker plus an exchange suffix (MC resolves to Moelis & Company; MC.PA is LVMH), the result is still the bare-ticker company and possible_matches lists the suffixed companies.

concept selects one registered financial concept and returns it over time. For example, concept="revenue" selects the best revenue concept stored for that company. The response states the selected concept. Use query instead for a broad search across several concepts.

search_target controls the tree content. coverage shows available report types and dates. filings shows report records and source URLs. metrics shows available concepts, dimensions, units, and period coverage. facts shows reported numeric values. An empty facts browse is filing-first. A facts search with query or concept is concept-first so that values across reporting periods stay together. For a US-listed company that went public recently, statement facts for the periods before its first periodic report come from the financial statement pages of its IPO registration statement, and single quarters also come from the quarterly results table that many prospectuses print in their MD&A (report_type="quarterly" returns them); a figure that a later report states for the same period replaces it. metric_class="offering_terms" returns the offering price, shares offered and proceeds printed in the registration statement.

commentary and risk_changes return qualitative statements extracted from SEC filings when each filing was processed; every statement carries a verbatim quote from the filing. commentary returns management's explanatory statements from MD&A sections and earnings press releases: growth drivers, demand and pricing commentary, capacity and execution milestones, strategy changes, and vaguely quantified statements such as "grew mid-teens" with a numeric range attached. risk_changes returns year-over-year changes in the stated risk factors of annual reports (Item 1A or Item 3.D): new, modified, and removed risks, with the changed passage quoted. A period with no risk_changes rows means the risk factors were unchanged from the prior year only when the result's annual_report_years lists that year as compared; other years were never compared. A year also listed in compared_with_prospectus was compared with the IPO prospectus, so no rows means unchanged from the prospectus. It never means that the company reported no risks. commentary also returns the MD&A statements of a company's final IPO prospectus; set report_type="424B4" (or "424B1") to read only those. Both targets cover US SEC filers only; commentary and risk_changes remain SEC-only and return no rows for German, UK, French, Swiss, Indian, Japanese, or Korean issuer reports.

query searches concept names, source labels, source codes, XBRL concepts, aliases, definitions, and segment names. For commentary and risk_changes it searches topics, statements, and quotes. Filters are applied before search. report_type accepts a common report type (annual, quarterly, half_year) or a source form such as 10-K or 10-Q. For German, UK, and French filers, quarterly covers the Q1, half-year, and Q3 reports; their source forms are the document codes of the source (FCA ACS, FR, IR; AMF AMF-RFA, AMF-RFS, AMF-IT, AMF-URD, AMF-RES). An Indian company files no separate annual report: its Q4 results hold the audited full-year statements. For Indian filers, quarterly covers the Q1, Q2, and Q3 results plus the fourth-quarter values of the Q4 results; annual covers the Q4 results; the source forms are "Financial Results" and "Integrated Filing (Financials)". fiscal_period="FY" returns the full-year values of the Q4 results. For Japanese and Korean filers, quarterly covers the Q1, half-year, and Q3 reports. Japan ended the quarterly securities report for quarters that start on or after 1 April 2024, so later Japanese periods have no Q1 or Q3 report. The Korean source forms are the DART report codes 11011 (annual), 11012 (half-year), 11013 (Q1), and 11014 (Q3). fiscal_year and fiscal_period accept company reporting labels such as 2026 and Q3. Earnings 8-Ks take their quarter from the 10-Q or 10-K whose period ended within the 80 days before the 8-K, and keep the 8-K filing date as the reported date. A freshly announced 8-K whose periodic filing has not arrived yet carries a quarter estimated from the company's fiscal calendar, replaced by the exact period when the filing lands. If neither is available, the tool omits the fiscal label instead of guessing.

Some companies file the same concept twice for one period and segment — for example a gross segment total next to a net-of-eliminations figure. Both are served: the extra line is its own series node whose name ends in "(reported line 2)", and its evidence_note says so. The two lines are alternative statements of the same item. Never add a "reported line 2" series to its ordinary counterpart — that double-counts.

A fact's value is served as stored, and the tool never changes its sign. Figures read from the report pages of companies in Germany, the UK, France, Switzerland, and India carry the sign the page prints, so a figure printed in brackets is negative. A few older rows from these markets were stored with another sign, and their evidence_note says so. SEC XBRL, Japanese, and Korean figures, and other figures taken from XBRL tags, carry the sign of the XBRL tag, which can differ from the page: Apple's 2024 cash flow statement prints its share buybacks as (94,949) million, and the stored value is a positive 94,949,000,000. Where FactIQ has stored what the sign stands for, the fact carries sign_meaning, a short text such as "Total expenses shown in brackets in the income statement.", and sign_meaning_kind, one of money_paid_out (cash that left the company in the period, for example "Tax paid"), money_received (cash that came into the company in the period, for example "Proceeds from sale of shares"), expense (a cost or loss that lowers profit), income (revenue, a gain, or a profit item that raises profit), liability (a balance the company owes at a date), asset (a balance the company owns or is owed at a date), deduction (an amount taken off another line to reach a subtotal, for example treasury shares in equity), increase (the balance of the item in the label went up in the period; it never means "adds to cash" or "adds to profit"), decrease (the balance of the item in the label went down in the period), net_amount (the result of pluses and minuses, for example profit or loss, an operating margin, or net cash flow), change_in_balance (a movement line in a table that rolls a balance from the start to the end of the period, for example additions or disposals), as_reported (the sign has no meaning beyond the printed number, for example total equity or a share count), or other (none of the 12 fits; the sign_meaning text says what the sign means). Read the value's sign together with them before adding or subtracting figures. A fact without them has no stored meaning; SEC XBRL and Japanese figures carry none, and most Korean figures carry them. The pretty rendering prints the meaning after the value.

When a company states one per-share figure with two values, both are served as is, and the series name ends with the reason: "on the share count before/after the 2-for-1 share split of 2025-04-01" for earnings per share counted before or after a share split, or "as stated in an earlier report" / "as restated in a later report" when a later report changed the value.

A figure whose value a later, amended or restated report changed carries revision_note, for example "revised: 1,942 in the report of 2026-02-10, now 1,950 (restated, report of 2026-05-04)", or "revised 2 times; last: ..." when the value changed more than once. The note also appears when a still later report repeated the revised value. The pretty rendering prints it after the value.

For non-admin callers, active_only is always enforced by the tool endpoint. With active_only enabled, every target is limited to facts currently marked active and serving; coverage and filings omit reports with no such facts.

If an exact-ticker metrics or facts request has no matching serving data, the tool falls back to Twelve Data standardized consolidated statements. A resolved issuer listed in Germany, the UK, France, Switzerland, India, Japan, or South Korea is sent to the vendor with its exchange suffix (.DE, .L, .PA, .SW, .NS, .T, .KS, .KQ) appended to a bare stored ticker; a stored ticker that already carries the suffix (MC.PA, RELIANCE.NS, 7203.T, 005930.KS) is sent as is, and the bare symbol (RELIANCE, 7203) is sent with the stored suffix. Company names and bare tickers without a resolved issuer remain filings-database-only so vendor data cannot be attributed to a different issuer with the same ticker. A request that names no report_type or fiscal_period tries quarterly statements and then annual, so annual-only vendor coverage still answers. A concept the filings database already holds is never answered from the vendor, even when the other filters leave no rows. Fallback values carry no filing-document, source-page, or segment evidence. coverage, filings, and segment-filtered requests remain filings-database-only.

Input Schema

NameRequiredDescriptionDefault
limitNoMaximum matched rows before tree grouping. For facts, each numeric observation is one row, so one series with many periods uses many rows — filter by period, metric class, or segment instead of raising the limit. The range is 1 to 50 and the default is 20. For coverage, it limits the latest filing records.
queryNoBroad lexical search across concept names, labels, codes, aliases, definitions, and segment names. For commentary and risk_changes it searches statement topics, summaries, and verbatim quotes. It applies to every target except coverage. Normally leave it empty when concept is set.
formatNoResponse form for a successful tree result. json returns only the JSON tree. pretty returns only readable rendered_tree text. The forms are never combined.json
companyYesRequired company identifier. Use an exact ticker, full company name, LEI, or another stored identifier. A share-class sibling ticker such as GOOGL resolves to the same SEC filer as the stored GOOG. A company listed in Germany, the UK, France, or Switzerland resolves by its local ticker (BAS for BASF SE, ULVR for Unilever plc, MC.PA for LVMH, NESN for Nestlé), full name, or LEI. When a UK, French or Swiss symbol is also a US ticker, the company is stored with its exchange suffix (.L London, .PA Paris, .SW Zurich: MC.PA, BA.L, ROP.SW) and the bare symbol (MC, BA, ROP) goes to the SEC filer; the response then lists the suffixed company under possible_matches. A Nifty 50 company listed in India resolves by its NSE symbol (RELIANCE, M&M), the same symbol with .NS, its BSE scrip code, or its full name. A company listed in Japan or South Korea resolves by its stock code with the exchange suffix (7203.T for Toyota Motor, 005930.KS for Samsung Electronics, .KQ for KOSDAQ), the bare stock code (7203, 005930), its EDINET or DART code, or its full name. A tied ticker match returns every possible company instead of selecting one.
conceptNoOne requested metric, such as Revenue. The tool selects the best stored concept for this company, reports what it selected, and returns that concept across periods. Valid only for metrics or facts.
date_toNoOptional inclusive latest period-end date for filings, metrics, or facts.
segmentNoOptional case-insensitive filter for a business segment, product, region, dimension member, dimension axis, or source label. It applies to metrics and facts.
date_fromNoOptional inclusive earliest period-end date for filings, metrics, or facts.
active_onlyNoReturn only current serving facts. This is always enforced for non-admin users; admins may set false to inspect inactive rows. When true, coverage and filings also omit reports with no serving facts.
fiscal_yearNoOptional company fiscal-year label, such as 2026. It applies to filings, metrics, and facts. For metrics and facts it selects the fiscal year of the period a value covers, even when a later report stated the value.
report_typeNoOptional report filter for every target except coverage. Accepts a common type such as annual, quarterly, or half_year, or a source form such as 10-K or 10-Q (or a source document code such as ACS, FR, IR, AMF-RFA, AMF-RES). For German, UK, and French filers, quarterly covers Q1, half-year, and Q3 reports. For Indian filers, quarterly covers the Q1, Q2, and Q3 results, and annual covers the Q4 results, which hold the audited full-year statements. For Japanese and Korean filers, quarterly covers Q1, half-year, and Q3 reports, and the Korean source forms are the DART codes 11011 to 11014. For metrics and facts, quarterly also returns every quarter-length value from other reports, including the fourth quarter, which is stored on the annual report. For commentary and risk_changes, annual covers 10-K and 20-F, quarterly covers 10-Q, current covers 8-K, and 424B4 or 424B1 selects the final IPO prospectus.
metric_classNoOptional metric class for metrics or facts, such as financial, ifrs, segment, kpi, apm, or offering_terms (the price, shares and proceeds of an offering in a registration statement). Matching ignores letter case, so Product and product select the same facts.
fiscal_periodNoOptional company fiscal-period label, such as Q1, Q2, Q3, Q4, or FY. It applies to filings, metrics, and facts. For metrics and facts it selects the fiscal period a value covers; Q4 returns the fourth-quarter values stored on the annual report.
search_targetNoResult type. coverage shows available report dates, types, and metric classes. filings shows report records and source URLs. metrics shows available concepts and series. facts shows numeric reported values. commentary shows management's qualitative statements from MD&A sections and earnings press releases. risk_changes shows year-over-year risk-factor changes from annual reports; no rows for a year means unchanged risk factors only when annual_report_years lists that year as compared (unchanged from the IPO prospectus when the year is in compared_with_prospectus), and never means no risks.facts

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / report_type / description
      Previous value: -"Optional report filter for every target except coverage. Accepts a common type such as annual, quarterly, or half_year, or a source form such as 10-K or 10-Q (or a source document code such as ACS, FR, IR, AMF-RFA, AMF-RES). For German, UK, and French filers, quarterly covers Q1, half-year, and Q3 reports. For Indian filers, quarterly covers the Q1, Q2, and Q3 results, and annual covers the Q4 results, which hold the audited full-year statements. For Japanese and Korean filers, quarterly covers Q1, half-year, and Q3 reports, and the Korean source forms are the DART codes 11011 to 11014. For metrics and facts, quarterly also returns every quarter-length value from other reports, including the fourth quarter, which is stored on the annual report. For commentary and risk_changes, annual covers 10-K and 20-F, quarterly covers 10-Q, and current covers 8-K."New value: +"Optional report filter for every target except coverage. Accepts a common type such as annual, quarterly, or half_year, or a source form such as 10-K or 10-Q (or a source document code such as ACS, FR, IR, AMF-RFA, AMF-RES). For German, UK, and French filers, quarterly covers Q1, half-year, and Q3 reports. For Indian filers, quarterly covers the Q1, Q2, and Q3 results, and annual covers the Q4 results, which hold the audited full-year statements. For Japanese and Korean filers, quarterly covers Q1, half-year, and Q3 reports, and the Korean source forms are the DART codes 11011 to 11014. For metrics and facts, quarterly also returns every quarter-length value from other reports, including the fourth quarter, which is stored on the annual report. For commentary and risk_changes, annual covers 10-K and 20-F, quarterly covers 10-Q, current covers 8-K, and 424B4 or 424B1 selects the final IPO prospectus."
  2. Changed1 schema field changed
    • changedInput schema / properties / search_target / description
      Previous value: -"Result type. coverage shows available report dates, types, and metric classes. filings shows report records and source URLs. metrics shows available concepts and series. facts shows numeric reported values. commentary shows management's qualitative statements from MD&A sections and earnings press releases. risk_changes shows year-over-year risk-factor changes from annual reports; no rows for a year means unchanged risk factors only when annual_report_years lists that year as compared, and never means no risks."New value: +"Result type. coverage shows available report dates, types, and metric classes. filings shows report records and source URLs. metrics shows available concepts and series. facts shows numeric reported values. commentary shows management's qualitative statements from MD&A sections and earnings press releases. risk_changes shows year-over-year risk-factor changes from annual reports; no rows for a year means unchanged risk factors only when annual_report_years lists that year as compared (unchanged from the IPO prospectus when the year is in compared_with_prospectus), and never means no risks."
  3. Changed1 schema field changed
    • changedInput schema / properties / metric_class / description
      Previous value: -"Optional metric class for metrics or facts, such as financial, ifrs, segment, kpi, or apm. Matching ignores letter case, so Product and product select the same facts."New value: +"Optional metric class for metrics or facts, such as financial, ifrs, segment, kpi, apm, or offering_terms (the price, shares and proceeds of an offering in a registration statement). Matching ignores letter case, so Product and product select the same facts."
  4. Changed1 schema field changed
    • changedInput schema / properties / search_target / description
      Previous value: -"Result type. coverage shows available report dates, types, and metric classes. filings shows report records and source URLs. metrics shows available concepts and series. facts shows numeric reported values. commentary shows management's qualitative statements from MD&A sections and earnings press releases. risk_changes shows year-over-year risk-factor changes from annual reports; no rows for a year means unchanged risk factors, not no risks."New value: +"Result type. coverage shows available report dates, types, and metric classes. filings shows report records and source URLs. metrics shows available concepts and series. facts shows numeric reported values. commentary shows management's qualitative statements from MD&A sections and earnings press releases. risk_changes shows year-over-year risk-factor changes from annual reports; no rows for a year means unchanged risk factors only when annual_report_years lists that year as compared, and never means no risks."
  5. First observed

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly and openWorld annotations, the description discloses important behavior: the search is deterministic and does not call a language model, results are trees without database row IDs, JSON and pretty formats are never combined, source links are included, and sign/revision caveats are explained. It also covers active_only enforcement and the Twelve Data fallback, which are material operational details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded, but the description is extremely long and dense, with extensive restatement of schema details and long digressions into sign_meaning categories, revision notes, duplicate reported lines, and vendor fallback. For a search tool, it is substantially over-sized and would benefit from trimming.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the 14 parameters, multi-market scope, and complex output behavior, the description is complete. It covers coverage, formats, source citations, company resolution, report-type nuances, commentary and risk_changes limitations, and fallback behavior. An output schema exists, but the extra contextual detail is still sufficient and relevant.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds useful meaning about parameter combinations and market-specific behavior. It explains concept selection versus query, search_target semantics, report_type mappings for each market, and fiscal-period handling. Much of this repeats the schema and becomes verbose, but it still adds practical invocation guidance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: it 'searches structured facts and report metadata from one company's filed reports.' It also scopes the covered issuers (US SEC, Germany, UK, France, Switzerland, India, Japan, South Korea), so an agent can immediately distinguish it from general search, news, transcript, or market-data tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives strong internal guidance: use an exact ticker when possible, choose concept for a single metric versus query for broad search, and use search_target to select coverage, filings, metrics, facts, commentary, or risk_changes. It does not explicitly compare this tool against sibling tools such as search_series or get_market_data, so sibling routing is implied rather than spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources