# Statements

> Balance sheet, income, cash flow and comprehensive income statements as filed, one document per filing and statement.

```text
GET /v1/companies/{id}/statements
```

Each document is one statement from one filing, exactly as the company tagged it: every tag, its labels, its position, and its values. Nothing is normalized. Newest filing first. The source is the SEC's Financial Statement Data Sets.

```bash
curl -H "X-API-Key: $BELFORT_API_KEY" \
  "https://belfort-data-api.vercel.app/v1/companies/AAPL/statements?statement=BS&form=10-K&limit=2"
```

## Parameters

| Parameter | Values | Default |
|---|---|---|
| `statement` | `BS` balance sheet, `IS` income, `CF` cash flow, `CI` comprehensive income | All four |
| `form` | A filing form, such as `10-K` or `10-Q`. | All periodic forms |
| `limit` | 1–20 documents per page. | 4 |
| `cursor` | The previous page's `meta.next_cursor`. | |

Statements come from periodic forms only: 10-K, 10-Q, 20-F, 40-F, 10-KT and their amendments.

## One document

| Field | Meaning |
|---|---|
| `accession`, `filing_url` | The filing, and its page on EDGAR. |
| `statement` | `BS`, `IS`, `CF` or `CI`. |
| `form`, `filed` | The form and the day it was filed. |
| `amends` | `true` when the filing is an amendment. The data sets don't name the filing it amends. |
| `fiscal_year`, `fiscal_period` | The fiscal labels, when stated. |
| `period` | The filing's balance-sheet date, rounded by the SEC to the nearest month end. |
| `entries` | One entry per tag on the statement. |

Each entry:

| Field | Meaning |
|---|---|
| `tag` | The XBRL tag. |
| `taxonomy` | The tag's taxonomy and version, such as `us-gaap/2024`. |
| `is_custom` | `true` when the company defined the tag itself. |
| `labels`, `line_numbers` | The company's own labels for the tag and their positions on the statement, in order. |
| `negating` | `true` when the filing displays the tag with the opposite sign. |
| `values` | The tag's values, one per period and unit. |

Each value:

| Field | Meaning |
|---|---|
| `period_end` | The period's end, rounded by the SEC to the nearest month end. |
| `quarters` | The period's length in whole quarters. See below. |
| `value` | The figure as tagged, with no sign change. `null` when the filing left it blank. |
| `display_value` | The figure with the sign the filing displays: `value`, or its opposite when `negating` is true. |
| `unit` | Its unit, such as `USD` or `USD/shares`. One tag and period can be filed in two units, and both are listed. |

## Reading `quarters`

| `quarters` | Means |
|---|---|
| 1, 2, 3, 4 and more | About that many quarters. An eight-month period reads 3. |
| 0 on a balance sheet | A balance at a point in time. |
| 0 on an income or comprehensive income statement | A period of under about six weeks, such as a stub period. |
| 0 on a cash flow statement | Usually opening or closing cash, a balance. Sometimes a period of under about six weeks. The value doesn't say which. |

## What to expect

- **Dimensional lines are left out; totals are kept.** Segment lines, such as Apple's Products and Services net sales, aren't in the statement. Use [Segments](/datasets/segments/) for revenue by segment.
- **Dates are rounded.** The SEC rounds `period_end` to the nearest month end, so Apple's year ending Sep. 27, 2025 reads 2025-09-30. Metric points keep the filed date, so a metric and a statement for one period can differ by days.
- **Labels hold ASCII only.** `stockholders’` reads `stockholders`, and accented names lose letters.
- **A statement can hold values its page doesn't print**, such as a note's figure in another currency. Take a value by its period and unit, and don't assume every value is a printed line.
- **Statements can be about a quarter behind.** The SEC publishes the data sets once a quarter.

The full list is in [Known limits](/known-limits/#statements), and the fidelity checks are on [Quality](/quality/#statements).

---
Source: https://docs.belfortagent.xyz/datasets/statements/
