Update Product Category
Update an existing product category.
Endpointโ
PATCH /v1/product-categories/{id}
Authenticationโ
Requires an API key with the products:write scope.
Parametersโ
| Parameter | Type | Location | Description |
|---|---|---|---|
id | integer | path | The category ID |
Request Bodyโ
All fields are optional. Only provide fields you want to update.
| Field | Type | Description |
|---|---|---|
name | string | Category name (max 255 characters) |
description | string | Category description |
parent_id | integer|null | Parent category ID (set to null to make top-level) |
apply_to | array | Other booking types this category is linked to: experiences, store |
Linked Categoriesโ
Use apply_to to link this category across booking types. EquipDash creates a mirror category in each listed booking type (or adopts an existing unlinked category with the same name) and links them as one group. Linked categories share their name, description, and image, so updating any member syncs the others. Sending apply_to replaces the linked set โ booking types you omit are unlinked, and the mirror is deleted if it has no items or sub-categories (otherwise it is kept as a standalone category). Omit apply_to entirely to leave links unchanged.
Example Requestโ
curl -X PATCH "https://app.equipdash.com/api/v1/product-categories/3" \
-H "Authorization: Bearer eqd_live_abc123xyz789..." \
-H "Content-Type: application/json" \
-d '{
"name": "MTB - Mountain Bikes",
"description": "All mountain bike styles"
}'
Responseโ
Success (200 OK)โ
{
"data": {
"id": 3,
"name": "MTB - Mountain Bikes",
"description": "All mountain bike styles",
"image": null,
"parent_id": 1,
"parent": {
"id": 1,
"name": "Bikes"
},
"children": [],
"product_count": 8,
"linked_types": ["experiences"],
"created_at": "2025-01-15T00:00:00+00:00",
"updated_at": "2026-01-15T12:00:00+00:00"
},
"meta": {
"request_id": "req_abc123",
"timestamp": "2026-01-15T12:00:00+00:00"
}
}
Errorsโ
| Status | Code | Description |
|---|---|---|
| 400 | validation_error | Invalid input data |
| 401 | authentication_required | No API key provided |
| 401 | invalid_api_key | Invalid API key |
| 403 | insufficient_scope | API key lacks products:write scope |
| 404 | resource_not_found | Category does not exist |
Notesโ
- A category cannot be its own parent
- The
parent_idmust reference a category that belongs to your account - Set
parent_idtonullto convert a subcategory to a top-level category apply_toaccepts only the other booking types:experiencesandstore- Name, description, and image changes automatically sync to all linked categories