Transactions
All URLs below are relative to your site origin with the /api prefix (e.g. https://your-domain.com/api/v1/...).
All endpoints require Authorization: Bearer <api_key_or_jwt>.
GET /v1/transactions
Query parameters (all optional)
| Parameter | Type |
|---|---|
limit | number (1–100) |
cursor | string |
budget_id | uuid |
category_id | uuid |
subcategory_id | uuid |
start_date | string |
end_date | string |
sort | date, amount, or created_at |
order | asc or desc |
Request body: none
Response 200
{
"data": [
{
"id": "aa0e8400-e29b-41d4-a716-446655440005",
"budget_id": "770e8400-e29b-41d4-a716-446655440002",
"category_id": "880e8400-e29b-41d4-a716-446655440003",
"subcategory_id": null,
"amount": -42.5,
"date": "2025-04-02",
"details": "Weekly shop",
"created_at": "2025-04-02T18:30:00.000Z"
}
],
"pagination": {
"next_cursor": null,
"has_more": false
}
}POST /v1/transactions
Request body
{
"budget_id": "770e8400-e29b-41d4-a716-446655440002",
"category_id": "880e8400-e29b-41d4-a716-446655440003",
"subcategory_id": null,
"amount": -18.99,
"date": "2025-04-03",
"details": "Coffee"
}category_id, subcategory_id, and details may be omitted or null where allowed.
Response 201
{
"data": {
"id": "bb0e8400-e29b-41d4-a716-446655440006",
"budget_id": "770e8400-e29b-41d4-a716-446655440002",
"category_id": "880e8400-e29b-41d4-a716-446655440003",
"subcategory_id": null,
"amount": -18.99,
"date": "2025-04-03",
"details": "Coffee",
"created_at": "2025-04-03T08:15:00.000Z"
}
}GET /v1/transactions/{transactionId}
Response 200 — data is a single transaction object (same fields as in the list).
PATCH /v1/transactions/{transactionId}
Request body (all optional)
{
"category_id": null,
"subcategory_id": null,
"amount": -20,
"date": "2025-04-04",
"details": "Coffee + pastry"
}Response 200 — updated transaction object under data.
DELETE /v1/transactions/{transactionId}
Request body: none
Response 200
{
"data": {
"deleted": true
}
}