Skip to main content
An Expense is money you have set aside for a known cost, so it is not part of your Free-to-Spend. The API uses the same three kinds the app does: regular Expenses, Goals, and credit card Expenses.

List Expenses

GET /v1/expenses · Required scope: data.read

Expense totals

GET /v1/expenses/summary · Required scope: data.read
Rollups across every Expense, including the total set aside.

Expense groups

GET /v1/expense-groups · Required scope: data.read
The groups Expenses are organised into.

List transfers

GET /v1/expense-transfers · Required scope: data.read
Past movements of money between Expenses.

Move money between Expenses

POST /v1/expense-transfers · Required scope: data.write
Moves an amount from one Expense to another. Nothing leaves your bank; this changes what the money is earmarked for.
Always send an Idempotency-Key here. This is the one endpoint where a duplicated request moves money twice, and the key is honoured all the way down to the ledger, so a retried request carrying the same key is recorded once.

Funding schedules

GET /v1/funding-schedules · Required scope: data.read
The paydays that fund your Expenses, and when each next runs. Read only in this version; running a schedule stays in the app.

Categories

GET /v1/categories · Required scope: data.read
The category catalog, for use as category_id on a transaction.

Envelope funding fields

Expense reads include priority, recurrence, and Fund Ahead settings, plus calculated reserve and contribution fields. The total balance already includes extraReserve; do not add it again. These additions do not expose internal funding-calculation or suggestion-resolution routes as personal-key endpoints. Use only documented public /v1 routes. Read the Fund Ahead guide.