apply_automation_rule
ChatGPTApply an automation rule to transactions that already exist — rules otherwise only run on new ones. Previews the matches by default; pass dry_run false to actually apply them.
categorize_transaction
ChatGPTSet (or clear) the category of any transaction, including bank/imported ones. Marks the category as manually assigned. Pass category_id: null to remove the category.
create_account
ChatGPTCreate a manual account of any type, optionally with today's balance. Loans and properties take their own details. Bank-connected accounts cannot be created here: the user connects those in the app.
create_automation_rule
ChatGPTCreate an automation rule that auto-applies a category and/or labels to matching transactions. At least one action (action_category_id or action_label_ids) is required; see rules_json for its format.
create_balance
ChatGPTRecord a balance snapshot on a non-connected (manual) account, replacing any snapshot for that date. Connected accounts are rejected: their balances come from the bank sync.
create_budget
ChatGPTCreate a budget: a spending limit per period over a set of categories and/or labels. Transactions already in range are attached in the background, so spent_amount may still be filling in.
create_category
ChatGPTCreate a category. A child (parent_id set) inherits its parent type and cashflow direction; a root follows its own type. Categories can be nested up to 3 levels deep.
create_label
ChatGPTCreate a label. Names are unique within the space.
create_transaction
ChatGPTCreate a manual transaction on any account, bank-connected ones included. Amount is signed: negative for an expense, positive for income. Nothing dedups it, so add only what the bank will not sync.
delete_automation_rule
ChatGPTDelete an automation rule. Transactions it already categorized keep their category; the rule simply stops running on future transactions.
delete_budget
ChatGPTDelete a budget, with its periods and their spending history. The transactions themselves are untouched — only the budget that was watching them goes away.
delete_category
ChatGPTDelete a category, uncategorizing its transactions. strategy decides its children: "reparent" (default) lifts them to its parent, "promote" makes them roots, "cascade" deletes the subtree too.
delete_label
ChatGPTDelete a label. It is removed from every transaction it was attached to.
delete_transaction
ChatGPTDelete a manually-created transaction. Only manual transactions can be deleted; bank/imported ones cannot, and neither can one part of a split.
get_cashflow
ChatGPTThe app's full cashflow picture for a date range: income/expense/savings/investment summary (current vs previous), the category flow sankey and the monthly trend. Covers the whole account.
get_net_worth
ChatGPTNet worth for a date range: the current total vs the previous period, plus each account's balance evolution. Set granularity to "monthly" (default) or "daily". Covers the whole account.
label_transaction
ChatGPTAdd and/or remove labels on any transaction, including bank/imported ones. Pass add_label_ids and/or remove_label_ids.
list_accounts
ChatGPTList the user's accounts in a space and whether each is bank-connected. Bookkeeping records only: no tool moves money between them or to anyone; the user does that at their bank.
list_achievements
ChatGPTList the user's medals: the ones earned, the next rung to aim at on each track with how far along they are, and the ones beyond it, which stay nameless. Plus the unlocked count and saving streak.
list_automation_rules
ChatGPTList the user's automation rules in a space, lowest priority number first. Use the ids with update_automation_rule, delete_automation_rule and apply_automation_rule.
list_budgets
ChatGPTList the user's budgets with the current period's allocated, spent and remaining amounts, plus the categories and labels each one tracks. Covers the whole account.
list_categories
ChatGPTList the user's categories in a space. Categories form a tree via parent_id; use the ids to filter search_transactions or spending_by_category.
list_labels
ChatGPTList the user's labels in a space. Use the ids with label_transaction or automation-rule label actions.
list_spaces
ChatGPTList the spaces the user can access (personal and shared). Pass a space id to the other tools' space argument to query a specific one.
merge_transaction_splits
ChatGPTMerge a split back into the single transaction it came from. Pass any one of its parts. The category, labels and notes on every part are lost.
search_transactions
ChatGPTSearch and filter the user's transactions by text, category, account, label, date range and amount. Use it to analyse spending, or to find recurring charges by grouping results by merchant.
spending_by_category
ChatGPTExpense spending rolled up by category for a date range, across the user's whole account. Without parent_category_id it returns root categories; pass one to drill into its children.
split_transaction
ChatGPTSplit one transaction into 2-20 parts, each with its own category and labels. Works on bank transactions too. The parts must add up to the original and all move money the same way.
update_account
ChatGPTEdit an account: name, type, currency, bank, ownership share and the loan/property details. Only the fields you pass change. On a bank-connected account only the name and ownership can change.
update_automation_rule
ChatGPTEdit an automation rule. Only the fields you pass are changed. The rule must always keep at least one action (a category or labels). See create_automation_rule for the rules_json format.
update_budget
ChatGPTRename a budget or change its limit; only the fields you pass are changed. Its period length, start day, rollover and tracked categories are fixed — delete and recreate it to change those.
update_category
ChatGPTEdit a category. Only the fields you pass are changed. Moving it under a parent (or clearing parent_id to make it a root) re-derives its type/cashflow and cascades the type to its descendants.
update_label
ChatGPTEdit a label. Only the fields you pass are changed.
update_transaction
ChatGPTEdit a transaction; only the fields you pass change. Notes and category work on any transaction, bank/imported ones included; the other fields only on manually-created ones.