---
title: "Get all categories"
method: GET
path: "/categories"
tags: ["categories"]
---

# Get all categories

`GET /categories`

## Request

- Base URL: `http://localhost:3001`
- URL: `http://localhost:3001/categories`
- Auth: one of:
  - `bearer` (a scheme the document does not define)
  - HTTP bearer

Retrieves all available expense categories

## Response `200`

Categories retrieved successfully

- object
  - `data` CategoryResponseDto[]
    - `id` string, required: Unique identifier
    - `name` string, required: Category name
    - `icon` string, required: Category icon (emoji)
    - `color` string: Hex color code
    - `description` string: Category description
    - `isSystem` boolean, required: Whether this is a system category
    - `parentCategoryId` string: Parent category ID (for subcategories)
    - `createdBy` string: User who created this category
    - `createdAt` string, required: Creation timestamp
    - `updatedAt` string, required: Last update timestamp
  - `success` boolean
  - `message` string

## Other responses

- `400`: Bad Request - Invalid input or validation failed
- `401`: Unauthorized - Authentication required or invalid token
- `403`: Forbidden - Insufficient permissions to access this resource
- `404`: Not Found - The requested resource does not exist
- `500`: Internal Server Error - An unexpected error occurred

---

[API](https://skmtc.dev/spliteo/apis/spliteo-api.md) · [All operations](https://skmtc.dev/spliteo/apis/spliteo-api/llms.txt) · [OpenAPI document](https://skmtc.dev/spliteo/apis/spliteo-api/revisions/bd9b84f4e407?raw)
