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

# Statements as filed

> The statement exactly as the company filed it, across its whole history: every line item it ever printed (one row per printed caption — a renamed line is a new row, a discontinued line keeps its row and the period it was last used), one column per reporting period, values in units as filed. Captions, order and section headers come from the filing's own rendered statement page for inline-XBRL filings (2019→) and from its label linkbase before that; printed PDF / HTML statements serve through the same shape.



## OpenAPI

````yaml /openapi.json get /api/v1/companies/{id}/financials/as-filed
openapi: 3.1.0
info:
  title: Astreus API
  version: 1.0.0
  description: >-
    Astreus is a financial data terminal that turns the world's unstructured
    financial disclosure into structured, traceable data. It reads what
    companies, exchanges and central banks publish — annual and interim reports,
    SEC filings, results announcements, investor presentations, earnings calls,
    8-Ks, regulator notices and policy text — across the United States, the Gulf
    (Tadawul, DFM, ADX, Boursa Kuwait, QSE), Japan, Taiwan, Korea, the UK and
    Europe, and serves it as data a program can trust: standardized financial
    statements (annual, quarterly, semiannual), segments and KPIs, the tables
    inside the notes, filing sections as text, investor decks page by page,
    earnings-call transcripts and audio, span-anchored observations, management
    guidance scored against outcomes, typed 8-K events, an attributed intraday
    news tape, insider and 13F ownership, a people registry, point-in-time macro
    series and central-bank text, benchmark, commodity and compute-price series,
    and a validated causal claim graph with scenario simulation. Every number
    carries the filing, page or passage it came from (`fact-source`), and
    nothing is served until it passes per-company validation gates.


    Coverage is published live: `GET /api/v1/landing/coverage` (no key) returns
    every market served with company counts, history depth, completeness and
    periods held per data type — ask it before answering "what do you cover?".
    `{id}` is a ticker, a numeric SEC CIK, or a platform key for a non-SEC
    issuer (XSAU000001) — the `cik` field of the company payload. Human-readable
    guides: https://doc.astreus.ai (coverage at /coverage, data catalog at
    /data-catalog).


    Tiers: `public` endpoints need no credentials. Everything else takes an
    **API key** — create one on the Developers page in the terminal
    (https://astreus.ai/developers) and send it as `X-API-KEY: pk_live_...` (or
    `Authorization: Bearer pk_live_...`). Signed-in terminal sessions may use
    their Cognito ID token instead.


    Rate limits and quotas are per plan (fixed UTC windows): Free — 30 req/min,
    250 req/day; Build — 300 req/min, 100,000 req/month; Scale — custom. Build,
    Scale and prepaid credits are set up with sales
    (https://astreus.ai/contact), not self-serve. Responses carry RateLimit-*,
    X-Quota-* and, when credits pay, X-Billing-Source/X-Credits-Remaining-USD
    headers; a 429 carries `Retry-After` and a machine `code` of rate_limited or
    quota_exceeded (with sales_email).


    Not investment advice. See /terms.
  contact:
    email: saif@astreus.ai
  termsOfService: https://astreus.ai/terms
servers:
  - url: https://astreus.ai
security: []
tags:
  - name: Search & Meta
    description: Entity resolution and platform metadata.
  - name: Company Data
    description: Profiles, structure, leadership, calendars.
  - name: Financial Statements
    description: >-
      Standardized XBRL-derived statements — every line traceable to its filing
      via fact provenance.
  - name: SEC Filings
    description: >-
      The filing index and documents (SEC and exchange-published), parsed
      section text, and the tables inside the notes as gated grids and series.
  - name: 8-K Events
    description: Material events, typed by family, with extracted item text.
  - name: News
    description: >-
      The intraday news tape: filings, releases and licensed wires with source
      attribution, storylines and topics.
  - name: Transcripts & Calls
    description: Earnings-call transcripts, span-anchored observations, IR decks.
  - name: Guidance & Scorecards
    description: What management promised vs. what happened.
  - name: Ownership & Insiders
    description: 13F holders, Forms 3/4/5, the people registry.
  - name: Macro
    description: Point-in-time economic series and central-bank text.
  - name: Market Data
    description: Daily bars for stocks, benchmarks, commodities and compute.
  - name: Intelligence
    description: Narratives, the validated claim graph, scenario simulation.
  - name: Analytics
    description: Correlation and charting over any catalog series.
paths:
  /api/v1/companies/{id}/financials/as-filed:
    get:
      tags:
        - Financial Statements
      summary: Statements as filed
      description: >-
        The statement exactly as the company filed it, across its whole history:
        every line item it ever printed (one row per printed caption — a renamed
        line is a new row, a discontinued line keeps its row and the period it
        was last used), one column per reporting period, values in units as
        filed. Captions, order and section headers come from the filing's own
        rendered statement page for inline-XBRL filings (2019→) and from its
        label linkbase before that; printed PDF / HTML statements serve through
        the same shape.
      operationId: get-statements-as-filed
      parameters:
        - name: id
          in: path
          required: true
          description: >-
            Ticker symbol (e.g. NVDA), numeric SEC CIK (zero-padding optional),
            or the platform key of a non-SEC issuer (e.g. XSAU000001 — the `cik`
            field of the company payload). A bare ticker always resolves to the
            SEC registrant.
          schema:
            type: string
        - name: statement
          in: query
          description: >-
            income_statement | comprehensive_income | balance_sheet |
            balance_sheet_parenthetical | cash_flow_statement | equity | all
            (all = every statement the company has, empty ones omitted).
          schema:
            type: string
            enum:
              - income_statement
              - comprehensive_income
              - balance_sheet
              - balance_sheet_parenthetical
              - cash_flow_statement
              - equity
              - all
        - name: period_type
          in: query
          description: annual, semiannual or quarterly.
          schema:
            type: string
            enum:
              - annual
              - semiannual
              - quarterly
            default: annual
        - name: reporting_basis
          in: query
          description: >-
            Quarterly only: individual = the discrete quarter; as_reported = the
            cumulative year-to-date column as printed.
          schema:
            type: string
            enum:
              - individual
              - as_reported
            default: individual
        - name: vintage
          in: query
          description: >-
            original = each period from the filing the company made for it (what
            it first reported); latest = each period from the newest filing that
            carries it (restated comparatives).
          schema:
            type: string
            enum:
              - original
              - latest
            default: original
        - name: format
          in: query
          description: >-
            json, csv or xlsx (csv/xlsx stream a download; with statement=all,
            one block or sheet per statement, xlsx adds a Provenance sheet).
          schema:
            type: string
            enum:
              - json
              - csv
              - xlsx
            default: json
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
        '400':
          description: Invalid parameter.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Missing or invalid bearer token.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Unknown company, country, symbol or resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Rate limited. Honour Retry-After.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - apiKey: []
        - cognitoIdToken: []
components:
  schemas:
    Error:
      type: object
      required:
        - error
      properties:
        error:
          type: string
          description: Human-readable message.
        code:
          type: string
          description: >-
            Stable machine code when present: unauthenticated, upgrade_required,
            rate_limited, quota_exceeded.
          enum:
            - unauthenticated
            - upgrade_required
            - rate_limited
            - quota_exceeded
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: X-API-KEY
      description: >-
        Astreus API key (pk_live_...), created on the Developers page in the
        terminal. Also accepted as `Authorization: Bearer pk_live_...`.
      x-default: pk_live_YOUR_KEY
    cognitoIdToken:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        Amazon Cognito ID token (token_use=id) for the Astreus user pool — the
        terminal's own session credential. API consumers should use an API key
        instead.

````