stocks_get_balance_sheets
Normalized balance sheets for one US public company, newest first.
Description
Normalized balance sheets for one US public company, newest first.
Same response shape as stocks_get_income_statements and
stocks_get_cash_flow_statements — the statements trio is
interchangeable: data holds the company identity (ticker, cik,
company_name, period_type, reporting_standard) and the bounded
statements list — address the company by ticker or by SEC CIK, and
ticker is its active symbol or null when it has none;
reporting_standard is us-gaap, ifrs-full, or null when legacy rows
have not observed the taxonomy yet. meta holds provenance (source:
"sec_edgar_companyfacts", and as_of, the freshest line-level timestamp
on this page); pagination holds the cursor paging state (pass
pagination.next_cursor back as cursor).
Set as_reported=true to serve as-originally-reported values instead
of the latest restated values, and keep it constant while paging. Before
a company's next statement ingest this mode raises out_of_coverage.
In both modes, meta.restatements lists restated reported lines with
original and superseding accessions. Arithmetic-derived Q4,
non-fiscal-year TTM, YTD-difference, and FCF lines carry null lineage;
a TTM matching a reported fiscal year carries the annual accessions.
Each statement is one fiscal period with a lines object keyed by
canonical line names: total_assets, current_assets,
cash_and_equivalents, receivables, inventory, ppe_net,
goodwill, intangibles, total_liabilities, current_liabilities,
debt_current, debt_noncurrent, total_equity, shares_outstanding.
A missing key means the company did not report that line for the period
— never zero (banks, for instance, omit the current/non-current split).
Balance-sheet values are point-in-time instants, so period_start
equals period_end (the balance-sheet date). Each value carries value
(exact decimal as a JSON string), unit, currency, as_of, and the
source filing's accession_number. currency is the as-filed reporting
currency on every value; IFRS filers report in their home currency
(EUR/TWD/JPY, etc.) and values are never silently converted to USD.
Known IFRS 20-F/FPI filers are annual-only: request period="annual".
For them, period="quarterly" raises out_of_coverage. Balance sheets
still reject period="ttm" for every filer with bad_parameter.
For ratios and multiples (current ratio, debt-to-equity, book value),
prefer stocks_get_financial_metrics — computed server-side — over
deriving them from these raw lines: fewer tokens, no arithmetic slips.
The default is 4 fiscal periods and the maximum is 12. Example:
stocks_get_balance_sheets(ticker_or_cik="AAPL", period="annual", as_reported=true).
Errors carry a machine code: unknown_entity for a well-formed symbol
we hold no mapping for or a CIK we hold no company for,
out_of_coverage when as_reported is requested
before the company's first vintage-era statement ingest or quarterly
data is requested for a known IFRS filer, and
bad_parameter for input the schema can't reject (a non-ticker, non-CIK
string, a malformed cursor, or period="ttm").
Parameters
Input schema advertised to MCP clients and mirrored by the REST query string.
| Name | Type | Required | Default | Constraints | Description |
|---|---|---|---|---|---|
| ticker_or_cik | string | Yes | — | — | An exact ticker ('AAPL', 'BRK.B' — class separators accepted) or a numeric SEC CIK ('320193', zero-padded accepted). Use the CIK for a filer whose ticker was reused by another company, or that has no ticker at all. For a company *name*, call stocks_search_tickers first — this tool does not fuzzy-match. |
| period | "annual" | "quarterly" | "ttm" | No | "annual" | — | Fiscal frame: 'annual' = fiscal year-ends (FY), 'quarterly' = fiscal-quarter-ends (Q1–Q4). 'ttm' is not valid for balance sheets — a balance sheet is a point-in-time snapshot, not a flow that sums over a window — and is rejected with a bad_parameter error. Known 20-F/FPI IFRS filers report annual statements only; quarterly requests raise `out_of_coverage`. |
| limit | integer | No | 4 | min 1, max 12 | Fiscal periods to return, newest first (1–12). |
| cursor | string | null | No | null | — | Opaque pagination cursor from a previous response's `pagination.next_cursor`; omit to start from the newest period. |
| as_reported | boolean | No | false | — | Serve as-originally-reported values instead of latest restated values. Keep this constant while paging. Before the next statement ingest, this mode raises `out_of_coverage`. Reported restatements carry original and superseding accessions; arithmetic-derived Q4, non-fiscal-year TTM, YTD-difference, and FCF lines carry null lineage, while a TTM matching a reported fiscal year carries the annual accessions. |
Provenance
Sources behind every value this tool returns.
- sec_edgar_companyfactsU.S. Securities and Exchange Commission (EDGAR)
Dataset registry: stocks_fundamentals