API Endpoints
All endpoints are prefixed with /api/v1.
Authentication
| Method | Endpoint | Auth | Description |
| POST | /auth/register | — | Register new account |
| POST | /auth/login | — | Login, get tokens |
| POST | /auth/logout | Yes | Invalidate tokens |
| POST | /auth/refresh | Cookie | Refresh access token |
| POST | /auth/password/forgot | — | Request password reset |
| POST | /auth/password/reset | — | Reset password with token |
Account
| Method | Endpoint | Auth | Description |
| GET | /account/profile | Yes | Get current user profile |
| PUT | /account/profile | Yes | Update profile |
| POST | /account/confirm-email | Yes | Confirm email with token |
| POST | /account/resend-email-confirmation | Yes | Resend confirmation email |
| POST | /account/change-email | Yes | Request email change |
| POST | /account/change-password | Yes | Change password |
| POST | /account/profile-picture/upload-url | Yes | Get presigned upload URL |
| POST | /account/profile-picture/confirm | Yes | Confirm upload |
| DELETE | /account/profile-picture | Yes | Delete profile picture |
Sessions
| Method | Endpoint | Auth | Description |
| GET | /account/sessions | Yes | List active sessions |
| DELETE | /account/sessions/{id} | Yes | Revoke single session |
| DELETE | /account/sessions | Yes | Revoke all sessions |
Markers (Map Module)
| Method | Endpoint | Auth | Module | Description |
| GET | /markers/locations | Yes | Map | Get all marker locations (minimal) |
| GET | /markers | Yes | Map | List markers (paginated) |
| GET | /markers/{id} | Yes | Map | Get marker detail |
| POST | /markers | Yes | Map | Create marker |
| PUT | /markers/{id} | Yes | Map | Update marker |
| DELETE | /markers/{id} | Yes | Map | Delete marker |
| POST | /markers/{id}/location | Yes | Map | Update location only |
| POST | /markers/{id}/restore | Yes | Map | Restore deleted |
| GET | /markers/{id}/images | Yes | Map | Get marker images |
| POST | /markers/{id}/images/upload-url | Yes | Map | Get image upload URL |
| PATCH | /markers/{markerId}/images/{imageId}/confirm | Yes | Map | Confirm image upload |
| DELETE | /markers/{id}/images/{fileId} | Yes | Map | Delete image |
| PATCH | /markers/{markerId}/images/order | Yes | Map | Reorder images |
Geocode
| Method | Endpoint | Auth | Description |
| GET | /geocode/search?q={query} | Yes | Search locations |
Budget (Budget Module)
Categories
| Method | Endpoint | Auth | Module | Description |
| GET | /categories | Yes | Budget | List categories |
| POST | /categories | Yes | Budget | Create category |
| PUT | /categories/{id} | Yes | Budget | Update category |
| DELETE | /categories/{id} | Yes | Budget | Delete category |
| POST | /categories/reorder | Yes | Budget | Reorder categories |
Budget Accounts
| Method | Endpoint | Auth | Module | Description |
| GET | /budget-accounts | Yes | Budget | List accounts |
| POST | /budget-accounts | Yes | Budget | Create account |
| PUT | /budget-accounts/{id} | Yes | Budget | Update account |
| DELETE | /budget-accounts/{id} | Yes | Budget | Delete account |
| POST | /budget-accounts/{id}/set-default | Yes | Budget | Set as default |
Transactions
| Method | Endpoint | Auth | Module | Description |
| GET | /transactions | Yes | Budget | List (paginated) |
| GET | /transactions/{id} | Yes | Budget | Get transaction |
| POST | /transactions | Yes | Budget | Create transaction |
| PUT | /transactions/{id} | Yes | Budget | Update transaction |
| DELETE | /transactions/{id} | Yes | Budget | Delete transaction |
| GET | /transactions/report/monthly | Yes | Budget | Monthly report |
| GET | /transactions/report/yearly | Yes | Budget | Yearly summary |
Recurring Transactions
| Method | Endpoint | Auth | Module | Description |
| GET | /recurring-transactions | Yes | Budget | List recurring |
| GET | /recurring-transactions/{id} | Yes | Budget | Get detail |
| POST | /recurring-transactions | Yes | Budget | Create recurring |
| PUT | /recurring-transactions/{id} | Yes | Budget | Update recurring |
| DELETE | /recurring-transactions/{id} | Yes | Budget | Delete recurring |
| POST | /recurring-transactions/{id}/toggle | Yes | Budget | Enable/disable |
Notes (Notes Module)
| Method | Endpoint | Auth | Module | Description |
| GET | /notes | Yes | Notes | List notes |
| GET | /notes/{id} | Yes | Notes | Get note detail |
| POST | /notes | Yes | Notes | Create note |
| PUT | /notes/{id} | Yes | Notes | Update note |
| DELETE | /notes/{id} | Yes | Notes | Delete note |
| POST | /notes/{id}/pin | Yes | Notes | Toggle pin |
| POST | /notes/{id}/items | Yes | Notes | Add item |
| PUT | /notes/{id}/items/{itemId} | Yes | Notes | Update item |
| POST | /notes/{id}/items/{itemId}/toggle | Yes | Notes | Toggle completed |
| DELETE | /notes/{id}/items/{itemId} | Yes | Notes | Delete item |
| POST | /notes/{id}/items/reorder | Yes | Notes | Reorder items |
Group
| Method | Endpoint | Auth | Description |
| GET | /group/members | Yes | List group members |
Administration (Admin Only)
| Method | Endpoint | Auth | Description |
| GET | /users | Admin | List all users |
| PUT | /users/{id}/status | Admin | Change user status |
| GET | /groups | Admin | List all groups |
| POST | /groups | Admin | Create group |
| PUT | /groups/{id} | Admin | Update group |
Files
| Method | Endpoint | Auth | Description |
| GET | /files/{id}/status | Yes | Get file processing status |