category_override=true on affected transactions, which protects them from being changed by future rule runs or syncs. To restore a transaction to automatic categorization, use reset_transaction_category.
Prefer compound ops for review-driven categorization. When you’re closing a review (set category + remove
needs-review + leave a note) reach for update_transactions instead. It writes one linked annotation per transaction covering the whole edit, where categorize_transaction only writes the category set.session_id + reason.
categorize_transaction
Manually overrides one transaction’s category. Passtransaction_id plus either category_id or category_slug — slug is resolved automatically.
Mirrors: PATCH /api/v1/transactions/{id}/category
Parameters
Transaction UUID or short ID.
Category slug (e.g.
food_and_drink_groceries). Alternative to category_id.Category UUID or short ID. Takes precedence if both are supplied.
From
create_session.Brief rationale.
Example input
Example output
batch_categorize_transactions
Categorize multiple transactions at once. Each item is a{transaction_id, category_slug} pair. Max 500 items per request. Sets category_override=true on every affected transaction.
Mirrors: POST /api/v1/transactions/batch-categorize
Parameters
Array of
{transaction_id, category_slug} pairs. Max 500.Example input
Example output
bulk_recategorize
Moves every transaction matchingfrom_category (plus any other filters) to to_category. Requires to_category and at least one filter as a safety requirement. Sets category_override=true because this is an explicit action. Typical use: “move everything currently in general_merchandise for March to groceries”.
Mirrors: POST /api/v1/transactions/bulk-recategorize
Parameters
Destination category slug.
Only transactions currently in this category are matched.
Filter transactions whose
name contains this string.The legacy parameter names
target_category_slug (for to_category) and category_slug (for from_category) are still accepted but deprecated. Prefer the new names.Example input
Example output
reset_transaction_category
Removes a manual category override from one transaction and re-resolves its category from the automatic mapping + rule pipeline. Use this to undo acategorize_transaction action.
Mirrors: DELETE /api/v1/transactions/{id}/category
Parameters
Example input
Example output
apply_rules
Applies rules retroactively to existing transactions. Passrule_id to run one rule in isolation, or omit to run the full active-rule pipeline in priority-ASC order. Materializes set_category, add_tag, and remove_tag actions; add_comment is sync-only and does not fire here. Hit counts increment per condition match, matching sync-time semantics.
Parameters
UUID or short ID of a specific rule to apply. Omit to apply every active rule.