---
title: "Statement by key"
method: GET
path: "/v1/statements/{statement_key}"
---

# Statement by key

`GET /v1/statements/{statement_key}`

## Request

- Base URL: `https://api.turos.app`
- URL: `https://api.turos.app/v1/statements/{statement_key}`
- Auth: one of:
  - API key in header `x-api-key`
  - HTTP bearer

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).

## Path parameters

- `statement_key` string, required

## Query parameters

- `ticker` string
- `symbol` string
- `cik` string
- `period` 'annual' | 'quarterly' | 'quarter' | 'q'
- `fy` integer
- `year` integer
- `fy_from` integer
- `fyFrom` integer
- `fy_to` integer
- `fyTo` integer
- `limit` integer
- `view` 'default' | 'compact' | 'agent'

## Response `200`

Successful response. view=compact returns CompactStatement; view=agent returns StatementAgentRecord; default returns Statement.

- union
  - Statement
    - `object` 'statement', required
    - `id` string, required
    - `createdAt` string, required
    - `livemode` boolean, required
    - `entityId` string, required
    - `ticker` string, nullable, required
    - `companyName` string, required
    - `statementKey` string, required
    - `title` string, required
    - `period` 'annual' | 'quarterly', required
    - `periods` object[], required
      - `periodEnd` string
      - `filedAt` string, nullable
      - `form` string, nullable
      - `fy` number, nullable
      - `fp` string, nullable
    - `rows` object[], required
      - `key` string
      - `tag` string
      - `taxonomy` string
      - `label` string
      - `unit` string, nullable
      - `values` object[]
    - `provenance` ResponseMetadata, required
      - `source` string, required
      - `sourceLabel` string
      - `sourceAgency` string
      - `canonicality` string
      - `fallbackPolicy` string
      - `accessionNumber` string, nullable, required
      - `filingUrl` string, uri, required
      - `acceptedAt` string, nullable
      - `retrievedAt` string, required
      - `parserVersion` string, required
    - `completeness` object
    - `freshness` FreshnessMetadata: Freshness of the record. For SEC filings, freshness measures the delay between SEC acceptance (`sourcePublishedAt`) and when the record became available in the API — not the age of the document. Statuses: `current` (recently published and available promptly), `archival` (an immutable historical document held in full; its availability delay is not a freshness signal), `degraded`/`stale` (a recently published filing that became available later than the freshness thresholds allow), `fresh` (continuously refreshed datasets recently observed at source), `unknown` (no timestamps). An old immutable filing is never `stale` simply because it was published long ago. `lagMs` is the publish-to-availability delay in milliseconds.
      - `status` 'fresh' | 'current' | 'archival' | 'stale' | 'degraded' | 'unknown', required
      - `asOf` string, required
      - `sourcePublishedAt` string, nullable
      - `lagMs` integer, nullable
    - `materialization` MaterializationMetadata
      - `parserVersion` string, required
      - `materializationVersion` string, required
    - `validation` ValidationStatus
      - `status` 'validated' | 'unvalidated' | 'degraded', required
      - `confidence` 'high' | 'medium' | 'low', nullable
      - `validatedAt` string, nullable
      - `validationPipeline` string, nullable
      - `exceptions` string[]
    - `traceparent` string
  - CompactStatement
    - `ticker` string, nullable, required
    - `statementKey` string, nullable, required
    - `period` 'annual' | 'quarterly', nullable, required
    - `periods` object[], required
      - `periodEnd` string, required
      - `filedAt` string, nullable, required
      - `form` string, nullable, required
      - `fy` number, nullable, required
      - `fp` string, nullable, required
    - `rows` object[], required
      - `key` string, nullable, required
      - `label` string, nullable
      - `unit` string, nullable, required
      - `values` number[], required
      - `discrete` number[]
    - `requestId` string
    - `traceparent` string, nullable
  - StatementAgentRecord
    - `object` 'statement', required
    - `ticker` string, nullable, required
    - `companyName` string, required
    - `statementKey` string, required
    - `title` string, required
    - `period` 'annual' | 'quarterly', required
    - `periods` object[], required
      - `periodEnd` string, required
      - `filedAt` string, nullable, required
      - `form` string, nullable, required
      - `fy` number, nullable, required
      - `fp` string, nullable, required
    - `rows` object[], required
      - `key` string, required
      - `tag` string, required
      - `taxonomy` string, required
      - `label` string, required
      - `unit` string, nullable, required
      - `values` object[], required
        - `periodEnd` string, required
        - `filedAt` string, nullable, required
        - `form` string, nullable, required
        - `fy` number, nullable, required
        - `fp` string, nullable, required
        - `periodStart` string, nullable
        - `value` number, nullable, required
        - `periodBasis` 'instant' | 'fiscal_year_to_date' | 'discrete_period'
        - `discreteQuarter` object
          - `value` number, nullable, required
          - `basis` 'discrete_period', required
          - `reason` 'already_discrete' | 'derived' | 'instant_statement' | 'missing_value' | 'indeterminate_quarter' | 'no_matching_prior_ytd' | 'duration_mismatch', required
          - `periodStart` string, nullable, required
    - `sources` object[], required
      - `source` string, required
      - `sourceKind` 'company_facts' | 'filing', required
      - `accessionNumber` string, nullable, required
      - `sourceUrl` string, uri, required
    - `requestId` string, required
    - `traceparent` string

## Other responses

- `default`: Contract-aware error response

---

[API](https://skmtc.dev/turos/apis/turos-api.md) · [All operations](https://skmtc.dev/turos/apis/turos-api/llms.txt) · [OpenAPI document](https://skmtc.dev/turos/apis/turos-api/revisions/a68d3ec80a56?raw)
