list_transactionsRead-onlyFind the transactions still waiting to be categorized
You just imported a statement, or it's been a few weeks, and you want to know what's actually sitting in the inbox waiting to be turned into real bookkeeping.
After a statement comes in through import_statement, its rows land in a book's inbox rather than straight onto the ledger — this is how you look at that inbox. Filter by status to separate what still needs attention ("unposted") from what has already been categorized and written to the ledger ("posted"). Add a date range or a case-insensitive search against the description to narrow further, and you can scope to one specific bank account.
This is usually the first thing an assistant checks before doing any categorization work: what's outstanding, and how much of it. It's also the natural way to answer a plain question like "did that Home Depot charge from last week show up yet?" without digging through a statement PDF again.
Each result shows the amount, the date, description, its current status, and — if it's already posted — the journal entry it became. That last field is what lets reverse_entry and general_ledger connect a bank row back to the accounting behind it.
What this does not do
- Returns at most 200 rows per call, and says so when there may be more — for a large statement or a wide date range, you may need to narrow the filter rather than expecting one call to return everything.
- Search matches only the transaction description, not memo text or category names.
Arguments
| Name | Type | Required | What it is |
|---|---|---|---|
bookId | uuid | Required | — |
status | "unposted" | "posted" | Optional | — |
from | string | Optional | — |
to | string | Optional | — |
search | string | Optional | Case-insensitive match against the description |
bankAccountId | uuid | Optional | — |
limit | integer | Required | — |
Generated from the tool definition, so it cannot describe arguments the tool does not accept. Unrecognised arguments are rejected rather than ignored.
Common questions
- What does "unposted" actually mean?
- It means the transaction has been imported but hasn't been assigned to an account yet — it sits in the inbox until categorize_transactions turns it into a journal entry.
- Why did I only get 200 results back?
- That's the cap on a single call. If your date range or filter is wide enough to have more than 200 matching transactions, narrow the range or add a search term to see the rest.
- Can I see transactions across every bank account at once?
- Yes — leave bankAccountId off and it returns transactions from every bank account in the book, filtered by whatever status, date, or search terms you give it.