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 — always true for 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. |