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

> ## Agent Instructions
> The Financial Datasets API is served at https://api.financialdatasets.ai. Authenticate with the `X-API-KEY` header; create keys at https://financialdatasets.ai. Agents can open and fund their own account without a dashboard: see https://docs.financialdatasets.ai/agents.md.
> Tool-using agents can call Financial Datasets without writing code through the hosted MCP server at https://mcp.financialdatasets.ai/.
> The OpenAPI spec at https://financialdatasets.ai/openapi.json is the source of truth for request and response schemas.
> The index of every docs page is at https://docs.financialdatasets.ai/llms.txt. Append .md to any docs URL to get that page as Markdown.

# As-Reported Financial Statements API

> Income statements, balance sheets, and cash flow statements as the company filed them: each line with its label, value, and place in the statement, from 2010 onward.

### Overview

The Financial Datasets as-reported financial statements API returns a company's income statement, balance sheet, and cash flow statement as the company filed them: every line in the company's own order, with its value and its place in the statement's hierarchy. The [standardized statements](https://docs.financialdatasets.ai/api/financials/income-statements.md) map every company onto the same fields so companies compare. The as-reported statements keep the lines the company actually reported. They are parsed directly from SEC filings ([data provenance](https://docs.financialdatasets.ai/data-provenance.md)) and are available from 2010 onward. UK and French companies are also covered, annual only ([market coverage](https://docs.financialdatasets.ai/market-coverage.md)).

You can call it as a REST endpoint with an API key, or from Claude, ChatGPT, Cursor, and other AI apps through the [MCP server](https://docs.financialdatasets.ai/mcp-server.md). [Pricing](https://www.financialdatasets.ai/pricing) starts at \$20.

To get started, please create an account and grab your **API key** at [financialdatasets.ai](https://financialdatasets.ai).

### Endpoints

| Statement | Endpoint |
| - | - |
| All three statements | `GET /financials/as-reported` |
| Income statement | `GET /financials/income-statements/as-reported` |
| Balance sheet | `GET /financials/balance-sheets/as-reported` |
| Cash flow statement | `GET /financials/cash-flow-statements/as-reported` |

### Filtering the Data

* `ticker`, `cik`, or `isin`: one is required.
* `market`: `US` (the default), `UK`, or `FR`. Or pass `isin` alone for a UK or French company.
* `period` (required): `annual` or `quarterly`. There is no `ttm`. UK and French companies are annual only.
* `limit`: the maximum number of periods to return. Each page holds up to 10 periods, linked by `next_page_url`.
* `report_period`, `report_period_gte`, `report_period_lte`, `report_period_gt`, `report_period_lt`: filter by report period date (`YYYY-MM-DD`).

### Response

Each period carries `ticker`, `report_period`, `fiscal_period`, `period`, `currency`, `accession_number`, and `filing_url`. The all-statements endpoint returns `income_statement`, `balance_sheet`, and `cash_flow_statement` objects per period under `financials`; any of the three may be `null` when data is missing. The single-statement endpoints return one statement per period under `income_statements`, `balance_sheets`, or `cash_flow_statements`.

Each statement holds `line_items`, a tree of nodes:

| Field | Meaning |
| - | - |
| `label` | The label as printed on the face of the filing. |
| `full_label` | The canonical taxonomy label for the underlying concept. |
| `value` | The numeric value as reported. `null` for section headers and subtotals with no direct value. |
| `children` | The nested line items beneath this row. |

### Example

```python As-Reported Financials theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
import requests

# add your API key to the headers
headers = {
    "X-API-KEY": "your_api_key_here"
}

# set your query params
params = {
    "ticker": "AAPL",       # stock ticker
    "period": "annual",     # annual or quarterly
    "limit": 2,             # number of periods to return
}

# make API request
url = "https://api.financialdatasets.ai/financials/as-reported"
response = requests.get(url, headers=headers, params=params)

# parse financials from the response
financials = response.json().get("financials")

# print the latest income statement as an indented tree
def print_lines(nodes, depth=0):
    for node in nodes:
        print("  " * depth + f"{node['label']}: {node['value']}")
        print_lines(node.get("children", []), depth + 1)

print_lines(financials[0]["income_statement"]["line_items"])
```

### FAQ

#### What is the difference between as-reported and standardized statements?

Standardized statements map every company onto the same fields, such as `revenue` and `net_income`, so you can compare companies. As-reported statements keep each company's own lines, order, and hierarchy, so you see what the filing shows.

#### How far back does the data go?

To 2010.

#### Which periods are available?

Annual and quarterly for US companies. Annual only for UK and French companies. There is no TTM.

#### Can an AI agent use this data?

Yes. Claude, ChatGPT, Cursor, and other MCP clients reach it through the [Financial Datasets MCP server](https://docs.financialdatasets.ai/mcp-server.md). Its financial statements tool returns the as-reported line items when `as_reported` is true.


## OpenAPI

````yaml GET /financials/as-reported
openapi: 3.0.1
info:
  title: Financial Datasets API
  description: >-
    Stock market API with real-time and historical financial data for 27,000+
    tickers over 30+ years. Financial statements, equity prices, insider trades,
    SEC filings, and more.
  version: 1.0.0
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
  contact:
    name: API Support
    url: mailto:support@financialdatasets.ai
    email: support@financialdatasets.ai
  termsOfService: https://financialdatasets.ai/terms-of-use
servers:
  - url: https://api.financialdatasets.ai/
    description: Production server
security:
  - X-API-KEY: []
tags:
  - name: Financial Statements
    description: Access to income statements, balance sheets, and cash flow statements
  - name: Market Data
    description: Real-time and historical price data
  - name: Company Information
    description: Company facts like ticker, name, and description
  - name: Earnings
    description: Earnings data and related information
  - name: News
    description: Real-time and historical news articles
  - name: SEC Filings
    description: SEC filings and regulatory documents
  - name: Insider Trades
    description: Insider trading activity and transactions
  - name: Activist Ownership
    description: Activist stakes from SEC Schedule 13D filings, in real time
  - name: Beneficial Ownership
    description: >-
      Holders of more than 5% of a company's shares, from SEC Schedules 13D and
      13G
  - name: Insider Ownership
    description: Insider ownership statements from SEC Forms 3 and 5
  - name: Institutional Holdings
    description: SEC-direct 13F equity holdings of institutional investment managers
  - name: IPOs
    description: >-
      Upcoming IPOs from SEC registration statements (Form S-1), with extracted
      pre-IPO financial statements
  - name: Index Funds
    description: >-
      ETF and index-fund holdings, weights, and the funds that hold a given
      security
  - name: Financial Metrics
    description: Financial ratios, metrics, and key performance indicators
  - name: Macroeconomics
    description: Real-time and historical macroeconomic data like interest rates
  - name: KPIs
    description: Sector-specific operational KPIs extracted from earnings releases.
  - name: Agent Account
    description: Self-serve account creation and funding for AI agents.
  - name: Search
    description: Search financial documents with one question and get cited passages back
paths:
  /financials/as-reported:
    get:
      tags:
        - Financial Statements
      summary: Get all as-reported financials
      description: >-
        Get the as-filed hierarchies for income statement, balance sheet, and
        cash flow statement in a single API call. Each period contains three
        nested objects; any one may be null if data is missing.
      operationId: getAllAsReportedFinancials
      parameters:
        - name: ticker
          in: query
          description: The ticker symbol. Required if cik or isin is not provided.
          required: false
          schema:
            type: string
        - name: market
          in: query
          description: >-
            The market the company is listed in: `US` (the default), `UK` or
            `FR`. For a UK or French company the statement comes back as the
            company printed it in its annual report, in its own order and
            wording.
          required: false
          schema:
            type: string
            enum:
              - US
              - UK
              - FR
        - name: exchange
          in: query
          deprecated: true
          description: >-
            Deprecated alias of `market`: `LSE` means `market=UK`. Existing
            requests keep working. France has no alias: name it with
            `market=FR`.
          required: false
          schema:
            type: string
        - name: isin
          in: query
          description: >-
            The ISIN (International Securities Identification Number) of a
            non-US listing. An alternative to `ticker` and `market`.
          required: false
          schema:
            type: string
        - name: period
          in: query
          description: The time period of the data.
          required: true
          schema:
            type: string
            enum:
              - annual
              - quarterly
        - name: limit
          in: query
          description: >-
            The maximum number of periods to return. This is the total across
            all pages, not a page size: each page holds up to 10 records, linked
            by `next_page_url`.
          schema:
            type: integer
            format: int32
        - name: cik
          in: query
          description: The Central Index Key (CIK) of the company.
          required: false
          schema:
            type: string
        - $ref: '#/components/parameters/ReportPeriod'
        - $ref: '#/components/parameters/ReportPeriodGte'
        - $ref: '#/components/parameters/ReportPeriodLte'
        - $ref: '#/components/parameters/ReportPeriodGt'
        - $ref: '#/components/parameters/ReportPeriodLt'
        - name: cursor
          in: query
          description: >-
            Opaque pagination cursor from a previous response's next_page_url.
            When provided, all other query parameters are ignored: the cursor
            carries the original request's filters. Treat it as opaque; do not
            construct or modify it.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: All as-reported financials response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AsReportedFinancialsResponse'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '402':
          $ref: '#/components/responses/PaymentRequiredError'
        '404':
          $ref: '#/components/responses/NotFoundError'
components:
  parameters:
    ReportPeriod:
      name: report_period
      in: query
      description: Filter by exact report period date in YYYY-MM-DD format.
      required: false
      schema:
        type: string
        format: date
    ReportPeriodGte:
      name: report_period_gte
      in: query
      description: >-
        Filter by report period greater than or equal to date in YYYY-MM-DD
        format.
      required: false
      schema:
        type: string
        format: date
    ReportPeriodLte:
      name: report_period_lte
      in: query
      description: Filter by report period less than or equal to date in YYYY-MM-DD format.
      required: false
      schema:
        type: string
        format: date
    ReportPeriodGt:
      name: report_period_gt
      in: query
      description: Filter by report period greater than date in YYYY-MM-DD format.
      required: false
      schema:
        type: string
        format: date
    ReportPeriodLt:
      name: report_period_lt
      in: query
      description: Filter by report period less than date in YYYY-MM-DD format.
      required: false
      schema:
        type: string
        format: date
  schemas:
    AsReportedFinancialsResponse:
      type: object
      properties:
        financials:
          type: array
          items:
            allOf:
              - $ref: '#/components/schemas/SegmentMetadata'
              - type: object
                properties:
                  income_statement:
                    type: object
                    nullable: true
                    description: As-reported income statement for this period.
                    properties:
                      line_items:
                        type: array
                        items:
                          $ref: '#/components/schemas/AsReportedNode'
                  balance_sheet:
                    type: object
                    nullable: true
                    description: As-reported balance sheet for this period.
                    properties:
                      line_items:
                        type: array
                        items:
                          $ref: '#/components/schemas/AsReportedNode'
                  cash_flow_statement:
                    type: object
                    nullable: true
                    description: As-reported cash flow statement for this period.
                    properties:
                      line_items:
                        type: array
                        items:
                          $ref: '#/components/schemas/AsReportedNode'
        next_page_url:
          type: string
          description: >-
            Absolute URL of the next page of results. Present only when more
            results remain; request it as-is to continue. Each page holds up to
            10 records.
    SegmentMetadata:
      type: object
      description: Common metadata fields for all segment responses.
      properties:
        ticker:
          type: string
          description: The ticker symbol.
        report_period:
          type: string
          format: date
          description: The reporting period.
        fiscal_period:
          type: string
          description: The fiscal period (e.g., Q1, Q2, Q3, Q4, FY).
        period:
          type: string
          enum:
            - quarterly
            - annual
          description: The time period.
        currency:
          type: string
          description: The reporting currency (e.g., USD, EUR, GBP).
        accession_number:
          type: string
          description: The SEC filing accession number.
        filing_url:
          type: string
          description: URL to the SEC filing.
    AsReportedNode:
      type: object
      description: >-
        A node in the as-reported financial statement tree. Recursively nested
        via `children`.
      properties:
        label:
          type: string
          nullable: true
          description: The label as printed on the face of the filing.
        full_label:
          type: string
          nullable: true
          description: The canonical taxonomy label for the underlying concept.
        value:
          type: number
          nullable: true
          description: >-
            The numeric value as reported. Null for section headers and
            subtotals with no direct value.
        children:
          type: array
          description: Nested line items beneath this row.
          items:
            $ref: '#/components/schemas/AsReportedNode'
    ErrorResponse:
      type: object
      properties:
        error:
          type: string
          description: A short error message.
        message:
          type: string
          description: A more detailed error message.
  responses:
    BadRequestError:
      description: Bad request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error: Bad Request
            message: Invalid request parameters
    UnauthorizedError:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error: Unauthorized
            message: Invalid API key provided
    PaymentRequiredError:
      description: The request requires a paid subscription
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error: Payment Required
            message: >-
              This endpoint requires a paid subscription. Please upgrade your
              plan.
    NotFoundError:
      description: The specified resource was not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error: Not Found
            message: Ticker XXXX not found
  securitySchemes:
    X-API-KEY:
      type: apiKey
      name: X-API-KEY
      description: API key for authentication.
      in: header

````

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