---
title: "Update an equipment item"
method: PUT
path: "/shop/equipment/{equipmentId}"
tags: ["Equipment"]
---

# Update an equipment item

`PUT /shop/equipment/{equipmentId}`

Partially updates an `Equipment` record. Every field is optional;
only fields you send are written. Requires the `SETTINGS_MANAGE`
permission on the equipment's current site (and the target site
too, if `site_id` is changed).

## Request body

- object
  - `name` string — Display name shown to staff in the admin UI. Plain text only — HTML tags are rejected.
  - `description` string, nullable — Optional internal note about this equipment — model number, service schedule, location. Not surfaced to customers.
  - `quantity` number — Number of units. Must be greater than 0.
  - `site_id` string, uuid — Move the equipment to a different site. The caller's API key must have access to both the old and new site.

## Response `200`

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.
- `404` — The resource couldn't be found
- `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)
