Skip to main content
Use waitlist only when a resource allows waitlist entries and the requested period is unavailable because it is fully booked. For general request conventions, see JSON:API Conventions. For slot search, see Availability & Booking Search.

When To Display Waitlist

Show waitlist only when both conditions are true:
  1. The resource has waitlist enabled.
  2. The requested period is unavailable because it is booked_out.
In the shop frontend this is the concrete gate:
  • resource.metaSettings.waitlist.enabled === true
  • the unavailable interval or series has unavailability_type === BOOKED_OUT
Do not show waitlist for other unavailability reasons like lead time conflicts, off-schedule dates, or duration conflicts.
Show the generic waitlist CTA when:
  • the resource enables waitlist
  • at least one fetched start or end interval is BOOKED_OUT
Booked out calendar days are also used as direct waitlist entry points:
  • the tooltip is shown only for booked out days
  • clicking an unavailable day opens waitlist only for booked out days

Auth Requirement

Creating, listing, and deleting waitlist spots requires an authenticated customer account.
  • unauthenticated shop calls are skipped client-side
  • backend create, list, and delete authorization rejects requests without an active customer
Public availability endpoints can still be used to decide whether waitlist should be offered.

Waitlist Interval Requests

The waitlist step uses the same availability engine as booking search, but with the waitlist validation strategy.
1

Get waitlist start intervals

Use this to fetch possible waitlist start points:
If date is omitted, the backend falls back to paginated interval lookup based on start_date and service configuration.
2

Get waitlist end intervals

Use this after the user picked a waitlist start:

Create A Waitlist Spot

Create the actual waitlist entry with the authenticated customer API:

Required fields

Optional fields

What the backend fills automatically

You do not send these values:
  • account_id is taken from the authenticated customer
  • organization_id is derived from the resource
  • uuid is generated automatically

Duplicate handling

If the same customer already has an active waitlist entry for the same resource, start_date, and end_date, the backend replaces the old row and keeps the same UUID.

List And Remove Waitlist Spots

List current active waitlist entries for the authenticated customer:
Notes:
  • results include only active entries
  • past entries are excluded
  • entries already converted to bookings are excluded
  • with_position=true adds meta.position
Delete an entry by waitlist UUID:
Only the customer who owns the waitlist entry can delete it.