# statements.list

List the original statement files Oatmilk keeps (uploaded PDF and photo statements, Wise's own monthly statement PDFs, and CSV exports), each with its account, bank, last four digits, period, balances and status: queued, reading, imported (with how many lines were new and how many were already in the books), review (with its plain reason and reasonCode; a statement waiting on its account also has suggestedAccountId, the likeliest existing account, and newAccount, an account drafted from the statement with name, provider, currency, lastFour and accountType, when its number isn't saved on any account; reasonCode ACCOUNT_NEW means no account Oatmilk has could be it), duplicate (of which statement), kept or failed. Also says, for every account and month, whether a statement covers the whole month (statement), part of it (partial), only lines synced from Wise (feed), nothing (missing) or a time before the account's first activity (before). Each file also says whether a PDF can be downloaded (pdf: original, or rendered by Oatmilk from Wise's statement data, a CSV or a photo), how its lines were read (readWith: vision, or text for a reading from the PDF's text layer made before vision), the reader's own warnings, a person's mark (flagged with a note, or checked) and checks: why it waits for a person (review, failed, flagged, old_reader, unsure). Wise sync data is listed once per account and window (the newest copy). Filter with from and to (up to 36 months; the last 12 when left out), or allPeriods: true to find files across the entire saved history, accountId or accountIds (up to 50), includeCoverage: false for only the file list without account-month coverage (coverageIncluded: false and empty month grids; omitted or true retains full coverage), bank, status (or attention for review and failed, or check for every file that waits for a person; toCheck counts them), search, limit and offset. Read-only.

`GET | POST /api/v1/accounting/statements.list`

Permissions: `accounting:read` · Roles: admin, finance

MCP tool: `accounting_statements_list`

## Fields

| Field | Type | Required | Notes |
| --- | --- | --- | --- |
| `from` | string (date) |  | The first date to include, as YYYY-MM-DD. |
| `to` | string (date) |  | The last date to include, as YYYY-MM-DD. |
| `accountId` | string (ID) |  | The ID of a bank, card or payment account, from accounts.list. |
| `accountIds` | array of strings (ID) or string |  |  |
| `bank` | string |  | 1–60 characters. |
| `status` | enum |  | Only include records with this status. One of: `queued`, `reading`, `imported`, `review`, `duplicate`, `kept`, `failed`, `attention`, `check`. |
| `search` | string |  | Text to search for. at most 200 characters. |
| `allPeriods` | boolean |  |  |
| `includeCoverage` | boolean |  | Also include coverage. |
| `limit` | integer |  | How many results to return at most. 1 to 200. Default `100`. |
| `offset` | integer |  | How many results to skip, for the next page of a list. 0 to 100000. Default `0`. |

## Example request

```bash
curl https://app.getoatmilk.com/api/v1/accounting/statements.list \
  -H "Authorization: Bearer $OATMILK_API_KEY"
```

Reference page: https://app.getoatmilk.com/docs/api/statements.list
