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

# Policy document file (PDF)

> The stored original PDF of a central-bank document (the copy the platform keeps of what the bank published), for the long reports whose extracted text loses tables and layout. 404 when no PDF copy is held.



## OpenAPI

````yaml https://astreus.ai/openapi.json get /api/v1/countries/{iso}/policy-text/documents/{documentId}/file
openapi: 3.1.0
info:
  title: Astreus API
  version: '2026-11-11'
  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, macro series (the
    current vintage: the latest published value for each period) and
    central-bank text, benchmark, commodity and compute-price series, and a
    source-linked claim graph with declared validation limits. Use `fact-source`
    and document metadata to retain available provenance. Publication and
    entitlement gates apply per dataset; inspect availability and tool
    limitations.


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


    Server-side use: `/api/v1` sends no CORS headers, so a browser page on
    another origin cannot call it. Call it from a server, a script or an agent,
    and keep the key there.


    Versioning: `info.version` is the UTC date the contract last changed, and
    every response carries it in `x-astreus-api-version`. Within `/api/v1`
    changes are additive; a field or parameter that will go is marked
    `deprecated` first and kept for at least 90 days. Policy:
    https://doc.astreus.ai/versioning.


    Not investment advice. See /terms.
  contact:
    email: saif@astreus.ai
  termsOfService: https://astreus.ai/terms
  license:
    name: 'Proprietary: Astreus terms of service'
    url: 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: Geo & Assets
    description: >-
      Physical assets on the map — what a company owns, operates or develops,
      where, since when, at what location precision, and the source behind each
      fact.
  - 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: 8-K items and exchange disclosures by item code,
      filterable 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: >-
      Economic series (the current vintage: the latest published value for each
      period) and central-bank text.
  - name: Market Data
    description: Daily bars for stocks, benchmarks, commodities and compute.
  - name: Intelligence
    description: Narratives and source-linked claims with declared validation status.
  - name: Analytics
    description: Charting over any catalog series.
paths:
  /api/v1/countries/{iso}/policy-text/documents/{documentId}/file:
    get:
      tags:
        - Macro
      summary: Policy document file (PDF)
      description: >-
        The stored original PDF of a central-bank document (the copy the
        platform keeps of what the bank published), for the long reports whose
        extracted text loses tables and layout. 404 when no PDF copy is held.
      operationId: get-policy-document-file-pdf
      parameters:
        - name: iso
          in: path
          required: true
          description: ISO 3166-1 alpha-2 country code (e.g. US).
          schema:
            type: string
        - name: documentId
          in: path
          required: true
          description: documentId from /policy-text/documents.
          schema:
            type: integer
            minimum: 1
      responses:
        '200':
          description: OK
          content:
            application/pdf:
              schema:
                type: string
                format: binary
        '400':
          description: >-
            A query parameter the route does not take (unknown_parameter), a
            value outside its type, enum or range (invalid_parameter), or a
            required one missing (missing_parameter); `param` names it. A
            request refused against this spec's parameter list is not metered.
          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
        - code
      properties:
        error:
          type: string
          description: Human-readable message. It may change; branch on `code`.
        code:
          type: string
          description: >-
            Stable machine code; every error carries one. unknown_parameter,
            invalid_parameter and missing_parameter come with `param`;
            unknown_parameter also with `allowed`. A route may add codes of its
            own (e.g. key_limit); treat an unlisted code by its HTTP status.
          enum:
            - unknown_parameter
            - invalid_parameter
            - missing_parameter
            - invalid_request
            - unauthenticated
            - upgrade_required
            - forbidden
            - not_found
            - conflict
            - too_large
            - unsupported_media_type
            - rate_limited
            - quota_exceeded
            - auth_unavailable
            - upstream_unavailable
            - internal_error
        param:
          type: string
          description: The query parameter at fault, when one is.
        allowed:
          type: array
          items:
            type: string
          description: 'With unknown_parameter: every query parameter the route takes.'
  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.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.