Base URL
All API endpoints are served relative to your Breadbox host under the/api/v1/ prefix:
http://localhost:8080/api/v1/. Replace localhost:8080 with your actual host and port in all examples.
The curl snippets throughout this reference use
http://localhost:8080 as a stand-in for your Breadbox host. Substitute your real host and port before running them — if you’re exposing Breadbox beyond your local machine, see Remote hosting for guidance on picking a URL.Authentication
Every/api/v1/ endpoint requires an API key passed in the X-API-Key request header. See the Authentication page for full details on key scopes and management.
Response format
All successful responses return JSON with aContent-Type: application/json header.
List endpoints use one of two shapes depending on whether the endpoint is cursor-paginated:
-
Small, finite lists (
GET /accounts,GET /categories,GET /connections,GET /users,GET /reports) return a top-level JSON array. No pagination is applied — all matching records fit in a single response. -
Cursor-paginated lists (
GET /transactions,GET /rules) wrap results in a resource-named array alongsidenext_cursorandhas_more. See Pagination for the full iteration contract.
Error format
Every error response — regardless of HTTP status code — uses the same JSON envelope:code field is stable and machine-readable; match against it in client code. The message field is for humans and may change without notice.
Error codes
Amount convention
Breadbox uses the Plaid sign convention for all monetary amounts:- Positive amount — money leaving the account (debits, purchases, fees, payments)
- Negative amount — money entering the account (credits, deposits, refunds)
-2500.00.
Every amount field is accompanied by an iso_currency_code field (e.g., "USD"). Never aggregate amounts across different currencies — always filter to a single iso_currency_code before summing.