---
title: "Create equipment"
method: POST
path: "/shop/equipment"
tags: ["Equipment"]
---

# Create equipment

`POST /shop/equipment`

Creates a new `Equipment` record at a site. Once created, the
equipment can be assigned to appointment types — bookings then
only offer slots when at least one unit is free.

Requires the `SETTINGS_MANAGE` permission on the target site.

## Request body

- object
  - `name` string, required — Display name. Plain text only.
  - `description` string, nullable — Optional internal note (model, service schedule, location).
  - `quantity` number, required — Number of units of this equipment the site has. Used by the availability engine to enforce concurrency limits. Must be greater than 0.
  - `site_id` string, uuid, required — ID of the site to create this equipment under. The caller's API key must have access to the site.
  - `organisation_id` string, uuid — Optional organisation to attribute this equipment to. Defaults to the caller's primary organisation if omitted.

## Response `201`

A single `Equipment` item.

- object
  - `data` Equipment, required — `Equipment` represents physical tools or items required to deliver an appointment — facials require a steam machine, massages require a table, etc. Each appointment type can declare equipment it needs; availability calculations then only offer slots where the required equipment is free.
    - `id` string, object-id, required — Unique identifier for this piece of equipment.
    - `name` string, required — Display name shown to staff in the admin UI. Plain text only.
    - `description` string, nullable — Optional internal note about this equipment — e.g. model number, service schedule, location.
    - `quantity` number, required — Number of units of this equipment the site has. Used by availability calculations to enforce concurrency limits (an appointment requiring 1 unit can only run when at least one unit is free).
    - `site_id` string, uuid, required — ID of the site this equipment belongs to.
    - `organisation_id` string, uuid, required — ID of the organisation that owns this equipment. Defaults to the caller's primary organisation on create.

## Other responses

- `401` — The user is unauthenticated
- `403` — The authenticated user does not have permission.
- `422` — The request didn't pass validation

---

[API](https://skmtc.dev/try/apis/trybe-api.md) · [All operations](https://skmtc.dev/try/apis/trybe-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/try/trybe-api/revisions/f37f92702da5/schema)
