Quick start
1. Create an API key. In the web app, go to Settings → API Keys and click Create Key. Copy the key when it’s shown — it’s only displayed once. 2. Find your workspace id.Response format
Every successful response wraps its payload in adata object:
error object — see Errors.
Conventions
| Convention | Detail |
|---|---|
| Amounts | Decimal strings in the workspace currency, e.g. "-12.34". Negative = money out, positive = money in. No milliunits, no cents-as-integers. |
| Dates | YYYY-MM-DD strings. Budget months are YYYY-MM. |
| Ids | Opaque strings returned by the API. Pass them back exactly as received. |
| Field case | All request and response fields are snake_case. |
| Writes | POST creates, PATCH partially updates (send only the fields you want to change), DELETE deletes. |
| Currency | Workspace-scoped responses include a top-level currency code so you always know what unit amounts are in. |
Endpoints at a glance
| Resource | Operations |
|---|---|
/user | Get the authenticated user |
/workspaces | List and get workspaces |
/workspaces/{id}/accounts | List, get, create, update, close, delete accounts |
/workspaces/{id}/transactions | List, get, create (incl. transfers & splits), update, delete, restore |
/workspaces/{id}/merchants | List, get, create, rename, delete (with optional merge) |
/workspaces/{id}/categories | List, get, create, update, archive, delete; manage groups |
/workspaces/{id}/months/{month} | Read a budget month; set assigned amounts per category |
Prefer talking to your budget from an AI assistant instead of code? Kualia also ships a hosted MCP
server with OAuth — no API keys needed.