Skip to main content

Categories

The Categories API provides CRUD access to categories, plus ancillary actions for assigning team members to a category and migrating a category’s resources into another category.
New to the API? Start with Getting started (base URL, response envelope, errors, pagination) and Authentication (API keys). Those conventions apply to every endpoint below and are not repeated here.
Identifier note: categories are addressed by their numeric category_id. Wherever {id} appears below it is the category_id.

The category object

All endpoints that return a category use this shape:

List / search categories

Query parameters

Example request

Example response — 200 OK


Get a category

Example request

Returns the category (200) with message “Category retrieved successfully.”

Create a category

Body parameters

Example request

Example response — 201 Created


Update a category

category_name is required and must be unique within the category’s type. category_type cannot be changed.

Body parameters

Example request

Example response — 200 OK


Delete a category

A category can only be deleted when it is empty (count is 0) and is not a system-default category. Otherwise a 409 is returned. To empty a non-empty category first, use the migrate action below. Deleting also removes the category’s team assignments.

Example request

Example response — 200 OK


Set team members

Sets the team members assigned to the category. The users array is the full set — it replaces any existing assignment; an empty array clears all. Category-based project permissions are re-synced automatically.
Returns the category (200) with message “Category team updated successfully.”

Migrate resources

Moves all of this category’s resources (projects, clients, invoices, estimates, leads, tickets, items, expenses, contracts) into another category, and re-syncs category-based project permissions. Use this to empty a category before deleting it. Returns the (now-emptied) source category.
Returns the source category (200) with message “Category resources migrated successfully.”

Errors

See Getting started for the shared error format. Category-specific: