Create Store Category
Create a new store category. Categories can be top-level or nested under a parent category.
Endpointโ
POST /v1/store-categories
Authenticationโ
Requires an API key with the store:write scope.
Request Bodyโ
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Category name (max 255 characters) |
description | string | No | Category description (max 500 characters) |
parent_id | integer | No | Parent category ID to create a sub-category |
apply_to | array | No | Other booking types to also create this category in: rentals, experiences |
note
Category images can be uploaded via the EquipDash portal. The image_url field is read-only in the API.
Linked Categoriesโ
Use apply_to to make the same category available across booking types โ for example, an "Accessories" category that appears in both the store and rentals. 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. The linked_types response field lists the other booking types a category is linked to.
Responseโ
Success (201 Created)โ
{
"data": {
"id": 6,
"name": "Safety Gear",
"description": "Helmets, pads, and protective equipment",
"image_url": null,
"parent_id": 1,
"products_count": 0,
"children": [],
"linked_types": ["rentals"],
"created_at": "2026-02-13T12:00:00+00:00",
"updated_at": "2026-02-13T12:00:00+00:00"
},
"meta": {
"request_id": "req_abc123",
"timestamp": "2026-02-13T12:00:00+00:00"
}
}
Errorsโ
| Status | Code | Description |
|---|---|---|
| 401 | authentication_required | No API key provided |
| 401 | invalid_api_key | Invalid API key |
| 403 | insufficient_scope | API key lacks store:write scope |
| 404 | resource_not_found | Parent category does not exist |
| 422 | validation_error | Invalid request body |
Example Requestโ
curl -X POST "https://app.equipdash.com/api/v1/store-categories" \
-H "Authorization: Bearer eqd_live_abc123xyz789..." \
-H "Content-Type: application/json" \
-d '{
"name": "Safety Gear",
"description": "Helmets, pads, and protective equipment",
"parent_id": 1,
"apply_to": ["rentals"]
}'