Retrieve Company Financials
companies_financials_retrieveExperimental endpoint — the response schema may change without an API version bump.
Returns standardized financial KPIs for a company as a structured document: a company envelope containing periods, each holding its Income Statement, Balance Sheet and Cash Flow statements, each holding line_items.
When several filings report the same period, the candidates are ranked and one statement is selected. A filing the company reports its own financials in beats one it does not, such as an employee benefit plan's Form 11-K or a filing notice. A statement in the currency the company reports in beats an off-currency one, which is usually a subsidiary's filing that resolved to the parent. A complete statement beats a fragment, such as the single restated line in an amendment. Only then does the most recently published filing win. A selected statement denominated in a currency other than the company's carries currency_mismatch: true.
Currency is as presented, and is never converted. currency is the currency the statement is denominated in as the filer presented it - the presentation currency, not the functional currency, which we do not capture. No figure in this payload is ever translated into another currency at any rate, and value being in absolute units makes values comparable across scales, not across currencies. A company that re-presents in a new currency therefore produces a series whose units change partway through, with no restatement of the earlier years:...
When to use this tool: Use to get standardized financial line items (income statement, balance sheet, cash flow) for a company. Data is deduplicated across filings — the most recently published filing wins. SOURCING: attribute every figure to its fiscal period + period_end_date and reporting currency. GROUNDEDNESS (critical): report ONLY values present in the periods this call returns. If period_count is 0 or periods is empty, FinancialFilings has no structured financials for this company yet (common for US/SEC issuers — structured data is currently ESEF/EU-derived and being expanded). Do NOT stop and do NOT estimate — FALL BACK to the filing: call filings_list for this id filtered with type (or types) to an annual report (e.g. 10-K, 20-F, or the local annual type) with ordering='-release_datetime' and page_size=10, take the NEWEST row (do not gate on processing_status — it can be null, and null means unknown), retrieve it with filings_markdown_retrieve, and read the figures directly from the filing body — citing the filing type, date, and fiscal period. Never estimate, recall a figure from training knowledge, or attach a citation to a number you did not read from a tool result this session. PROVENANCE: treat a figure as as-reported ONLY when raw_value AND scale are BOTH non-null. If either is missing there is no as-reported pair, so you cannot assert the figure was read off the page — do not present it as sourced from the filing. An arithmetic tie between totals does NOT establish provenance: a computed figure is chosen to make the totals tie. To verify a figure, take source_filing.id (or the sources entry with is_selected: true, field filing_id) — it is already in this response, so no filings_list call is needed — and read it with filings_markdown_retrieve (no processing_status check first: the field is not on this response; a not-found error means no Markdown is available for that filing — do not promise it will appear). LINE ITEM CODES: line_items takes exact lower-case snake_case codes, comma-separated (not ;); an unknown code is a 400 naming it. The codes most often guessed wrong: net_income -> net_income_loss, operating_income -> operating_income_loss, total_debt -> total_debt_bs, free_cash_flow -> levered_free_cash_flow_cf, capital_expenditure -> capital_expenditure_cf, operating_cash_flow -> cash_from_operations, eps -> basic_eps / diluted_eps, cash -> cash_and_equivalents. Not sure of a code? Omit line_items to get every line item.
When NOT to use this tool: Don't use for filing documents or markdown content — use filings_list + filings_markdown_retrieve. Don't use without resolving the company ID first via companies_list.
Examples:
Munich Re 2024 income statement -> id=, fiscal_year=2024, statement_type='IS' (Use depth + parent_code to render Capital IQ-style hierarchy)
Compare EBITDA across 3 companies -> id=, statement_type='IS', line_items='ebitda' (Call in parallel for each company. Always show currency.)
[Server current date: 2026-10-09 — treat this as today.]
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| as_of | No | ||
| line_items | No | Comma-separated KPI codes to include (e.g. `revenue,ebitda,net_income_loss`). Omit to return all extracted line items. Statements with none of the requested codes are dropped. Unknown codes return `400` — see `/line-item-definitions/`. | |
| fiscal_year | No | ||
| fiscal_period | No | Filter by fiscal period. | |
| fiscal_year_to | No | ||
| statement_type | No | ||
| fiscal_year_from | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| notice | No | ||
| filters | No | ||
| periods | No | ||
| currency | No | ||
| company_id | No | ||
| period_count | No | ||
| history_window | No | ||
| sources_masked | No |