Skip to main content
GET
Get balance sheets
This route returns one balance sheet row per reporting period: total assets, total liabilities, and shareholders’ equity, alongside their component lines, normalized to the Financial Datasets field names and order. It shares its provider chain and pagination shape with Income Statements: the same /equities/v1/statements fetch, joined against /equities/v1/filings for SEC identity.

What this answers

  • How a company’s total assets and shareholders’ equity have moved over recent periods.
  • How much cash, inventory, and receivables a company is carrying right now, or as of a past period.

Coverage

Query rules

ticker is required. period accepts annual, quarterly, or ttm, and defaults to annual on this REST route, unlike the underlying MCP tool’s own ttm default. Pass period explicitly if the default matters. as_reported=true is accepted for parameter parity but always answers 400 bad_request. limit defaults to 4 and caps at 100. The report_period* family of filters narrows by report date, the same way it does on Income Statements. Fields the current Go source declares but our own live captures never populate: currency, accession_number, form_type, filing_url, filing_date, filing_datetime, current_investments, property_plant_and_equipment, goodwill_and_intangible_assets, investments, non_current_investments, outstanding_shares, tax_assets, trade_and_non_trade_payables, deferred_revenue, deposit_liabilities, tax_liabilities, accumulated_other_comprehensive_income, total_debt. These are schema-legal and left out of the response rather than guessed.

Worked example

curl
Response

Authorizations

X-API-KEY
string
header
required

The caller's own Monid API key (get one at https://monid.ai?fpr=dhruv-15136b). Passed straight through to Monid on every call, so usage bills the caller's own wallet — this is never a shared server-side credential, and the server never logs or stores it. Missing, empty, or malformed values answer 401 unauthorized before any paid call is attempted.

Query Parameters

ticker
string
required

Uppercase-normalized ticker symbol (1-20 letters/digits/dots/hyphens).

period
enum<string>
default:annual

Reporting period. REST-level default is "annual"; the tool/FD-schema default is "ttm".

Available options:
annual,
quarterly,
ttm
limit
integer
default:4

Number of records to retrieve (default: 4, max: 100).

Required range: 1 <= x <= 100
as_reported
boolean
default:false

Accepted for FD parameter parity but always rejected: as_reported=true answers 400 bad_request ("as_reported is not supported; use the normalized balance-sheets endpoint") at zero cost.

report_period
string<date>

Exact report_period date filter (YYYY-MM-DD).

report_period_gte
string<date>

report_period >= this date (YYYY-MM-DD, inclusive).

report_period_lte
string<date>

report_period <= this date (YYYY-MM-DD, inclusive).

report_period_gt
string<date>

report_period > this date (YYYY-MM-DD, exclusive).

report_period_lt
string<date>

report_period < this date (YYYY-MM-DD, exclusive).

cursor
string

Opaque base64url pagination cursor from a previous response's next_page_url. Omit for the first page.

Response

A page of balance sheets, newest report_period first. Real AAPL FY2025 annual values captured from our own live API (docs/our-live-samples/balance_sheets.json).

Wrapped list envelope: {"balance_sheets": [...], "next_page_url": "..."}. Page size is 10 records (100 for /prices).

balance_sheets
BalanceSheet · object[]
required
next_page_url
string<uri>

Absolute URL for the next page, present only when more records remain. Built from an opaque base64url cursor over this deployment's own host (never a fixed facade base).