> ## 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/{statement_key}

> Retrieve one normalized statement type for an issuer, with US GAAP and IFRS foreign-private-issuer resolution and optional fiscal-period filters.

Retrieve one normalized statement type for an issuer, with US GAAP and IFRS foreign-private-issuer resolution and optional fiscal-period filters.

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

## Coverage and source scope

Use this route when the statement type belongs in the URL rather than a query string. Set `statement_key` to a supported normalized statement, then select annual or quarterly cadence and fiscal years as needed. The result preserves reported units, periods, and filing provenance and may contain missing or incomparable normalized line items. See [API conventions](/api-conventions) and [freshness and source evidence](/freshness-and-trust).

## Required inputs

`statement_key` selects the normalized statement type; supply one issuer identifier and use `period`, `fy` / `year`, or a fiscal-year range when the workflow needs a particular reporting slice. Inspect the returned periods and provenance rather than inferring a fiscal period from the request alone.

## Related guides

<CardGroup cols={2}>
  <Card title="Financial statements API guide" icon="table-properties" href="/seo/sec-financial-statements-api">Understand normalized statement coverage and filing context.</Card>
  <Card title="Freshness and trust" icon="shield-check" href="/freshness-and-trust">Carry source and freshness metadata into downstream reports.</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/income_statement?ticker=EXAMPLE&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/{statement_key} for one normalized statement type. Set `statement_key` to the supported statement type, supply one issuer identifier, and add period or fiscal-year filters when the result must be tied to a reporting slice. Preserve rows, periods, provenance, completeness, freshness, materialization, `requestId`, and `traceparent`.
</Prompt>

## Failure posture

* provide a supported `statement_key` and one issuer identifier
* use the returned periods and provenance rather than inferring the reporting slice from a requested fiscal year alone
* preserve completeness, freshness, materialization, `requestId`, and `traceparent` when handling a partial or transient result
