Welcome to the BudgetBuddy API documentation. This document provides a comprehensive guide to consuming our backend services.
The API is served under the /api prefix of the application.
Most endpoints require authentication via Clerk. Ensure you are logged in or provide a valid Clerk session token in your requests.
GET /api/transactions/search
Search and filter transactions with pagination.
Query Parameters:
| Parameter | Type | Description | Default |
|---|---|---|---|
query |
string | Full-text search on description and notes | - |
tags |
string | Comma-separated list of Tag IDs | - |
category |
string | Filter by category name | - |
type |
string | income, expense, or investment |
- |
minAmount |
number | Minimum amount | - |
maxAmount |
number | Maximum amount | - |
from |
date | Start date (ISO format) | - |
to |
date | End date (ISO format) | - |
page |
number | Page number | 1 |
pageSize |
number | Records per page | 100 |
Response (200 OK):
{
"transactions": [
{
"id": "uuid",
"description": "Coffee",
"amount": 5.50,
"formattedAmount": "$5.50",
"type": "expense",
"category": "Food",
"date": "2024-03-20T10:00:00Z",
"tags": [...],
"attachments": [...],
"splits": [...]
}
],
"pagination": {
"page": 1,
"pageSize": 100,
"totalCount": 125,
"totalPages": 2
}
}GET /api/transaction-history
Retrieve historical transaction data within a date range.
GET /api/transactions/deleted
Retrieve soft-deleted transactions available for recovery.
GET /api/dashboard/summary
Returns top-level stats (total income, expense, balance) for a specific date range.
GET /api/analytics/category-details
Returns deep-dive analytics for specific categories.
GET /api/workspaces/active
Returns the current user's active workspace.
GET /api/ai/nudge
Get personalized financial advice based on recent spending patterns.
GET /api/achievements
List earned and pending achievements for the current user.
The API uses standard HTTP status codes:
200 OK: Success400 Bad Request: Invalid parameters401 Unauthorized: Authentication required404 Not Found: Resource does not exist500 Internal Server Error: Server-side failure