# Statement endpoints (`/data/<statement>`)

Five endpoints that fetch one specific statement directly by URL. Each is equivalent to [`POST /data/statement`](/documents/post-datastatement.md) with the matching `statement_type` — fixed by the URL path, so `role_label`, `statement_type` and `block_index` are not accepted in the body. Flat **28 credits** per successful debit, debited before the filing is resolved (a missing filing or statement is still charged); rate limit **120/minute**. Available for SEC filings only.

| Endpoint | Statement returned |
|---|---|
| `POST /data/income-statement` | Income Statement |
| `POST /data/comprehensive-income` | Statement of Comprehensive Income |
| `POST /data/balance-sheet` | Balance Sheet |
| `POST /data/cash-flow-statement` | Cash Flow Statement |
| `POST /data/equity-statement` | Statement of Stockholders' / Shareholders' Equity |

**Request body:** same fields as [`POST /data/statement`](/documents/post-datastatement.md) **minus** `role_label`, `statement_type` and `block_index`.

| Field | Type | Required | Notes |
|-------|------|----------|--------|
| `filing_id` | integer | Conditional | |
| `ticker` | string | Conditional | |
| `form_type` | string | No | Default `10-K`. |
| `fiscal_year` | integer | Conditional | |
| `quarter` | string | No | |
| `detail` | string | No | Default `"full"`. Same as `POST /data/statement`. See [Response detail](/documents/responses.md#response-detail). |

**Response:** identical to [`POST /data/statement`](/documents/post-datastatement.md) (`matches: [...]`). `matched_via.source` is always `"statement_type"`.

**Errors:** identical to [`POST /data/statement`](/documents/post-datastatement.md) (`statement_type` mode).

**Example request:**

```json
{ "ticker": "AAPL", "form_type": "10-K", "fiscal_year": 2024 }
```
