Offerings catalog

Area Booking Types

An AreaBookingType represents a type of area that can be booked at a site.

get/shop/area-booking-types

List area booking types

listAreaBookingTypes

Returns a paginated list of AreaBookingTypes configured at the given site, ordered by name. Use this to power a settings dashboard or to populate a booking-frame selector for cabanas, pool loungers, treatment pods and other bookable spaces. The list includes archived items only when archived=true is passed.

Requires the RESERVATIONS_VIEW permission on the site.

Query parameters

  • pageintegeroptional

    The page to retrieve results from

  • per_pageintegeroptional

    The number of results to return per page

  • archivedbooleanoptional

    Whether to include archived resources in the response. When true, archived resources are returned; when false or omitted, only non-archived resources are returned.

  • category_idstringoptional

    Filter results to area booking types that include the given category in their category_ids. Comma-separate to OR multiple categories.

  • idstring[]optional

    A comma separated list of AreaBookingType ids to return.

  • querystringoptional

    Filter area booking types by a case-insensitive substring of their name.

  • site_idstringrequired

    Filter results by the site they belong to

Responses

  • 200

    A paginated list of AreaBookingTypes for the requested site.

  • 401

    The user is unauthenticated

  • 403

    The authenticated user does not have permission.

post/shop/area-booking-types

Create an area booking type

createAreaBookingType

Creates a new AreaBookingType at the given site. The required body is name, start_time_interval, duration_interval, min_duration and max_duration; everything else has sensible defaults.

Requires the SETTINGS_MANAGE permission on the site referenced via the Trybe-Site-Id header. The newly created type is attributed to the caller's primary organisation.

Query parameters

  • site_idstringrequired

    Filter results by the site they belong to

Request body

  • namestringrequired

    Display name for the area booking type. Visible to customers in the booking flow and to staff in the admin UI. Plain text only — HTML tags are rejected at validation time.

  • descriptionstringoptional

    Long-form description shown to customers when they're selecting the area. Markdown is rendered.

  • product_codestringoptionalnullable

    Optional product code used to map this area booking type to an external POS or PMS catalog. Free-form string; uniqueness is not enforced server-side.

  • external_idstringoptionalnullable

    External identifier used by integrations to reference this offering. Free-form.

  • currencystringoptional

    The ISO-4217 currency code.

  • yield_managementobjectoptional

    Raw yield-only price guardrails for an eligible offering. Money values use integer minor units, matching standard_price.

    The nested object is optional on create, update, and copy requests. When omitted, the existing configuration is preserved. When supplied, it replaces the complete yield-management configuration atomically.

    Writes require the offering-pricing permission and the advanced_yield_management feature. If the feature is unavailable, supplying this object returns a 422 validation error. Existing configuration remains readable when the feature is unavailable.

  • standard_priceintegeroptionalnullable

    The standard price for this area booking type, in the smallest currency unit (e.g. pence/cents). Optional at create time — offerings can be created without a standard price and have one configured later.

  • start_time_intervalintegerrequired

    The granularity (in minutes) at which start times are offered. 30 means slots are offered on the hour and half-hour.

  • duration_intervalintegerrequired

    The granularity (in minutes) at which the customer can extend their booking beyond min_duration, up to max_duration. 60 means durations are picked in one-hour steps.

  • min_durationintegerrequired

    Minimum bookable duration in minutes. Customers cannot pick a duration shorter than this.

  • max_durationintegerrequired

    Maximum bookable duration in minutes. Customers cannot pick a duration longer than this.

  • end_bufferintegeroptionalnullable

    Minutes of buffer time added after the booking ends. Useful for reset, cleaning, or staff handover. The calendar slot is reserved for duration + end_buffer.

  • max_basketsintegeroptional

    Maximum number of concurrent baskets (distinct customer bookings) that can hold the same time slot. 0 is treated as no parallel allowance — only one booking holds the area at any time. Use higher values when the area accepts multiple parties simultaneously (e.g. shared sun-loungers).

  • max_guestsintegeroptionalnullable

    Whether a single booking of this area can cover a group. null allows group bookings (any number of guests share one booking); 1 books one guest per booking. Any other value is rejected with a 422.

    Possible values:1
  • area_idsstring[]optional

    BookableArea IDs this booking type maps to. Filtered to areas belonging to the site referenced in the Trybe-Site-Id header; areas outside the site are silently filtered out.

  • category_idsstring[]optional

    Category IDs the area booking type belongs to. Used for shopfront grouping.

  • offered_onlinebooleanoptionalDeprecated

    When true, the area booking type is bookable via the public shopfront. When false, it's bookable only via the admin UI. Defaults to false.

  • privatebooleanoptionalDeprecated

    When true, only customers with the direct link can book this area booking type.

  • visibilitystringoptional

    Who can see this area booking type on the shopfront. public shows it everywhere; link_only keeps it out of browse/search (still bookable by direct link); private restricts it to admin booking flows. Takes precedence over the legacy offered_online/private flags.

    Possible values:publiclink_onlyprivate
  • customers_onlybooleanoptional

    When true, only registered customers (not guests) can book.

  • members_onlybooleanoptional

    When true, only members of permitted membership types can book.

  • permitted_membership_type_idsstring[]optionalnullable

    Membership type IDs whose members are allowed to book. Only relevant when members_only=true. Membership types from outside the site's brand are silently filtered out.

  • When true, members can book further in advance than the standard window. The exact extra advance period per membership type is defined in membership_booking_windows.

  • Per-membership-type advance-booking-window overrides.

  • max_advance_bookings_intervalstringoptionalnullable

    ISO 8601 duration limiting how far in advance customers can book. e.g. P30D = 30 days, P1Y = 1 year. Null means unbounded.

  • min_advance_bookings_intervalstringoptionalnullable

    ISO 8601 duration limiting how soon before the booking start time a customer can place a booking. e.g. PT2H = at least 2 hours' notice.

  • customer_cancellation_permittedstringoptionalnullable

    Whether and when customers can cancel a booking themselves. allowed = always. if_unpaid = only if no payment has been taken. disallowed = never (admin only).

    Possible values:allowedif_unpaiddisallowed
  • ISO 8601 duration before the booking start during which cancellation is no longer permitted. e.g. PT24H = no cancellation in the last 24 hours.

  • customer_reschedule_permittedstringoptionalnullable

    Whether and when customers can reschedule a booking of this type themselves. allowed = always. unpaid = only if no payment has been taken against the order. disallowed = never (admin only).

    Possible values:alloweddisallowedunpaid
  • customer_reschedule_min_durationstringoptionalnullable

    ISO 8601 duration before the booking start during which rescheduling is no longer permitted. e.g. PT24H = no rescheduling in the last 24 hours.

  • Whether to surface the price alongside the offering in calendar views.

  • max_per_basketintegeroptionalnullable

    Maximum number of this area booking type per basket.

  • max_per_guestintegeroptionalnullable

    Maximum number of this area booking type per individual guest within a basket.

  • revenue_centrestringoptionalnullable

    Identifier of the revenue centre that bookings of this area booking type post to. Must be a valid revenue centre for the site.

  • brand_iduuidoptionalnullable

    ID of the stock brand that sales of this area booking type are reported under in the Sold Items report. For internal reporting only; it is never shown to customers. Must be a stock brand of the site. Send null to clear it.

  • upsell_offeringsobject[]optional

    Other offerings to upsell on the booking confirmation page.

  • cross_sell_offeringsobject[]optional

    Other offerings to cross-sell during the booking flow.

Responses

  • 201

    A single AreaBookingType.

  • 401

    The user is unauthenticated

  • 403

    The authenticated user does not have permission.

  • 422

    The request didn't pass validation

get/shop/area-booking-types/{areaBookingTypeId}

Retrieve an area booking type

getAreaBookingType

Returns the full AreaBookingType for the given ID. Use this to populate an admin edit screen or to look up settings when building a booking against a known offering.

Path parameters

Responses

  • 200

    A single AreaBookingType.

  • 401

    The user is unauthenticated

  • 403

    The authenticated user does not have permission.

  • 404

    The resource couldn't be found

put/shop/area-booking-types/{areaBookingTypeId}

Update an area booking type

updateAreaBookingType

Partially updates an AreaBookingType. Every field is optional; only fields you send are written. Fields you omit retain their current values.

Requires the SETTINGS_MANAGE permission on the area booking type's site.

Path parameters

Request body

  • namestringoptional

    Display name. Plain text only — HTML tags are rejected.

  • descriptionstringoptionalnullable

    Long-form description shown to customers. Markdown rendered.

  • product_codestringoptionalnullable

    External POS/PMS product code.

  • external_idstringoptionalnullable

    External identifier used by integrations.

  • currencystringoptional

    The ISO-4217 currency code.

  • yield_managementobjectoptional

    Raw yield-only price guardrails for an eligible offering. Money values use integer minor units, matching standard_price.

    The nested object is optional on create, update, and copy requests. When omitted, the existing configuration is preserved. When supplied, it replaces the complete yield-management configuration atomically.

    Writes require the offering-pricing permission and the advanced_yield_management feature. If the feature is unavailable, supplying this object returns a 422 validation error. Existing configuration remains readable when the feature is unavailable.

  • standard_priceintegeroptionalnullable

    The standard price for this area booking type, in the smallest currency unit (e.g. pence/cents). Pass null to clear a previously-set standard price.

  • start_time_intervalintegeroptional

    Granularity (in minutes) at which start times are offered.

  • duration_intervalintegeroptional

    Granularity (in minutes) at which the customer can extend the booking between min_duration and max_duration.

  • min_durationintegeroptional

    Minimum bookable duration in minutes.

  • max_durationintegeroptional

    Maximum bookable duration in minutes.

  • end_bufferintegeroptionalnullable

    Buffer minutes added after the booking ends.

  • max_basketsintegeroptionalnullable

    Maximum number of concurrent baskets that can hold the same time slot. On update this is nullable (set to null to clear any previously configured cap).

  • max_guestsintegeroptionalnullable

    null allows group bookings; 1 books one guest per booking. Any other value is rejected with a 422.

    Possible values:1
  • area_idsstring[]optional

    BookableArea IDs this booking type maps to. Filtered to areas belonging to the area booking type's site.

  • category_idsstring[]optional

    Category IDs for shopfront grouping.

  • offered_onlinebooleanoptionalDeprecated

    Whether bookable via the public shopfront.

  • privatebooleanoptionalDeprecated

    When true, only customers with the direct link can book.

  • visibilitystringoptional

    Who can see this area booking type on the shopfront. public shows it everywhere; link_only keeps it out of browse/search (still bookable by direct link); private restricts it to admin booking flows. Takes precedence over the legacy offered_online/private flags.

    Possible values:publiclink_onlyprivate
  • customers_onlybooleanoptional

    Restrict booking to registered customers.

  • members_onlybooleanoptional

    Restrict booking to permitted membership-type holders.

  • permitted_membership_type_idsstring[]optionalnullable

    Membership types whose members can book when members_only=true.

  • Whether to apply per-membership-type advance-booking windows.

  • Per-membership-type advance-window overrides.

  • max_advance_bookings_intervalstringoptionalnullable

    ISO 8601 max-advance booking duration.

  • min_advance_bookings_intervalstringoptionalnullable

    ISO 8601 min-advance booking duration.

  • customer_cancellation_permittedstringoptionalnullable

    Customer self-cancellation policy.

    Possible values:allowedif_unpaiddisallowed
  • ISO 8601 duration before start at which cancellation is locked.

  • customer_reschedule_permittedstringoptionalnullable

    Whether and when customers can reschedule a booking of this type themselves. allowed = always. unpaid = only if no payment has been taken against the order. disallowed = never (admin only).

    Possible values:alloweddisallowedunpaid
  • customer_reschedule_min_durationstringoptionalnullable

    ISO 8601 duration before start at which rescheduling is locked.

  • Surface prices in calendar views.

  • max_per_basketintegeroptionalnullable

    Max of this type per basket.

  • max_per_guestintegeroptionalnullable

    Max of this type per guest per basket.

  • revenue_centrestringoptionalnullable

    Revenue centre to post bookings to. Must be valid for the area booking type's site.

  • brand_iduuidoptionalnullable

    ID of the stock brand that sales of this area booking type are reported under in the Sold Items report. For internal reporting only; it is never shown to customers. Must be a stock brand of the site. Send null to clear it.

  • upsell_offeringsobject[]optional

    Upsell candidates at booking confirmation.

  • cross_sell_offeringsobject[]optional

    Cross-sell candidates during booking.

  • image_idstringoptionalnullable

    ID of an uploaded Media for the cover image.

  • metaobjectoptional

    SEO metadata for the shopfront page.

Responses

  • 200

    A single AreaBookingType.

  • 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

delete/shop/area-booking-types/{areaBookingTypeId}

Delete an area booking type

deleteAreaBookingType

Soft-deletes the area booking type. Existing bookings are unaffected; the type is removed from new-booking flows. Use POST .../restore to bring it back.

400 Bad Request if the area booking type is referenced by any Package's item choices — remove it from those packages first.

Path parameters

Responses

  • 204

    Area booking type deleted successfully.

  • 400

    Deletion blocked because the area booking type is referenced by existing packages. The response body lists the package names.

  • 401

    The user is unauthenticated

  • 403

    The authenticated user does not have permission.

  • 404

    The resource couldn't be found

get/shop/area-booking-types/{areaBookingTypeId}/availability-rules

List availability rules for an area booking type

listAreaBookingTypeAvailabilityRules

Returns a paginated list of the AvailabilityRules configured on an AreaBookingType. Availability rules carve up the working calendar into windows when bookings can or cannot happen — useful for blocking maintenance days, restricting cabana hours, or opening the pool deck only during summer months.

Rule semantics: any is_available: false rule overrides any is_available: true rule for the same time period.

Path parameters

Query parameters

  • pageintegeroptional

    The page to retrieve results from

  • per_pageintegeroptional

    The number of results to return per page

Responses

  • 200

    A paginated list of AvailabilityRules on an AreaBookingType.

  • 401

    The user is unauthenticated

  • 403

    The authenticated user does not have permission.

  • 404

    The resource couldn't be found

post/shop/area-booking-types/{areaBookingTypeId}/availability-rules

Create an availability rule for an area booking type

createAreaBookingTypeAvailabilityRule

Adds a new AvailabilityRule to an AreaBookingType. With is_available: true the rule opens new bookable windows; with is_available: false it blocks them. Omitting date/time/weekday filters means the rule applies always.

Requires the SETTINGS_MANAGE permission on the area booking type's site.

Path parameters

Request body

  • is_availablebooleanoptional

    Whether the window is bookable. false rules override true rules.

  • date_fromdateoptionalnullable

    First date this rule applies (inclusive).

  • date_todateoptionalnullable

    Last date this rule applies (inclusive).

  • time_fromstringoptionalnullable

    Daily start time in HH:MM.

  • time_tostringoptionalnullable

    Daily end time in HH:MM.

  • min_durationintegeroptional

    Match only for durations ≥ this many minutes.

  • max_durationintegeroptional

    Match only for durations ≤ this many minutes.

  • weekdaysstring[]optional

Responses

  • 201

    A single AvailabilityRule.

  • 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

get/shop/area-booking-types/{areaBookingTypeId}/availability-rules/{availabilityRuleId}

Retrieve an availability rule

getAreaBookingTypeAvailabilityRule

Returns a single AvailabilityRule belonging to the given AreaBookingType.

Path parameters

Responses

  • 200

    A single AvailabilityRule.

  • 401

    The user is unauthenticated

  • 403

    The authenticated user does not have permission.

  • 404

    The resource couldn't be found

put/shop/area-booking-types/{areaBookingTypeId}/availability-rules/{availabilityRuleId}

Update an availability rule

updateAreaBookingTypeAvailabilityRule

Replaces an AvailabilityRule. The server validates the same shape as on create, so is_available is required. Requires the SETTINGS_MANAGE permission on the area booking type's site.

Path parameters

Request body

  • is_availablebooleanrequired

    Whether the window is bookable. false rules override true rules.

  • date_fromdateoptionalnullable

    First date this rule applies (inclusive).

  • date_todateoptionalnullable

    Last date this rule applies (inclusive).

  • time_fromstringoptionalnullable

    Daily start time in HH:MM.

  • time_tostringoptionalnullable

    Daily end time in HH:MM.

  • min_durationintegeroptional

    Match only for durations ≥ this many minutes.

  • max_durationintegeroptional

    Match only for durations ≤ this many minutes.

  • weekdaysstring[]optional

Responses

  • 200

    A single AvailabilityRule.

  • 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

delete/shop/area-booking-types/{areaBookingTypeId}/availability-rules/{availabilityRuleId}

Delete an availability rule

deleteAreaBookingTypeAvailabilityRule

Removes an AvailabilityRule from an AreaBookingType. Calendar availability is recomputed from the remaining rules. Existing bookings are unaffected.

Path parameters

Responses

  • 204

    Availability rule deleted successfully.

  • 401

    The user is unauthenticated

  • 403

    The authenticated user does not have permission.

  • 404

    The resource couldn't be found

post/shop/area-booking-types/{areaBookingTypeId}/copy

Duplicate an area booking type

copyAreaBookingType

Creates a copy of an existing AreaBookingType with new fields applied from the request body. Useful when seeding a new offering off an existing one rather than building from scratch. The new area booking type is created under the same site as the original; you can override most fields by sending them in the body.

Requires the SETTINGS_MANAGE permission on the original area booking type's site.

Path parameters

Request body

  • namestringrequired

    Display name for the new copy. Required so the copy is distinguishable from the source.

  • yield_managementobjectoptional

    Raw yield-only price guardrails for an eligible offering. Money values use integer minor units, matching standard_price.

    The nested object is optional on create, update, and copy requests. When omitted, the existing configuration is preserved. When supplied, it replaces the complete yield-management configuration atomically.

    Writes require the offering-pricing permission and the advanced_yield_management feature. If the feature is unavailable, supplying this object returns a 422 validation error. Existing configuration remains readable when the feature is unavailable.

  • standard_priceintegeroptionalnullable

    Override the standard price on the copy, in the smallest currency unit (e.g. pence/cents). Defaults to the source's standard price when omitted.

  • currencystringoptional

    The ISO-4217 currency code.

  • descriptionstringoptional

    Override the customer-facing long-form description. Defaults to the source's description when omitted. Markdown rendered.

  • product_codestringoptionalnullable

    External POS/PMS product code on the copy.

  • external_idstringoptionalnullable

    Override external identifier on the copy. Defaults to null so integrations don't accidentally see two offerings with the same external id.

  • start_time_intervalintegeroptional

    Override the start-time granularity (in minutes) on the copy. 30 means slots are offered on the hour and half-hour.

  • duration_intervalintegeroptional

    Override the duration step (in minutes) on the copy.

  • min_durationintegeroptional

    Override the minimum bookable duration (in minutes) on the copy.

  • max_durationintegeroptional

    Override the maximum bookable duration (in minutes) on the copy.

  • end_bufferintegeroptionalnullable

    Override the buffer minutes after each booking on the copy.

  • max_basketsintegeroptionalnullable

    Override the maximum number of concurrent baskets the copy accepts on the same time slot.

  • area_idsstring[]optional

    Override the bookable areas the copy maps to. Filtered to BookableAreas belonging to the source's site.

  • category_idsstring[]optional

    Override the shopfront category memberships on the copy.

  • offered_onlinebooleanoptionalDeprecated

    Whether the copy is bookable via the public shopfront. Defaults to the source's value.

  • privatebooleanoptionalDeprecated

    When true, only customers with the direct link can book the copy.

  • visibilitystringoptional

    Visibility override on the copy. Same semantics as on the source.

    Possible values:publiclink_onlyprivate
  • customers_onlybooleanoptional

    When true, only registered customers (not guests) can book the copy.

  • members_onlybooleanoptional

    When true, only members of permitted membership types can book the copy.

  • permitted_membership_type_idsstring[]optionalnullable

    Membership types whose members can book the copy when members_only=true.

  • Whether to apply per-membership-type advance-booking windows on the copy.

  • Per-membership-type advance-window overrides on the copy.

  • max_advance_bookings_intervalstringoptionalnullable

    ISO 8601 duration limiting how far in advance customers can book the copy. e.g. P30D = 30 days.

  • min_advance_bookings_intervalstringoptionalnullable

    ISO 8601 duration limiting how soon before the booking start time a customer can book the copy. e.g. PT2H = at least 2 hours' notice.

  • customer_cancellation_permittedstringoptionalnullable

    Customer self-cancellation policy on the copy. allowed = always; if_unpaid = only if no payment has been taken; disallowed = never.

    Possible values:allowedif_unpaiddisallowed
  • ISO 8601 duration before the booking start during which cancellation is no longer permitted on the copy.

  • customer_reschedule_permittedstringoptionalnullable

    Whether and when customers can reschedule a booking of this type themselves. allowed = always. unpaid = only if no payment has been taken against the order. disallowed = never (admin only).

    Possible values:alloweddisallowedunpaid
  • customer_reschedule_min_durationstringoptionalnullable

    ISO 8601 duration before the booking start during which rescheduling is no longer permitted on the copy.

  • Whether to surface the price alongside the offering in calendar views on the copy.

  • max_per_basketintegeroptionalnullable

    Maximum number of the copy per basket.

  • max_per_guestintegeroptionalnullable

    Maximum number of the copy per individual guest within a basket.

  • revenue_centrestringoptionalnullable

    Revenue centre identifier that bookings of the copy post to. Must be a valid revenue centre for the area booking type's site.

  • brand_iduuidoptionalnullable

    ID of the stock brand that sales of this area booking type are reported under in the Sold Items report. For internal reporting only; it is never shown to customers. Must be a stock brand of the site. Send null to clear it.

  • upsell_offeringsobject[]optional

    Override the upsell candidates surfaced at booking confirmation on the copy.

  • cross_sell_offeringsobject[]optional

    Override the cross-sell candidates surfaced during the booking flow on the copy.

  • metaobjectoptional

    SEO metadata for the copy's shopfront page.

Responses

  • 201

    A single AreaBookingType.

  • 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

get/shop/area-booking-types/{areaBookingTypeId}/price-rules

List price rules for an area booking type

listAreaBookingTypePriceRules

Returns all price rules configured for the given AreaBookingType, filterable by date range and weekday. Price rules determine the price a customer pays based on when the booking is placed and how long it lasts — peak vs off-peak, weekday vs weekend, day-rate vs half-day. The first rule whose conditions match the booking wins.

Path parameters

Query parameters

  • date_fromdateoptional

    Restrict results to those on or after this date, ISO-8601 YYYY-MM-DD.

  • date_todateoptional

    Restrict results to those on or before this date, ISO-8601 YYYY-MM-DD.

  • weekdaysstring[]optional

    Filter for price rules that are apply on any of the given weekdays.

  • pageintegeroptional

    The page to retrieve results from

  • per_pageintegeroptional

    The number of results to return per page

Responses

  • 200

    A paginated list of price rules for an area booking type.

  • 401

    The user is unauthenticated

  • 404

    The resource couldn't be found

post/shop/area-booking-types/{areaBookingTypeId}/price-rules

Create a price rule for an area booking type

createAreaBookingTypePriceRule

Adds a new price rule to an AreaBookingType. Rules with date and time ranges + weekday filters combine to express most pricing scenarios — peak vs off-peak, weekday vs weekend, seasonal overrides. The max_duration is required and the price applies to bookings up to that length. The first rule whose conditions match a given booking wins.

The area booking type's standard_price must be set before a price rule can be created. A zero amount counts as set. Requires the SETTINGS_MANAGE permission on the area booking type's site.

Path parameters

Request body

  • priceintegerrequired

    Price in the smallest currency unit (e.g. pence, cents). 12000 means £120.00 in a GBP-denominated site.

  • max_durationintegerrequired

    Apply this rule to bookings up to this many minutes long. For an area booking, this is typically how the day-rate vs half-day rate split is expressed.

  • date_fromdateoptionalnullable

    First date this rule applies (inclusive). Defaults to today in the site's timezone if omitted.

  • date_todateoptionalnullable

    Last date this rule applies (inclusive). When omitted, the rule has no end date.

  • time_fromstringoptionalnullable

    Start of the time-of-day window in 24-hour HH:MM format. When time_to is set, must be earlier than time_to (the rule does not wrap past midnight).

  • time_tostringoptionalnullable

    End of the time-of-day window in 24-hour HH:MM format. Must be later than time_from if both are set.

  • weekdaysstring[]optionalnullable

    Days of the week this rule applies on. Empty / omitted means every day.

Responses

  • 201

    A single price rule on an AreaBookingType.

  • 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

get/shop/area-booking-types/{areaBookingTypeId}/price-rules/{priceRuleId}

Retrieve a price rule

getAreaBookingTypePriceRule

Returns a single price rule belonging to the given AreaBookingType.

Path parameters

Responses

  • 200

    A single price rule on an AreaBookingType.

  • 401

    The user is unauthenticated

  • 403

    The authenticated user does not have permission.

  • 404

    The resource couldn't be found

put/shop/area-booking-types/{areaBookingTypeId}/price-rules/{priceRuleId}

Update a price rule

updateAreaBookingTypePriceRule

Partially updates a price rule. Every field is optional; only fields you send are written. The area booking type's standard_price must be set before a price rule can be updated. A zero amount counts as set. Requires the SETTINGS_MANAGE permission on the area booking type's site.

Path parameters

Request body

  • priceintegeroptional

    Price in the smallest currency unit.

  • max_durationintegeroptional

    Apply this rule to bookings up to this many minutes long.

  • date_fromdateoptionalnullable

    First date this rule applies (inclusive).

  • date_todateoptionalnullable

    Last date this rule applies (inclusive).

  • time_fromstringoptionalnullable

    Start of the time-of-day window in HH:MM.

  • time_tostringoptionalnullable

    End of the time-of-day window in HH:MM.

  • weekdaysstring[]optionalnullable

Responses

  • 200

    A single price rule on an AreaBookingType.

  • 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

delete/shop/area-booking-types/{areaBookingTypeId}/price-rules/{priceRuleId}

Delete a price rule

deleteAreaBookingTypePriceRule

Removes a price rule from an AreaBookingType. Existing bookings already priced under this rule are unaffected — they retain the price set at booking time. The area booking type's standard_price must be set before a price rule can be deleted. A zero amount counts as set.

Path parameters

Responses

  • 204

    Price rule deleted successfully.

  • 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

post/shop/area-booking-types/{areaBookingTypeId}/restore

Restore a deleted area booking type

restoreAreaBookingType

Un-deletes a previously soft-deleted AreaBookingType. The area booking type returns to its pre-deletion state, including all areas and rules. Existing bookings against it remain unaffected by either the delete or the restore.

Requires the SETTINGS_MANAGE permission on the area booking type's site. No request body.

Path parameters

Responses

  • 200

    A single AreaBookingType.

  • 401

    The user is unauthenticated

  • 403

    The authenticated user does not have permission.

  • 404

    The resource couldn't be found

get/shop/area-booking-types/{areaBookingTypeId}/locale-strings/{locale}

Retrieve locale strings for an AreaBookingType

getAreaBookingTypeLocaleStrings

Returns the localised name, description, meta_title and meta_description for the given locale.

Path parameters

  • areaBookingTypeIdobject-idrequired

    The ID of the area booking type

  • localestringrequired

    A supported locale code (e.g. fr, en_GB). The bare en locale is not accepted — base English strings are stored directly on the offering's name and description fields. Regional English variants such as en_GB and en_US are valid.

Responses

  • 200

    The locale strings for the area booking type were successfully retrieved.

  • 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

put/shop/area-booking-types/{areaBookingTypeId}/locale-strings/{locale}

Update locale strings for an AreaBookingType

updateAreaBookingTypeLocaleStrings

Sets the localised name, description, meta_title and/or meta_description for the given locale. Pass null to clear a translation and fall back to the default value.

Path parameters

  • areaBookingTypeIdobject-idrequired

    The ID of the area booking type

  • localestringrequired

    A supported locale code (e.g. fr, en_GB). The bare en locale is not accepted — base English strings are stored directly on the offering's name and description fields. Regional English variants such as en_GB and en_US are valid.

Request body

  • namestringoptionalnullable

    The localised name for this area booking type in the given locale.

  • descriptionstringoptionalnullable

    The localised description for this area booking type in the given locale.

  • meta_titlestringoptionalnullable

    The localised meta title for this area booking type in the given locale.

  • meta_descriptionstringoptionalnullable

    The localised meta description for this area booking type in the given locale.

Responses

  • 200

    The locale strings for the area booking type were successfully updated.

  • 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