---
title: "Client: join the waiting list for a service or a full class, with consent to be contacted"
method: POST
path: "/api/v1/public/{slug}/waitlist"
---

# Client: join the waiting list for a service or a full class, with consent to be contacted

`POST /api/v1/public/{slug}/waitlist`

## Request

- Base URL: `http://127.0.0.1:4310`
- URL: `http://127.0.0.1:4310/api/v1/public/{slug}/waitlist`
- Auth: one of:
  - none
  - HTTP bearer

## Path parameters

- `slug` string, required

## Request body

- object
  - `service_id` string, uuid
  - `class_occurrence_id` string, uuid: Join the list for a full class instead of a service
  - `staff_id` string, uuid
  - `location_id` string, uuid
  - `date_from` string, date
  - `date_to` string, date
  - `time_windows` object[]
    - `weekdays` integer[]
    - `from` string: HH:MM
    - `to` string: HH:MM
  - `seats` integer
  - `client` object
    - `name` string, required
    - `email` string, required
    - `phone` string
  - `consent_contact` boolean, required: Must be true: the client agrees to be contacted about openings
  - `idempotency_key` string, required
  - `replay_secret` string

## Response `201`

OK

- object

## Other responses

- `400`: Validation error
- `401`: Unauthenticated
- `403`: Forbidden
- `404`: Not found
- `409`: Conflict or invalid state

---

[API](https://skmtc.dev/scalingfirm/apis/tsf-booking-api.md) · [All operations](https://skmtc.dev/scalingfirm/apis/tsf-booking-api/llms.txt) · [OpenAPI document](https://skmtc.dev/scalingfirm/apis/tsf-booking-api/revisions/81704199cd37?raw)
