Financial Statements
Curated income, balance-sheet, and cash-flow statements for a company, joined to their source SEC
filing so every row carries citation fields (form, filing_date, period, fiscal_year,
filed_as_reported). Set raw=true to read the underlying XBRL facts instead.
Endpoint
GET /v1/company/{identifier}/financials{identifier} is a ticker or numeric CIK.
Query parameters
| Parameter | Type | Default | Description |
| --- | --- | --- | --- |
| statement | string | income | income, balance, or cash_flow. |
| period | string | annual | annual or quarterly. |
| raw | boolean | false | Return raw xbrl_facts instead of curated statements. |
Citation fields
Every curated row carries these fields, so an agent can prove where a number came from:
form— the source form type (e.g.10-K,10-Q).filing_date— the date the filing was submitted to the SEC.period— the statement period-end date.fiscal_year— the fiscal year the figure belongs to.filed_as_reported— alwaystruefor curated rows.accession_number— the SEC accession number for the filing.
Sample request
curl "https://api.financialdataapis.com/v1/company/AAPL/financials?statement=income&period=annual" \
-H "X-API-Key: $FDA_KEY"Sample response
{
"data_source": "SEC EDGAR",
"items": [
{
"id": 1,
"cik": 320193,
"filing_id": 9,
"statement": "income",
"period": "2025-09-30",
"fiscal_year": 2025,
"fiscal_period": "FY",
"revenue": 383285000000,
"cost_of_revenue": 210000000000,
"gross_profit": 173000000000,
"operating_income": 123000000000,
"net_income": 96995000000,
"eps_diluted": 6.75,
"shares_outstanding": 15000000000,
"form": "10-K",
"filing_date": "2025-10-31",
"accession_number": "0000320193-25-000123",
"filed_as_reported": true
}
]
}Only the columns relevant to the requested statement are populated — an income statement does
not carry total_assets or operating_cash_flow.
Raw XBRL facts
With raw=true the endpoint returns facts instead of items:
curl "https://api.financialdataapis.com/v1/company/AAPL/financials?raw=true" \
-H "X-API-Key: $FDA_KEY"{
"data_source": "SEC EDGAR",
"facts": [
{
"id": 1,
"cik": 320193,
"tag": "Revenue",
"value": "383285000000",
"unit": "USD",
"start_date": "2024-10-01",
"end_date": "2025-09-30",
"form": "10-K",
"fiscal_year": 2025,
"fiscal_period": "FY",
"frame": null
}
]
}Cache miss — 202 Accepted
When the company is known but has not been ingested yet, the endpoint enqueues an on-demand
ingestion job and returns 202 with a Retry-After: 10 header:
{
"detail": "Financial data not yet ingested for this company. An ingestion job has been queued; retry shortly."
}Retry the request after the Retry-After interval.
Error codes
| Status | Code | Meaning |
| --- | --- | --- |
| 202 | — | Company not yet ingested; retry after Retry-After. |
| 401 | key_invalid | Missing or invalid API key. |
| 404 | — | Unknown ticker or CIK: {id}. |
| 422 | — | Invalid statement or period value. |
| 429 | MONTHLY_QUOTA_EXCEEDED | Monthly quota exhausted. |