# Breadbox > Self-hosted financial data aggregation for households. Sync bank transactions from Plaid, Teller, and CSV into a PostgreSQL database you control, then expose it to AI agents via MCP and REST. Includes a CLI, an admin dashboard, scheduled Claude Agent SDK runs, and a transaction-rule engine for autonomous categorization. ## Docs - [What is Breadbox?](https://breadbox-mintlify-7401d007.mintlify.site/introduction.md): Breadbox syncs your household’s financial data into a PostgreSQL database you control, then exposes it through a built-in MCP server and a REST API. - [Install Breadbox](https://breadbox-mintlify-7401d007.mintlify.site/installation.md): The recommended one-liner installs Breadbox on macOS or Linux; alternate paths (Docker Compose, binary, go install, from source) are available for specialist needs. - [Make Breadbox reachable from the internet](https://breadbox-mintlify-7401d007.mintlify.site/installation/remote-hosting.md): Give your Breadbox instance a public HTTPS URL so MCP clients and bank webhooks can reach it. - [Updating Breadbox](https://breadbox-mintlify-7401d007.mintlify.site/installation/updating.md): Breadbox tells you when a new release ships and lets you update on your schedule. Updating is two commands, your data and secrets are untouched, and database migrations run automatically on the next start. - [Onboard your Breadbox instance](https://breadbox-mintlify-7401d007.mintlify.site/quickstart.md): After you've installed Breadbox, use this guide to run the first-run wizard, connect your first bank, and hook up an AI agent. - [Connect your bank accounts](https://breadbox-mintlify-7401d007.mintlify.site/connections/overview.md): Learn how Breadbox connects to your banks via Plaid, Teller, or CSV import, and how to manage connection health from the admin dashboard. - [Connect banks with Teller](https://breadbox-mintlify-7401d007.mintlify.site/connections/teller.md): Set up your Teller App ID and mTLS certificates, then link bank accounts using the Teller Connect flow from the Breadbox admin dashboard. - [Connect banks with Plaid](https://breadbox-mintlify-7401d007.mintlify.site/connections/plaid.md): Set up your Plaid developer account, enter credentials in the Breadbox setup wizard, and link your first bank account using the Plaid Link flow. - [Import transactions from CSV](https://breadbox-mintlify-7401d007.mintlify.site/connections/csv-import.md): Upload a CSV export from any bank, map columns to Breadbox fields, and import transactions for institutions not covered by Plaid or Teller. - [How Breadbox syncs, stores, and exposes transactions](https://breadbox-mintlify-7401d007.mintlify.site/transactions/overview.md): Learn how Breadbox syncs, stores, and represents transactions from your connected bank accounts, including field definitions and amount conventions. - [Categories: the two-level classification hierarchy](https://breadbox-mintlify-7401d007.mintlify.site/transactions/categories.md): Understand Breadbox's two-level category hierarchy, how categories are assigned, and how to override, manage, and import categories via the API. - [Tags](https://breadbox-mintlify-7401d007.mintlify.site/transactions/tags.md): Open-ended labels you attach to transactions — the primitive Breadbox uses to coordinate review, flagging, and other workflows between humans and agents. - [Rules: automate categorization, tagging, and annotations](https://breadbox-mintlify-7401d007.mintlify.site/transactions/rules.md): Build condition-based rules that categorize, apply tags, and leave annotations on transactions automatically — at sync time or retroactively — using Breadbox's recursive AND/OR/NOT condition engine with a multi-stage pipeline. - [Review workflow](https://breadbox-mintlify-7401d007.mintlify.site/transactions/review-workflow.md): Understand how Breadbox's needs-review tag, seeded rule, and tag-based workflow combine into a configurable review workflow you can extend or turn off. - [Give AI agents access to your finances with Breadbox MCP](https://breadbox-mintlify-7401d007.mintlify.site/mcp/overview.md): Breadbox exposes your household financial data to AI agents via the Model Context Protocol, letting Claude query accounts, transactions, and more. - [Set up MCP for Claude and AI agents](https://breadbox-mintlify-7401d007.mintlify.site/mcp/setup.md): Connect Claude (Desktop, web, mobile), Claude Code, ChatGPT, Codex, Openclaw, Manus, and other MCP-compatible agents to your Breadbox instance. - [MCP tools for querying financial data](https://breadbox-mintlify-7401d007.mintlify.site/mcp/tools.md): A human-readable walkthrough of the MCP tools an agent is most likely to use against Breadbox — so you know exactly what surface area you're granting an AI client. See the MCP Reference tab for the full enumeration. - [Scheduled agents](https://breadbox-mintlify-7401d007.mintlify.site/guides/scheduled-agents.md): Configure a scheduled Claude Agent SDK run inside Breadbox — define the prompt, set the schedule, attach prompt blocks, and inspect runs and transcripts. - [Configure Breadbox with environment variables](https://breadbox-mintlify-7401d007.mintlify.site/configuration/environment.md): Set environment variables to configure Breadbox, generate your encryption key, and understand how env vars override dashboard settings. - [App config and precedence](https://breadbox-mintlify-7401d007.mintlify.site/configuration/app-config.md): How Breadbox resolves settings — environment variables override the app_config table, which overrides built-in defaults — and the CLI surface for managing DB-sourced values. - [Create and manage API keys](https://breadbox-mintlify-7401d007.mintlify.site/configuration/api-keys.md): Generate scoped API keys to authenticate REST API and MCP calls, control access with read-only or full-access scopes, and revoke keys you no longer need. - [Back up and restore your Breadbox data](https://breadbox-mintlify-7401d007.mintlify.site/configuration/backup.md): Back up your PostgreSQL database and ENCRYPTION_KEY, restore from a dump or Docker volume snapshot, and automate daily backups with a cron script. - [API overview](https://breadbox-mintlify-7401d007.mintlify.site/api/overview.md): Base URL structure, authentication, JSON response format, error codes, amount sign conventions, and health check endpoints for the Breadbox REST API. - [API authentication](https://breadbox-mintlify-7401d007.mintlify.site/api/authentication.md): How to create and use Breadbox API keys, understand read_only and full_access scopes, pass the X-API-Key header, and handle auth errors. - [API pagination](https://breadbox-mintlify-7401d007.mintlify.site/api/pagination.md): How Breadbox cursor pagination works, how to pass the cursor parameter, default and max limits, and a complete pagination loop example. - [Liveness probe](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/health/liveness-probe.md): Returns HTTP 200 with no dependency checks. Suitable for load-balancer health checks. - [Liveness probe (alias)](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/health/liveness-probe-alias.md): Identical to `/health`. - [Readiness probe](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/health/readiness-probe.md): Verifies database connectivity and that the scheduler is running. - [Setup readiness report](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/health/setup-readiness-report.md): Returns a one-shot readiness/setup summary intended for the `breadbox doctor` CLI command. Any API key (read or write) works. Fields are best-effort — a per-row failure stays zero and the report still ships. The endpoint returns 503 only when the database is plainly unreachable. - [Get server version](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/version/get-server-version.md): Returns the running server version plus update-availability metadata. No authentication. - [Initiate the device-code flow](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/auth/initiate-the-device-code-flow.md): Mint a pending device-code pair. Unauthenticated — the device_code returned in the body is itself the credential the CLI uses to poll. The user_code is the human-facing 8-char approval code (formatted XXXX-XXXX) the operator enters on the verification page. - [Poll the status of a pending device code](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/auth/poll-the-status-of-a-pending-device-code.md): Unauthenticated; the device_code is the credential. Returns one of: - `200 {status: "authorization_pending"}` — keep polling - `200 {status: "approved", token: "bb_..."}` — token returned exactly once - `400 {error: {code: "EXPIRED"}}` — past the TTL - `400 {error: {code: "DENIED"}}` — operator refu… - [Identify the calling API key (whoami)](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/api-keys/identify-the-calling-api-key-whoami.md): Returns the API key record corresponding to the presented credential — name, prefix, scope, actor type/name. The full secret is never re-exposed. Used by `breadbox auth whoami` so agents and humans can confirm which identity the CLI is acting under. Any scope; the data only describes the caller's ow… - [List API keys](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/api-keys/list-api-keys.md): Returns metadata only (prefix, scope, last_used_at). The plaintext key is never returned. **Requires `full_access` scope.** - [Create API key](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/api-keys/create-api-key.md): Returns the plaintext key **once** in `key`. Persist it immediately — subsequent reads expose only the prefix. **Requires `full_access` scope.** - [Revoke an API key](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/api-keys/revoke-an-api-key.md): Soft-revokes by setting `revoked_at`. **Requires `full_access` scope.** - [List accounts](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/accounts/list-accounts.md): Returns every account visible to the API key. Bounded resource — no pagination. - [Get account](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/accounts/get-account.md) - [Update account](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/accounts/update-account.md): Partially update mutable fields on a single account. Omit a key to leave the column unchanged. Send an explicit empty string to clear `display_name`. - [Get account detail](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/accounts/get-account-detail.md): Returns the standard account fields plus per-currency balances and the most recent 25 transactions. - [List transactions](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/transactions/list-transactions.md): Filterable, cursor-paginated transaction query. - [Count transactions](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/transactions/count-transactions.md): Returns the count of transactions matching the same filter set as `GET /transactions`. - [Transaction summary](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/transactions/transaction-summary.md): Aggregate totals (income, spending, net) grouped by currency. - [Merchant summary](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/transactions/merchant-summary.md): Top merchants by spending, with counts and totals per currency. - [Get transaction](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/transactions/get-transaction.md) - [Delete transaction](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/transactions/delete-transaction.md): Soft-deletes the transaction (sets `deleted_at`). **Requires `full_access` scope.** - [Restore deleted transaction](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/transactions/restore-deleted-transaction.md): Clears `deleted_at`. **Requires `full_access` scope.** - [Reset transaction category](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/transactions/reset-transaction-category.md): Clears the manual override and re-runs rule attribution. **Requires `full_access` scope.** - [Set transaction category](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/transactions/set-transaction-category.md): Sets `category_id` (last-writer-wins; no provenance). **Requires `full_access` scope.** - [Batch categorize transactions](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/transactions/batch-categorize-transactions.md): Apply a category to many transactions in one call. **Requires `full_access` scope.** - [Bulk recategorize transactions](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/transactions/bulk-recategorize-transactions.md): Re-run categorization across a filtered set of transactions. Useful after rule changes. **Requires `full_access` scope.** - [Update transactions in bulk](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/transactions/update-transactions-in-bulk.md): Apply a patch (category, tags, attribution, etc.) to a filtered or explicit set of transactions. **Requires `full_access` scope.** - [Replace transaction metadata](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/transactions/replace-transaction-metadata.md): Atomically replace the entire free-form `metadata` JSONB object on a transaction. Pass `{}` to clear all keys. Touches only the metadata column. **Requires `full_access` scope.** - [Clear transaction metadata](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/transactions/clear-transaction-metadata.md): Reset the `metadata` object to `{}`. **Requires `full_access` scope.** - [Remove a transaction metadata key](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/transactions/remove-a-transaction-metadata-key.md): Delete one key from the `metadata` object. No-op if absent. **Requires `full_access` scope.** - [Set a transaction metadata key](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/transactions/set-a-transaction-metadata-key.md): Upsert one key in the transaction's `metadata` JSONB store, leaving other keys untouched. Creates the key if absent. **Requires `full_access` scope.** - [Flag a transaction](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/transactions/flag-a-transaction.md): Mark a transaction for human attention (sets `flagged_at`). Optional body `{"reason": "..."}` is recorded as a comment annotation. Retrieve flagged rows with `?flagged=true`. **Requires `full_access` scope.** - [Unflag a transaction](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/transactions/unflag-a-transaction.md): Clears `flagged_at`. **Requires `full_access` scope.** - [List annotations on a transaction](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/annotations/list-annotations-on-a-transaction.md): Annotations are append-only structured notes left by users or agents. - [Add a tag to a transaction](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/tags/add-a-tag-to-a-transaction.md): **Requires `full_access` scope.** - [Remove a tag from a transaction](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/tags/remove-a-tag-from-a-transaction.md): **Requires `full_access` scope.** - [List tags](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/tags/list-tags.md) - [Create tag](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/tags/create-tag.md): **Requires `full_access` scope.** - [Get tag](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/tags/get-tag.md) - [Delete tag](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/tags/delete-tag.md): **Requires `full_access` scope.** - [Update tag](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/tags/update-tag.md): **Requires `full_access` scope.** - [List comments on a transaction](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/comments/list-comments-on-a-transaction.md) - [Create comment](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/comments/create-comment.md): **Requires `full_access` scope.** - [Update comment](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/comments/update-comment.md): **Requires `full_access` scope.** - [Delete comment](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/comments/delete-comment.md): **Requires `full_access` scope.** - [List categories](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/categories/list-categories.md): Returns the household's categories (2-level hierarchy). Bounded resource. - [Create category](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/categories/create-category.md): **Requires `full_access` scope.** - [Export categories as TSV](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/categories/export-categories-as-tsv.md): Returns the full category table as `text/tab-separated-values` for backup or migration. - [Import categories from TSV](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/categories/import-categories-from-tsv.md): Bulk-create or upsert categories from a TSV body. **Requires `full_access` scope.** - [Get category](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/categories/get-category.md) - [Update category](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/categories/update-category.md): **Requires `full_access` scope.** - [Delete category](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/categories/delete-category.md): **Requires `full_access` scope.** - [Merge another category into this one](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/categories/merge-another-category-into-this-one.md): Reassigns transactions, rules, and child categories from `from_category_id` into the path category, then deletes the source. **Requires `full_access` scope.** - [List connections](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/connections/list-connections.md) - [Create a connection](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/connections/create-a-connection.md): Generic, provider-discriminated create. Supersedes `POST /connections/plaid/exchange`, `POST /connections/teller`, and `POST /connections/csv/import`. - [Get connection](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/connections/get-connection.md) - [Disconnect (soft-delete) a connection](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/connections/disconnect-soft-delete-a-connection.md): Sets `status='disconnected'`. Accounts/transactions are preserved with `connection_id` set to NULL. **Requires `full_access` scope.** - [Get connection status](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/connections/get-connection-status.md) - [Trigger sync on a connection](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/connections/trigger-sync-on-a-connection.md): Enqueues a manual sync. **Requires `full_access` scope.** - [Pause or resume a connection](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/connections/pause-or-resume-a-connection.md): Toggles automated sync. **Requires `full_access` scope.** - [Begin reauth flow](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/connections/begin-reauth-flow.md): Provider-specific reauth handshake. For Plaid this returns a `link_token` in update mode. **Requires `full_access` scope.** - [Complete reauth flow](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/connections/complete-reauth-flow.md): Confirms reauth and flips `status='active'`. **Requires `full_access` scope.** - [Mint a hosted-link session](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/connections/mint-a-hosted-link-session.md): Creates a hosted-link session and returns the URL an end-user should open in their browser to add a new bank connection. The response carries a one-time-only bearer `token` and a fully-qualified `url` (scheme + host + `/link/`). The token is **never** echoed back by `GET /connections/link/{id… - [Mint a re-auth hosted-link session for a connection](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/connections/mint-a-re-auth-hosted-link-session-for-a-connection.md): Creates a hosted-link session pinned to one existing bank connection for re-authentication. The user_id, provider, action (`"relink"`), connection_id, and `single_use=true` are all derived from the connection row — the request body has no say. - [Poll a hosted-link session](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/connections/poll-a-hosted-link-session.md): Returns the current state of a hosted-link session. Accepts either the canonical UUID or the 8-char short_id as `{id}`. - [List configured providers](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/connections/list-configured-providers.md): Returns the self-describing registry of bank-data providers this server supports, including which are configured, their capabilities, and the shape of credentials they accept on `POST /connections`. - [Get a single provider entry](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/connections/get-a-single-provider-entry.md): Same shape as one entry in `GET /providers`. - [Disable a provider](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/connections/disable-a-provider.md): Clears every `app_config` row tied to the named provider (Plaid: client_id/secret/env; Teller: app_id/env/cert/key/webhook secret) and re-runs the live provider init so the in-memory map drops the provider. Existing connections stay in the DB and continue to surface in listings, but sync attempts fa… - [Start a provider link session](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/connections/start-a-provider-link-session.md): Generic link-token start. Replaces the deprecated provider-specific link-token routes. - [Round-trip a provider credentials check](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/connections/round-trip-a-provider-credentials-check.md): Validates the server-side credentials for the named provider. CSV has no credentials and always returns ok=true. Plaid hits `/institutions/get` with a tiny payload; Teller validates the stored cert/key pair (file path or in-memory PEM) against `crypto/tls`. - [Issue a Plaid Link token](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/connections/issue-a-plaid-link-token.md): **Deprecated** — use `POST /api/v1/providers/plaid/link-session` instead. This route remains as a thin pass-through to the generic dispatch path. - [Exchange a Plaid public_token](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/connections/exchange-a-plaid-public_token.md): **Deprecated** — use `POST /api/v1/connections` with `provider:"plaid"` instead. This route remains as a thin pass-through to the generic dispatch path. - [Create a Teller connection](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/connections/create-a-teller-connection.md): **Deprecated** — use `POST /api/v1/connections` with `provider:"teller"` instead. This route remains as a thin pass-through to the generic dispatch path. - [Preview a CSV import](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/connections/preview-a-csv-import.md): Parses a CSV body and returns the inferred column mapping plus a sample of rows. No data is persisted. **Requires `full_access` scope.** - [Import a CSV](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/connections/import-a-csv.md): **Deprecated** — use `POST /api/v1/connections` with `provider:"csv"` instead. This route remains as a thin pass-through to the generic dispatch path. - [List app_config entries](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/settings/list-app_config-entries.md): Returns every row in the `app_config` table with the effective source (`env` / `db` / `default`). Secret-flagged values are masked unless `?reveal=true` is set. A denylist of keys (`ENCRYPTION_KEY` and the Teller cert/key PEM rows) is always masked and never writable via this surface — manage them t… - [Get a single config entry](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/settings/get-a-single-config-entry.md): Same masking + `?reveal=true` semantics as the list endpoint. - [Set a config value](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/settings/set-a-config-value.md): Writes the named value to the `app_config` table. The always-denied key list (`ENCRYPTION_KEY`, `teller_cert_pem`, `teller_key_pem`) returns `403 FORBIDDEN`. - [Remove a db-sourced config value](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/settings/remove-a-db-sourced-config-value.md): Drops the `app_config` row. The effective value falls back to env or the compile-in default. The always-denied key list returns `403`. - [Get provider configuration](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/settings/get-provider-configuration.md): Returns current Plaid + Teller config flags. Secrets are masked. - [Update Plaid configuration](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/settings/update-plaid-configuration.md): Persists Plaid credentials in the encrypted `app_config` table. Pass null for any field to clear it. **Requires `full_access` scope.** - [Update Teller configuration](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/settings/update-teller-configuration.md): Persists Teller credentials (application ID, certificate, key) in the encrypted `app_config` table. **Requires `full_access` scope.** - [List recent webhook events](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/webhooks/list-recent-webhook-events.md): Paginated list of inbound provider webhooks (event_type, status, connection_id, institution name, created_at). Filters: `provider`, `status`, `page`, `limit` (max 200). - [Re-trigger the sync the webhook would have caused](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/webhooks/re-trigger-the-sync-the-webhook-would-have-caused.md): The event row's raw payload is hashed-only, so the server can't re-deliver it verbatim — instead, it kicks a manual `Sync` against the connection the event was associated with. Events without a connection return 200 with `triggered: false`. - [Trigger a sync across all active connections](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/sync/trigger-a-sync-across-all-active-connections.md): **Requires `full_access` scope.** - [List sync logs](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/sync/list-sync-logs.md): Cursor-paginated list of sync runs across all connections. - [Get a sync log](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/sync/get-a-sync-log.md) - [Sync health overview](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/sync/sync-health-overview.md): Fleet-wide sync health (counts of `error`, `pending_reauth`, stale connections). - [Provider-grouped sync health](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/sync/provider-grouped-sync-health.md) - [Sync statistics](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/sync/sync-statistics.md): Sync run counts and timing aggregates over a configurable window. - [List rules](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/rules/list-rules.md): Cursor-paginated list of transaction rules. - [Create rule](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/rules/create-rule.md): **Requires `full_access` scope.** - [Batch create rules](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/rules/batch-create-rules.md): Create many rules in a single transaction. **Requires `full_access` scope.** - [Preview rule matches](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/rules/preview-rule-matches.md): Dry-runs a rule definition against existing transactions and returns the first N matches without persisting. **Requires `full_access` scope.** - [Apply all rules retroactively](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/rules/apply-all-rules-retroactively.md): Replays every enabled rule against the historical transaction set (set_category writes `category_id` directly — last-writer-wins, no provenance guard). **Requires `full_access` scope.** - [Get rule](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/rules/get-rule.md) - [Update rule](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/rules/update-rule.md): **Requires `full_access` scope.** - [Delete rule](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/rules/delete-rule.md): **Requires `full_access` scope.** - [Apply a single rule retroactively](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/rules/apply-a-single-rule-retroactively.md): **Requires `full_access` scope.** - [Rule sync history](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/rules/rule-sync-history.md): Recent sync-time evaluations of this rule. - [List recurring series (subscriptions)](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/series/list-recurring-series-subscriptions.md): Recurring series are thin, rule-maintained entities — surrogate id/short_id, name, type. Membership comes from `assign_series` rules, not a shipped detector. - [Assign or create a recurring series](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/series/assign-or-create-a-recurring-series.md): **Requires `full_access` scope.** Link transactions to a series, creating it if needed. Provide `series_id` to assign to an existing series, or `series_name` + `create_if_missing` to mint/resolve one by name (surrogate-first: the same name always resolves the same series). `transaction_ids` (max 50)… - [Get recurring series](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/series/get-recurring-series.md) - [Edit a recurring series](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/series/edit-a-recurring-series.md): **Requires `full_access` scope.** Partial update of a thin series' `name` and/or `type` — any subset may be present, omitted fields are unchanged. Renaming onto an existing live series name is rejected (the name is the series' unique mint key). An empty body is rejected. - [Link transactions to a recurring series](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/series/link-transactions-to-a-recurring-series.md): **Requires `full_access` scope.** Back-links transactions (max 50, NULL-fill only — never steals a charge already in another series) to the series. - [Unlink a transaction from a recurring series](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/series/unlink-a-transaction-from-a-recurring-series.md): **Requires `full_access` scope.** Detaches the transaction (clears its `series_id`). Errors (400) if the transaction isn't a current member of this series, so it can't touch another series. - [List counterparties](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/counterparties/list-counterparties.md): Counterparties are the canonical, cross-provider "other side" of a charge — merchants AND non-merchants (Venmo, people, employers). Each is a surrogate identity (id/short_id) + name + optional enrichment. Membership comes from `assign_counterparty` rules, not a normalizer. - [Create a counterparty](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/counterparties/create-a-counterparty.md): **Requires `full_access` scope.** Creates a counterparty by `name` with optional enrichment (`website_url`, `logo_url`, `category_id`, `mcc`). A duplicate live name is rejected — edit the existing one instead. To bind charges, use the assign endpoint or author an `assign_counterparty` rule. - [Get counterparty](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/counterparties/get-counterparty.md) - [Enrich a counterparty](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/counterparties/enrich-a-counterparty.md): **Requires `full_access` scope.** Partial enrichment update of `name`, `website_url`, `logo_url`, `category_id` (slug or short ID/UUID), and/or `mcc` — omitted fields are unchanged. An empty body, or an empty `name`, is rejected. - [Link transactions to a counterparty](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/counterparties/link-transactions-to-a-counterparty.md): **Requires `full_access` scope.** Binds transactions (max 50, NULL-fill only — never steals a charge already bound to another counterparty) to the counterparty. This is a one-off; for durable patterns author an `assign_counterparty` rule. - [Unlink a transaction from a counterparty](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/counterparties/unlink-a-transaction-from-a-counterparty.md): **Requires `full_access` scope.** Detaches the transaction (which must currently be bound to this counterparty) — the inverse of the link path. - [List users](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/users/list-users.md) - [Create user](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/users/create-user.md): **Requires `full_access` scope.** - [Get user](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/users/get-user.md) - [Delete user](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/users/delete-user.md): **Requires `full_access` scope.** - [Update user](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/users/update-user.md): **Requires `full_access` scope.** - [Wipe a user's connections, accounts, and transactions](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/users/wipe-a-users-connections-accounts-and-transactions.md): Destructive — disconnects every connection owned by this user and cascades through accounts/transactions per the FK policy. **Requires `full_access` scope.** - [List a user's login methods](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/users/list-a-users-login-methods.md): Returns admin login records (email/password, magic-link, etc.) for the target user. **Requires `full_access` scope.** - [Create a login method for a user](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/users/create-a-login-method-for-a-user.md): **Requires `full_access` scope.** - [Delete a login method](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/users/delete-a-login-method.md): **Requires `full_access` scope.** - [Update a login method](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/users/update-a-login-method.md): **Requires `full_access` scope.** - [Regenerate a login's API/magic-link token](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/users/regenerate-a-logins-apimagic-link-token.md): **Requires `full_access` scope.** - [List every login account (flat — no parent user_id)](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/users/list-every-login-account-flat-—-no-parent-user_id.md): Top-level convenience for the headless CLI. Identical payload to the nested per-user endpoint, but returns the full set across users. **Requires `full_access` scope.** `setup_token` is never echoed here. - [Delete a login account by its own id (no parent user_id required)](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/users/delete-a-login-account-by-its-own-id-no-parent-user_id-required.md): **Requires `full_access` scope.** - [Issue a fresh setup token for a login account](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/users/issue-a-fresh-setup-token-for-a-login-account.md): Flat alias for `/users/{user_id}/login/{login_id}/regenerate-token`. Response includes the plaintext `setup_token` exactly once. **Requires `full_access` scope.** - [List account links](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/account-links/list-account-links.md) - [Create account link](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/account-links/create-account-link.md): **Requires `full_access` scope.** - [Get account link](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/account-links/get-account-link.md) - [Update account link](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/account-links/update-account-link.md): **Requires `full_access` scope.** - [Delete account link](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/account-links/delete-account-link.md): **Requires `full_access` scope.** - [List transaction matches for a link](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/account-links/list-transaction-matches-for-a-link.md): Cursor-paginated list of matched transaction pairs across the linked accounts. - [Re-run reconciliation for a link](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/account-links/re-run-reconciliation-for-a-link.md): **Requires `full_access` scope.** - [Confirm a transaction match](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/account-links/confirm-a-transaction-match.md): Promotes an `auto` match to `confirmed`. **Requires `full_access` scope.** - [Reject a transaction match](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/account-links/reject-a-transaction-match.md): Marks the match `rejected`. **Requires `full_access` scope.** - [Manually pair two transactions](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/account-links/manually-pair-two-transactions.md): Creates a `confirmed` match between two transactions. **Requires `full_access` scope.** - [List agent reports](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/reports/list-agent-reports.md): Bounded by recency; not cursor-paginated. - [Submit a report](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/reports/submit-a-report.md): AI agents call this to record summaries or flagged transactions. **Requires `full_access` scope.** - [Unread report count](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/reports/unread-report-count.md) - [Mark all reports as read](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/reports/mark-all-reports-as-read.md): **Requires `full_access` scope.** - [Get a report](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/reports/get-a-report.md) - [Delete a report](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/reports/delete-a-report.md): **Requires `full_access` scope.** - [Mark report as read](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/reports/mark-report-as-read.md): **Requires `full_access` scope.** - [Mark report as unread](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/reports/mark-report-as-unread.md): **Requires `full_access` scope.** - [List agent definitions](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/workflows/list-agent-definitions.md): Returns all agent definitions with `last_run` inlined per definition. - [Create agent definition](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/workflows/create-agent-definition.md): Creates a Claude Agent SDK definition. Body includes the usual `name`, `slug`, `prompt`, `model`, `max_turns`, `max_budget_usd`, `tool_scope`, `allowed_tools`, `schedule_cron`, and the iter-30 `trigger_on_sync_complete` flag (fire after every successful sync, in addition to any cron schedule). - [Readiness probe for the agent subsystem](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/workflows/readiness-probe-for-the-agent-subsystem.md): Side-effect-free check that returns whether the agent subsystem is ready to fire a run — auth configured + sidecar binary discoverable. Used by the v2 SPA list page to surface onboarding hints inline. Does NOT call Anthropic; for a live round-trip use POST /workflows/test instead. - [Get agent subsystem settings](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/workflows/get-agent-subsystem-settings.md): Returns agent.* config from `app_config`. Token fields are masked (e.g. `"sk-ant-oat01-XXXXXXXX••••wxyz"`); the full plaintext never leaves the server. - [Update agent subsystem settings](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/workflows/update-agent-subsystem-settings.md): PATCH-style update of agent.* config. Nil fields are unchanged; empty-string for token fields clears the stored encrypted value. Token values are AES-256-GCM encrypted at rest. **Requires `full_access` scope.** - [Get one agent run](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/workflows/get-one-agent-run.md): Resolves by short_id or UUID. - [Set or clear the operator note on a run](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/workflows/set-or-clear-the-operator-note-on-a-run.md): Body: `{ "note": "..." }`. Empty string clears the field. Capped at 2000 chars. **Requires `full_access` scope.** - [Stream agent run transcript](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/workflows/stream-agent-run-transcript.md): Returns the NDJSON transcript file. 404 when not yet written. - [Get one agent definition](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/workflows/get-one-agent-definition.md) - [Delete an agent definition](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/workflows/delete-an-agent-definition.md): Historical runs preserved (FK SET NULL). **Requires `full_access` scope.** - [Partial update of an agent definition](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/workflows/partial-update-of-an-agent-definition.md): Omitted fields are unchanged. `connectors` is the list of enabled connector NAMES (from the global connector library); omitting the key leaves the set untouched, sending it replaces the set. **Requires `full_access` scope.** - [List runs for one agent](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/workflows/list-runs-for-one-agent.md): Offset-paginated run history. - [Enable an agent](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/workflows/enable-an-agent.md): Sets enabled=true. **Requires `full_access` scope.** - [Disable an agent](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/workflows/disable-an-agent.md): Sets enabled=false. **Requires `full_access` scope.** - [List runs across all agents](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/workflows/list-runs-across-all-agents.md): Cross-agent run history. Each row carries `agent_slug` + `agent_name` in addition to the standard run fields, so callers can render an agent column without a second fetch. Powers the v2 SPA's global `/v2/agents/runs` view. Same filters as `/workflows/{slug}/runs`, plus the optional `agent=` na… - [List the Workflow preset gallery](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/workflows/list-the-workflow-preset-gallery.md): Returns the code-defined Workflow presets, each annotated with whether it has been enabled (instantiated as a workflow). Presets are templates, not stored rows — a row exists only once the preset is enabled. - [Enable a Workflow preset](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/workflows/enable-a-workflow-preset.md): Instantiate a workflow from the preset (composes its base prompt, applies the preset defaults, stamps `source_template`). Optional body `{"enabled": true}` starts it immediately (default: paused for review). Returns the created workflow. **Requires `full_access` scope.** 409 if the preset is already… - [List recent errored agent runs across all agents](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/workflows/list-recent-errored-agent-runs-across-all-agents.md): Returns errored agent_runs from the last `hours` hours (default 24), joined with agent slug + name for deep-linking. Powers the v2 SPA's "Run-failed banner" on /v2/agents. Bare JSON array; most-recent first. - [Run the agent cleanup pass on demand](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/workflows/run-the-agent-cleanup-pass-on-demand.md): Synchronously runs the same prune pass the 3:15 AM cron does: deletes completed agent_runs older than `agent.run_retention_days` and prunes the matching `*.ndjson` transcripts under `agent.transcript_dir`. Returns the counts. Safe to call repeatedly — a no-op when nothing's eligible. **Requires `ful… - [Run the agent diagnostic smoke test](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/workflows/run-the-agent-diagnostic-smoke-test.md): Spawns the breadbox-agent sidecar with a tiny "say OK" prompt and returns the result. Bypasses agent_definitions, mints no API key, writes no agent_runs row. Cost-bounded to ~5¢. **Requires `full_access` scope.** - [Trigger an immediate agent run](https://breadbox-mintlify-7401d007.mintlify.site/api-reference/workflows/trigger-an-immediate-agent-run.md): Synchronously runs the named agent. Returns the resulting `agent_runs` row. Status may be `success`, `error`, or `timeout`. Optional body accepts `prompt_prefix` (prepends operator context to the saved prompt for this fire only) and `prompt` (replaces the saved prompt entirely for this fire — powers… - [MCP reference overview](https://breadbox-mintlify-7401d007.mintlify.site/mcp/reference/overview.md): Breadbox MCP transports, authentication, scope-based tool filtering, write-session requirements, and how MCP tools map to the REST API. - [MCP conventions](https://breadbox-mintlify-7401d007.mintlify.site/mcp/reference/conventions.md): Amount sign, compact IDs, cursor pagination, sessions, compound ops, and error shape — the cross-cutting rules every Breadbox MCP tool follows. - [Transaction read MCP reference](https://breadbox-mintlify-7401d007.mintlify.site/mcp/reference/transactions.md): MCP read tools for querying, counting, summarizing transactions and reading comments, matches, and annotations. - [Accounts and users MCP reference](https://breadbox-mintlify-7401d007.mintlify.site/mcp/reference/accounts.md): MCP read tools for listing bank accounts and family members — the ID-discovery tools most agent sessions start with. - [Category read MCP reference](https://breadbox-mintlify-7401d007.mintlify.site/mcp/reference/categories.md): MCP read tools for listing and exporting the category taxonomy. Category writes (import) live on a separate page. - [Tag read MCP reference](https://breadbox-mintlify-7401d007.mintlify.site/mcp/reference/tags.md): MCP read tool for listing tags. Tag writes live on the Tag writes page; tagging transactions lives on Transaction writes. - [Rule read MCP reference](https://breadbox-mintlify-7401d007.mintlify.site/mcp/reference/rules.md): MCP read tools for listing, filtering, previewing, and finding coverage for transaction rules: list_transaction_rules, query_transaction_rules, preview_rule, find_matching_rules. Rule writes live on a separate page. - [Connections and sync read MCP reference](https://breadbox-mintlify-7401d007.mintlify.site/mcp/reference/connections-sync.md): MCP read tool for inspecting connection health and sync status. - [Sessions](https://breadbox-mintlify-7401d007.mintlify.site/mcp/reference/sessions.md): How Breadbox binds MCP tool calls to auditable sessions, and how to attach per-call labels. - [Categorization MCP reference](https://breadbox-mintlify-7401d007.mintlify.site/mcp/reference/categorization.md): How to set, reset, and batch-apply transaction categories from MCP using update_transactions and apply_rules. - [Transaction write MCP reference](https://breadbox-mintlify-7401d007.mintlify.site/mcp/reference/transactions-write.md): Compound writes for category, tags, and comments on transactions. Categorization lives on its own page. - [Tag write MCP reference](https://breadbox-mintlify-7401d007.mintlify.site/mcp/reference/tags-write.md): Create, update, and delete tags. Attaching tags to transactions lives on Transaction writes. - [Rule write MCP reference](https://breadbox-mintlify-7401d007.mintlify.site/mcp/reference/rules-write.md): Create (single or batch), update, and delete transaction rules. Apply rules retroactively. - [Category write MCP reference](https://breadbox-mintlify-7401d007.mintlify.site/mcp/reference/categories-write.md): Import category definitions from TSV. Category reads live on the Categories page. - [Transaction match MCP reference](https://breadbox-mintlify-7401d007.mintlify.site/mcp/reference/matches.md): Confirm or reject auto-matched transaction pairs produced by account links. - [Connections and sync write MCP reference](https://breadbox-mintlify-7401d007.mintlify.site/mcp/reference/connections-write.md): Trigger syncs and manage account links. Connection read tools live on Connections & sync. - [Report MCP reference](https://breadbox-mintlify-7401d007.mintlify.site/mcp/reference/reports.md): Submit an agent report to the household dashboard. - [CLI overview](https://breadbox-mintlify-7401d007.mintlify.site/cli/overview.md): The breadbox command-line tool — what it is, the three build flavors, and where it fits alongside the REST API and MCP server. - [Install the CLI](https://breadbox-mintlify-7401d007.mintlify.site/cli/installation.md): Get the breadbox or breadbox-cli binary onto your machine — pre-built releases, building from source, and picking between the full, headless, and lite builds. - [CLI authentication](https://breadbox-mintlify-7401d007.mintlify.site/cli/authentication.md): How the breadbox CLI manages credentials — device-code login, paste-mode, local bootstrap, the hosts.toml file, and the BREADBOX_HOST and BREADBOX_TOKEN env vars. - [Output and exit codes](https://breadbox-mintlify-7401d007.mintlify.site/cli/output.md): How the breadbox CLI formats its output — human tables, JSON, NDJSON, field selection — and the exit codes scripts and agents can branch on. - [Command reference](https://breadbox-mintlify-7401d007.mintlify.site/cli/commands.md): Every breadbox CLI command grouped by noun — auth, server, accounts, transactions, categories, tags, rules, connections, sync, csv, providers, users, logins, reports, keys, config, backup, webhooks, and agent. - [Headless deployment](https://breadbox-mintlify-7401d007.mintlify.site/cli/headless.md): Patterns for driving Breadbox from agent hosts, CI runners, and remote scripts using the lite (breadbox-cli) build — same-host agents, remote agents, scheduled jobs. - [Agent automation](https://breadbox-mintlify-7401d007.mintlify.site/cli/agents.md): Drive the Claude Agent SDK subsystem from the CLI — list scheduled agents, trigger immediate runs, and smoke-test the sidecar binary. - [Using Breadbox with AI agents](https://breadbox-mintlify-7401d007.mintlify.site/guides/overview.md): The opinionated shape of how Breadbox is meant to be used day to day: data flows in, one or more agents review it on a cadence, you step in only when something needs a human. - [Breadbox in a nutshell](https://breadbox-mintlify-7401d007.mintlify.site/guides/breadbox-in-a-nutshell.md): A two-minute tour of the three primitives that every workflow is built from — Categories, Tags, and Rules — plus the seeded `needs-review` tag that ties them together. - [Understanding rules](https://breadbox-mintlify-7401d007.mintlify.site/guides/understanding-rules.md): A primer on the Breadbox rule DSL — how to build condition trees, what actions are available, and four worked examples you can adapt. - [Single routine reviewer](https://breadbox-mintlify-7401d007.mintlify.site/guides/single-routine-reviewer.md): The baseline agent workflow: one agent, one schedule, the `needs-review` tag. Covers the loop, the MCP tools involved, and a system prompt you can paste into your agent. - [Multi-agent reviewer flows](https://breadbox-mintlify-7401d007.mintlify.site/guides/multi-agent-reviewer.md): Two patterns for splitting the review queue across specialist agents — a delegator that re-tags work for downstream agents, and a flat set of specialists that filter by their own tags. - [Zelle / Venmo analysis](https://breadbox-mintlify-7401d007.mintlify.site/guides/zelle-venmo-analysis.md): Instructing an agent to categorize peer-to-peer transfers when the bank description is opaque — cross-referencing timing, amounts, and frequency, and asking humans for help when the signal isn't there. - [Gmail cross-referencing for bills](https://breadbox-mintlify-7401d007.mintlify.site/guides/gmail-cross-referencing.md): Use a Gmail MCP alongside Breadbox so an agent can confirm generic billers (PG&E, Comcast, Verizon) by matching the transaction amount to the billing email before categorizing. - [Tracking your subscriptions](https://breadbox-mintlify-7401d007.mintlify.site/guides/tracking-subscriptions.md): Breadbox detects recurring charges automatically and groups them into Series — confirm or reject the candidates, tag a whole subscription at once, and auto-join future charges with a rule. - [Recurring workflows with Openclaw](https://breadbox-mintlify-7401d007.mintlify.site/guides/openclaw-recurring-workflows.md): Use Openclaw's autonomous scheduling and sub-agent primitives to run Breadbox transaction triage, anomaly alerts, and session hygiene on a continuous cadence — without manual intervention. - [On-demand analysis](https://breadbox-mintlify-7401d007.mintlify.site/guides/on-demand-analysis.md): Ask Claude about your spending — prompt patterns that work, and the two gotchas (currency mixing, attribution) to watch for in the answers. - [Build a custom dashboard with Claude](https://breadbox-mintlify-7401d007.mintlify.site/guides/custom-dashboard-with-claude.md): Hand Claude the Breadbox API (or MCP) and have it generate a React artifact that renders your transaction data however you want it — a personal spending dashboard in a single prompt. - [Changelog](https://breadbox-mintlify-7401d007.mintlify.site/changelog.md): Release notes for every published version of Breadbox. ## OpenAPI Specs - [openapi](https://raw.githubusercontent.com/canalesb93/breadbox/main/openapi.yaml)