Baskets

Update a Basket item

Updates the schedule and/or quantity of an existing BasketItem. Passing quantity: 0 removes the item from the basket — useful for quantity steppers in cart UIs.

The item_configuration field accepts an arbitrary object of offering-specific options (e.g. session_id for a fitness session, room_id for a treatment, flavour for a product). Availability is re-checked on every update; if the new date/time isn't bookable the response is 400 Bad Request.

put/shop/basket/{basketId}/items/{item}

Request body

datestring date nullable

Booking date for the item. Required for scheduled offerings (appointments, area bookings, sessions).

timestring

Booking start time for the item, formatted as HH:mm. For ranged bookings such as area bookings, pair with end_time or duration to express the slot.

start_timestring

Alternative start time for ranged bookings. Formatted as HH:mm.

end_timestring

End time for ranged bookings. Formatted as HH:mm.

durationinteger nullable

Booking duration in minutes. Must be greater than zero when supplied; allowed durations are constrained by the offering's settings.

quantityinteger

Number of units of this item. Must be greater than zero. Setting quantity to 0 removes the line from the basket instead of updating it.

item_configurationobject nullable

Offering-specific configuration for this line. The accepted keys depend on the offering_type — for example practitioner_id, room_id, session_id, option selections, or product variants. Unknown keys are ignored.

Example request

{
  "date": "2026-07-14",
  "time": "14:30",
  "start_time": "14:30",
  "end_time": "16:00",
  "duration": 60,
  "quantity": 2,
  "item_configuration": {
    "practitioner_id": "5f1234567890abcdef123456",
    "option_selections": {
      "aromatherapy_oil": "lavender"
    }
  }
}

Response

The updated Basket.

Changes

No recorded changes to this endpoint across all 1 revision of this API.