API

Create budget

Create a budget.

Creates a budget (max 3 owned for Free, 20 for Pro/Ultra). Required: name, baseCurrency, monthlyNetIncome, refillDay. Omit boxes for an empty shell, or pass nested boxes / expenses for a one-shot import (max 3000 nested items; 30 boxes / budget; 100 expenses / box).

POST/v1/create_budget

Body

FieldTypeRequiredDefaultDescription
idempotencyKeystringYes—Client-generated key (1–128 chars: letters, digits, . _ : -). Same key + same body replays; different body returns 409. Prefer Idempotency-Key HTTP header when calling the Tools API.
namestringYes—Display name for the new budget (max 100 characters).
baseCurrencystringYes—ISO 4217 currency code for the budget.
monthlyNetIncomenumberYes—Monthly net income in base currency (0–3000000000).
refillDaynumberYes—Day of month (1–31) when unallocated refill happens.
citystringNo—Optional city label for cost-of-living context (max 100 characters).
unallocatedAmountnumberNo0Starting unallocated balance in base currency (0–1000000).
boxesarrayNo—Optional nested boxes, each with name and optional expenses[], for a one-shot import (max 3000 nested items total).

No silent defaults for required fields — omitting them returns 400. At the budget cap returns resource_limit.

Response data

FieldTypeDescription
idstringId of the newly created budget.
namestringHuman-readable name shown in the app.
baseCurrencystringISO 4217 currency code for the budget.
refillDaynumberDay of month for refill (1–31).
citystringOptional city used for cost-of-living context; may be null.
boxesarrayPresent when nested boxes were created (ids + nested expenses).