---
title: "Update OfferingSet"
method: PUT
path: "/shop/offering-sets/{offeringSetId}"
tags: ["OfferingSets"]
---

# Update OfferingSet

`PUT /shop/offering-sets/{offeringSetId}`

Use this endpoint to update an `OfferingSet`.

## Request body

- object
  - `name` string — Display name of the offering set, shown in the admin UI when picking a set to apply (e.g. as a coupon restriction or to scope a commission rate). Offering sets are reusable groupings of treatments, classes, or products. 1-120 characters.
  - `offerings` OfferingIdentifier[] — The offerings that belong to this set.
    - `offering_id` string, mongo-id, required — The ID of the offering.
    - `offering_name` string, required — The name of the offering.
    - `offering_type` 'appointment' | 'appointment_enquiry' | 'area_booking' | 'course' | 'hotel_room_reservation' | 'membership' | 'package' | 'product' | 'session' | 'table_reservation' | 'voucher', required — Discriminator describing what kind of sellable item an `Offering` represents. The value determines which downstream schema (`Appointment`, `Session`, `Package`, etc.) the offering's `offering_id` resolves against, and which checkout/booking flow applies.

## Response `200`

The `OfferingSet` was successfully retrieved.

- object
  - `data` OfferingSet, required
    - `id` string, mongo-id, required — The ID of the offering set.
    - `name` string, required — The name of the offering set.
    - `offerings` OfferingIdentifier[], required — The offerings that belong to this set.
      - `offering_id` string, mongo-id, required — The ID of the offering.
      - `offering_name` string, required — The name of the offering.
      - `offering_type` 'appointment' | 'appointment_enquiry' | 'area_booking' | 'course' | 'hotel_room_reservation' | 'membership' | 'package' | 'product' | 'session' | 'table_reservation' | 'voucher', required — Discriminator describing what kind of sellable item an `Offering` represents. The value determines which downstream schema (`Appointment`, `Session`, `Package`, etc.) the offering's `offering_id` resolves against, and which checkout/booking flow applies.
    - `site_id` string, mongo-id, required — The ID of the site this offering set belongs to.
    - `organisation_id` string, mongo-id, required — The ID of the organisation this offering set belongs to.
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required

## 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)
