Docs

List transaction categories

GET /api/v1/programmatic/categories

GET/api/v1/programmatic/categories
Transactionsv1transactions:read

Returns active categories that can be assigned while parsing or creating transactions.

Parameters

NameInType Description
pagequerynumberOptional One-based result page. <page>
limitquerynumberOptional Maximum resources returned per page. <limit>
group_idquerystringOptional Return active categories from this category group only. <group_id>

Code examples

curl --request GET \
  --url 'https://api.tetri.app/api/v1/programmatic/categories?page=<page>&limit=<limit>&group_id=<group_id>' \
  --header 'Authorization: Bearer $TETRI_API_TOKEN'

Responses

200Active transaction categories and pagination metadata.
{
  "data": [
    {
      "type": "categories",
      "id": "<uuid>",
      "attributes": {
        "version": 0,
        "group_id": "<uuid>",
        "name": "Groceries",
        "icon_name": "shopping-cart",
        "icon_url": "https://cdn.tetri.app/icons/abc.webp",
        "accent_color": "emerald",
        "is_archived": false,
        "is_system": false,
        "aliases": [
          "coffee",
          "latte",
          "starbucks"
        ],
        "order": 0,
        "tx_count": 42,
        "created_at": "2026-07-12T12:00:00Z",
        "updated_at": "2026-07-12T12:00:00Z",
        "spent_agg": "<string>",
        "earned_agg": "<string>"
      }
    }
  ],
  "meta": {
    "pagination": "<string>"
  }
}
400Request parameters or payload failed validation. Inspect `code` and `message`.
{
  "statusCode": 400,
  "code": "PROGRAMMATIC_PAGINATION_MODE_CONFLICT",
  "message": "<string>",
  "error": "Bad Request",
  "request_id": "8cf64dcc-0f73-4f8d-a845-3d80c1040475"
}
401The personal access token is missing, invalid, expired, or revoked.
{
  "statusCode": 400,
  "code": "PROGRAMMATIC_PAGINATION_MODE_CONFLICT",
  "message": "<string>",
  "error": "Bad Request",
  "request_id": "8cf64dcc-0f73-4f8d-a845-3d80c1040475"
}
403The token lacks the required scope or no longer has workspace access.
{
  "statusCode": 400,
  "code": "PROGRAMMATIC_PAGINATION_MODE_CONFLICT",
  "message": "<string>",
  "error": "Bad Request",
  "request_id": "8cf64dcc-0f73-4f8d-a845-3d80c1040475"
}
429The credential exceeded its request rate limit.
{
  "statusCode": 400,
  "code": "PROGRAMMATIC_PAGINATION_MODE_CONFLICT",
  "message": "<string>",
  "error": "Bad Request",
  "request_id": "8cf64dcc-0f73-4f8d-a845-3d80c1040475"
}