Authentication
All API endpoints require authentication via NextAuth session cookies. Include credentials in your requests.
Budgets
GET /api/budgetsList all budgets accessible by the current user
POST /api/budgetsCreate a new budget. Body: {name, currency, dateFormat, createDefaultCategories}
GET /api/budgets/[budgetId]Get budget details
PUT /api/budgets/[budgetId]Update budget settings
DELETE /api/budgets/[budgetId]Delete a budget
Accounts
GET /api/accounts?budgetId=...List accounts for a budget
POST /api/accountsCreate account. Body: {budgetId, name, type, onBudget, currency, balance}
GET /api/accounts/[id]Get account details
PUT /api/accounts/[id]Update account
DELETE /api/accounts/[id]Delete account
Categories
GET /api/categories?budgetId=...List categories for a budget
POST /api/categoriesCreate category. Body: {budgetId, groupId, name, monthlyBudget}
PUT /api/categories/[id]Update category
DELETE /api/categories/[id]Delete category
Transactions
GET /api/transactions?budgetId=...List transactions for a budget
POST /api/transactionsCreate transaction. Body: {budgetId, accountId, date, payee, categoryId, amount, memo}
PUT /api/transactions/[id]Update transaction
DELETE /api/transactions/[id]Delete transaction
User Preferences
GET /api/user/preferencesGet user preferences
PUT /api/user/preferencesUpdate user preferences
Response Format
All responses are JSON. Success responses return the requested data. Error responses include an error message:
{
"error": "Error message here"
}Status Codes
200- Success201- Created400- Bad Request401- Unauthorized403- Forbidden404- Not Found500- Internal Server Error
