Skip to main content
PATCH

Update Experience

Partially updates an experience. Only the fields supplied in the body are written — omitted fields are left unchanged. The experience must belong to the organization associated with the API key; cross-org requests return 404 Not Found with no information leak. Requires the experiences:write scope.

Path Parameters

string
required
Experience ID (the service catalog document ID).

Request Body

At least one field is required. Unknown fields are rejected with 400.
string
Experience name (1–120 chars).
string
Long-form description shown on the public booking page.
integer
Length of one session in minutes (1..1440).
integer
Maximum attendees per session (1..10000).
object
Replace the location object. type is required when location is supplied.
object
Replace the pricing object. Currency is normalised to lowercase before persistence. When the currency changes, all child ticket classes have their pricing currency cascaded automatically — booking flows that validate parent/child currency equality continue to work.
object
Partial scheduling rules. Each nested object (booking_window, cancellation_policy) is replaced wholesale if supplied; omit a nested object to keep its existing values. Invariants (min_hours_before >= 0, max_days_ahead > 0, refundable_until_hours_before >= 0) are enforced on the merged result.
string[]
Replace the providers list. Pass [] to remove all providers.
enum
none, email, or email_and_phone.
integer
Upper bound on seats per single booking (1..50).
enum
active or inactive. Inactive experiences are hidden from the public catalog and reject new bookings.
enum
open or closed. When closed the experience stays publicly visible but the booking CTA is hidden.

Response

Returns the updated experience as serialized by GET /experiences/{experience_id}.