> ## Documentation Index
> Fetch the complete documentation index at: https://docs.secapi.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# GET /v1/statements

> Retrieve a normalized balance sheet, income statement, or cash flow statement for one issuer, with US GAAP and IFRS foreign-private-issuer resolution.

Retrieve a normalized balance sheet, income statement, or cash flow statement for one issuer, with US GAAP and IFRS foreign-private-issuer resolution.

<Info>
  Audience: application and coding agent.
</Info>

## Coverage and source scope

Use this route to fetch one normalized statement for analysis or a financial-model input. Set `statement` and select annual or quarterly cadence, fiscal year, and a bounded history when the reporting slice matters. The response resolves supported US GAAP and IFRS filers, preserves reported units, periods, and filing provenance, and can contain missing or incomparable line items; it is not a substitute for the cited filing. See [API conventions](/api-conventions) and [freshness and source evidence](/freshness-and-trust).

## Agent mode

Pass `?view=agent` to receive the compact agent shape: rows + periods with tag, value, and period metadata. Provenance, completeness, freshness, materialization, and validation envelopes are dropped. See [api conventions → response formats](/api-conventions) for the full `?view=` contract.

## Choose the statement and period

Supply one issuer identifier. Set `statement` when the workflow needs one statement type, then use `period`, `fy` / `year`, or a fiscal-year range to anchor the requested reporting slice. The route resolves US GAAP 10-K / 10-Q filers and, when applicable, IFRS foreign private issuers through `ifrs-full` 20-F / 6-K coverage.

Read the returned periods, provenance, completeness, freshness, and materialization metadata alongside the rows. A missing normalized line item is not equivalent to zero, and values from different units, periods, or filing scopes should not be combined without normalization.

## Related guides

<CardGroup cols={2}>
  <Card title="Financial statements API guide" icon="table-properties" href="/seo/sec-financial-statements-api">Use statement data with explicit reporting-period context.</Card>
  <Card title="Coverage and depth" icon="layers" href="/coverage-and-depth">Understand source coverage and availability boundaries.</Card>
</CardGroup>

## Canonical metadata

* `requestId`
* `traceparent`
* `provenance`
* `freshness`
* `materialization`

## Example request

<RequestExample>
  ```bash theme={null}
  curl -X GET -H "x-api-key: $SECAPI_API_KEY" -H "secapi-version: 2026-03-19" "https://api.secapi.ai/v1/statements?ticker=EXAMPLE&statement=income_statement&fy=2025"
  ```
</RequestExample>

## Example response

<ResponseExample>
  ```json theme={null}
  {
    "object": "statement",
    "id": "stmt_example_income_statement_2025",
    "createdAt": "2026-02-20T00:00:00.000Z",
    "livemode": false,
    "entityId": "ent_example",
    "ticker": "EXAMPLE",
    "companyName": "Example Issuer, Inc.",
    "statementKey": "income_statement",
    "title": "Income Statement",
    "period": "annual",
    "periods": [
      {
        "periodEnd": "2025-12-31",
        "filedAt": "2026-02-20",
        "form": "10-K",
        "fy": 2025,
        "fp": "FY"
      }
    ],
    "rows": [
      {
        "key": "revenue",
        "tag": "Revenues",
        "taxonomy": "us-gaap",
        "label": "Revenue",
        "unit": "USD",
        "values": [
          {
            "periodEnd": "2025-12-31",
            "filedAt": "2026-02-20",
            "form": "10-K",
            "fy": 2025,
            "fp": "FY",
            "periodStart": "2025-01-01",
            "value": 123456789,
            "periodBasis": "fiscal_year_to_date"
          }
        ]
      }
    ],
    "provenance": {
      "source": "example",
      "sourceLabel": "Illustrative response - not a live SEC filing",
      "accessionNumber": null,
      "filingUrl": "https://example.com/sec-filings/example-2025-10-k",
      "retrievedAt": "2026-02-20T00:00:00.000Z",
      "parserVersion": "example"
    },
    "completeness": {
      "source": "company_facts",
      "observationsReturned": 1,
      "hasResolvedConcept": true
    },
    "freshness": {
      "status": "archival",
      "asOf": "2026-02-20T00:00:00.000Z",
      "sourcePublishedAt": "2026-02-20T00:00:00.000Z",
      "lagMs": 0
    },
    "materialization": {
      "parserVersion": "example",
      "materializationVersion": "example"
    },
    "requestId": "req_2ZK8Q1W9F4M6P7R3",
    "traceparent": "00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01"
  }
  ```
</ResponseExample>

## About this example

This response is illustrative: `EXAMPLE`, all IDs, amounts, and `example.com` URLs are synthetic. It shows the response shape only and does not identify or claim a live SEC filing.

## Give this prompt to your agent

<Prompt>
  Use SEC API GET /v1/statements to retrieve one normalized balance sheet, income statement, or cash flow statement for an issuer. Supply one issuer identifier and choose `statement` plus period or fiscal-year filters when the workflow requires a specific reporting slice. Preserve statement rows, periods, provenance, completeness, freshness, materialization, `requestId`, and `traceparent`; distinguish reported values from missing or incomparable line items.
</Prompt>

## Failure posture

* provide one issuer identifier and a supported statement selector when requesting a specific statement type
* do not treat an absent normalized row as zero or use it to infer an unavailable disclosure
* preserve provenance, completeness, freshness, materialization, `requestId`, and `traceparent` when handling a partial or transient result
