Financial statements
Normalized quarterly and annual statements with a restatement-aware knowledge cutoff. Trailing-twelve-month statements are not offered: four quarters of the connected source do not reliably add up to its annual statement (cash-flow lines in particular), so sum quarters yourself only where they reconcile to the annual figure. period_start, fiscal_year and fiscal_quarter are not supplied by the connected source and are null; period_end is the source's date for the period: the calendar month end for a company on a 52-week year (a quarter ending June 27 is dated 2026-06-30). filing_ids names the issuer's original SEC 10-Q, 10-K, 10-KT, 20-F or 40-F, known at as_of, whose reported period ends within 10 days of period_end (a fourth quarter's is the annual report), and reported_period_end is that filing's own period end; both are empty or null where no stored filing matches, such as an issuer outside EDGAR or a period before it. Each statement is checked for internal consistency before it is published: a line that repeats, negates or doubles another line (income tax equal to income before tax, a profit equal to revenue while net income is not), or a total that cannot be negative, is withheld; a wide miss of an accounting identity, or a part that exceeds its whole (gross profit over revenue, current over total assets), is flagged; and quality_issues lists both, along with any line OHLC withheld or corrected on review; check it before relying on a statement's lines. Default order: period_end ascending, id ascending. Omitting entity selectors returns the entitled universe; explicit unauthorized selectors return 403. Data is delivered from validated canonical batches; a connected dataset with nothing published for the key's markets yet returns 503. Access requires the operation capability on the API key.
/v1/financials/statements- Required capability
- financials.read
- Data timing
- As published by the source
- Credits
- 50 credits per symbol; 500 credits without symbols (whole market).
Parameters
company_idsstringoptional · query- Filter by issuer IDs. May be combined with instrument selectors; filters intersect, except on issuer-level datasets (statements, segments, estimates, earnings, insider transactions), where an instrument selector is read as its company and takes the place of company_ids, so results cover every share class.
instrument_idsstringoptional · query- Filter by stable instrument IDs. IDs and symbols may not be combined.
symbolsstringoptional · query- Convenience lookup for exchange-listed instruments as MIC:TICKER or a bare ticker, which resolves to the exchange listing that ticker; resolves at symbol_at. The MIC and the ticker are case-insensitive, and two spellings of one listing (AAPL and XNAS:AAPL) count as a repeated value. A bare ticker that names no listing as written is also read in the common vendor spellings: with an exchange suffix (RY.TO, SHEL.L, VOD.LSE, BHP.AX), ^GSPC for INDEX:GSPC, and EURUSD=X or EURUSD for FOREX:EUR-USD. A ticker may contain a space (BAC PRL) but not start or end with one. A request in which no symbol resolves returns 404 symbol-not-resolved; otherwise each symbol that does not resolve, or resolves to a listing with no rows for the request (no-data), is an entry of meta.errors. IDs and symbols may not be combined.
symbol_atstringoptional · query- Resolve symbols as they were assigned at the end of this UTC date (YYYY-MM-DD); defaults to as_of. Only listings the security master holds resolve: it was built in September 2026 and records delistings from then on, so most issuers delisted earlier, such as TWTR or SIVB, resolve at no date. Only valid with symbols.
statementstringoptional · query- Statement family.
incomebalance_sheetcash_flow periodstringoptional · query- Fiscal period; defaults to quarterly.
quarterlyannual fromstringoptional · query- Inclusive lower bound on period_end.
tostringoptional · query- Inclusive upper bound on period_end; must be on or after from, so from equal to to selects one day.
as_ofstringoptional · query- Knowledge cutoff as a UTC date (YYYY-MM-DD): the response reflects what was known by the end of that day. Defaults to now; cannot be in the future. A date from before the dataset's knowledge history returns 422 point-in-time-unavailable naming the earliest one, which GET /v1/datasets lists as earliest_as_of.
known_fromstringoptional · query- First UTC date (YYYY-MM-DD, inclusive) on which a revision became known.
known_tostringoptional · query- Last UTC date (YYYY-MM-DD, inclusive) on which a revision became known; on or after known_from.
orderstringoptional · query- Direction on period_end; ties use ID ascending.
Default:ascdescasc limitintegeroptional · query- Maximum records per page.Default:
100 cursorstringoptional · query- Opaque cursor, expires after one hour; binds filters, order, resolved as_of, account/key and entitlement. Repeat the original query unchanged.
formatstringoptional · query- Response format. csv returns the data rows with a header row, for spreadsheet functions such as IMPORTDATA; nested fields become dotted columns and lists one JSON array cell, the next page cursor is returned in X-Next-Cursor and meta.errors in X-Meta-Errors. A result without rows is the header row alone, listing the documented fields of a row. Default json, or csv when format is omitted and the Accept header ranks text/csv above JSON; a format the Accept header does not admit returns 406 not-acceptable.
jsoncsv
Response fields
Returns data as an array of records. All example values are illustrative.
idstring- Record identifier, stable across revisions.
company_idstring- Opaque stable public identifier; never an internal database key.
period_startstring · null- Null when the source does not establish the fiscal start.
period_endstring- period end
fiscal_yearinteger · null- Issuer fiscal year; null when not supplied.
fiscal_quarterinteger · null- fiscal quarter
periodstring- Issuer fiscal period, not calendar quarter.
quarterlyannual statementstring- Statement family.
incomebalance_sheetcash_flow currency_codestring- ISO 4217 currency. Crypto quote assets use instrument IDs, not invented ISO codes.
filing_idsarray- filing ids
reported_period_endstring · null- The period end the issuer reported in that filing (2024-09-28 for Apple's fiscal 2024); null when no stored filing matches.
linesarray- lines
restatedboolean · null- Null when restatement status is not supplied.
quality_issuesarray- Lines OHLC withheld, flagged or corrected after checking the statement's internal consistency; empty when none.
Response metadata
Responses include meta.timezone. Dataset responses include next_cursor; health and exports have their own metadata. Request tracing uses the X-Request-ID header.
When something goes wrong
An empty data: [] is a successful query with no matching records. Invalid symbols, permissions and malformed parameters produce an RFC 9457 problem with an actionable detail.
Plans
Requires financials.read. Access, recency and history depth come from the plan definitions the API enforces.
| Plan | Access | Recency | History |
|---|---|---|---|
| Free | Included | As published | 5 years |
| Developer | Included | As published | 5 years |
| Pro | Included | As published | 15 years |
| Commercial | Included | As published | Full history |
| Scale | Included | As published | Full history |
Free requests are limited to AAPL, NVDA, JNJ, PEP, MSFT, SPY, QQQ.
History is how far back a plan may request. How far records actually go for a symbol is history_from in dataset coverage. Nothing is real-time. Compare plans