Skip to main content
The Categories API allows you to retrieve transaction categories for organizing income and expenses.

getAll

Retrieve all categories, optionally filtered by group and transaction type.

Parameters

string
Optional group ID to filter categories
enum
Optional transaction type to filter by: INCOME, EXPENSE, or TRANSFER

Response

Returns an array of category objects.
string
Category ID
string
Category name
string
Category icon identifier
enum
Transaction type: INCOME, EXPENSE, or TRANSFER
string | null
Parent category ID if this is a subcategory
string | null
Group ID if category is group-specific
string | null
User ID if category is user-specific (custom category)
Date
Creation timestamp
Date
Last update timestamp

getAllSubCategories

Retrieve all subcategories, optionally filtered by group and transaction type.

Parameters

string
Optional group ID to filter subcategories
enum
Optional transaction type to filter by: INCOME, EXPENSE, or TRANSFER

Response

Returns an array of subcategory objects (categories that have a non-null parentId). The structure is the same as the getAll endpoint response.

Category Hierarchy

Categories support a parent-child relationship:
  • Parent categories: Categories with parentId: null
  • Subcategories: Categories with a non-null parentId that references a parent category
Example hierarchy:

TypeScript Types

Constraints

  • Category name, type, group, and user combination must be unique
  • Categories can be:
    • System categories: Available to all users (userId: null, groupId: null)
    • Group categories: Shared within a group (groupId: set, userId: null)
    • User categories: Private to a specific user (userId: set)
  • Deleting a parent category cascades to all its subcategories