> ## Documentation Index
> Fetch the complete documentation index at: https://learn.nexudus.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Join Event Waiting List

> Adds the authenticated customer to the waiting list for a sold-out event.

# Join Event Waiting List

Registers the authenticated customer on the waiting list for an event that has no available tickets. When a spot becomes available, the operator can notify waiting-list members. Only callable when `CalendarEvent.EnableWaitList` is `true` and the event is sold out.

## Authentication

Requires a valid customer bearer token.

## Path Parameters

<ParamField path="id" type="number" required>
  The integer ID of the event. Obtained as `Id` from `GET /api/public/events` or `GET /api/public/events/{id}`.
</ParamField>

## Request Body

The request body accepts the customer's waiting-list registration data. The exact fields depend on the event configuration; pass an empty object `{}` if no additional fields are required.

<ParamField body="FullName" type="string">
  Full name of the customer registering for the waiting list.
</ParamField>

<ParamField body="Email" type="string">
  Email address to notify when a spot becomes available.
</ParamField>

## Response

Returns an empty `200 OK` on success.

## Examples

### Join the waiting list

```http theme={null}
POST /api/public/events/412/joinWaitingList
Authorization: Bearer {token}
Content-Type: application/json

{
  "FullName": "Alex Johnson",
  "Email": "alex@example.com"
}
```

```
HTTP/1.1 200 OK
```

## TypeScript Integration

```typescript theme={null}
import endpoints from '@/api/endpoints'

await httpClient.post(endpoints.events.joinWaitingList(412), {
  FullName: 'Alex Johnson',
  Email: 'alex@example.com',
})
```

## Usage in Portal

| Context                                                | Source file                                                    |
| ------------------------------------------------------ | -------------------------------------------------------------- |
| Event detail page — waiting list form (`/events/{id}`) | `src/views/events/details/data.ts`                             |
| Waiting list form component                            | `src/views/events/details/components/EventWaitingListForm.tsx` |

## Error Responses

<ResponseField name="401 Unauthorized" type="error">
  The customer is not authenticated or the session has expired.
</ResponseField>

<ResponseField name="404 Not Found" type="error">
  No event with the specified ID exists.
</ResponseField>

<ResponseField name="400 Bad Request" type="error">
  The event does not have waiting list enabled (`EnableWaitList` is `false`), or the customer is already on the waiting list.
</ResponseField>

## Related Endpoints

| Method | Endpoint                                           | Description                                       |
| ------ | -------------------------------------------------- | ------------------------------------------------- |
| `GET`  | `/api/public/events/{id}`                          | Full event detail including `EnableWaitList` flag |
| `GET`  | `/api/public/events`                               | Paginated list of published events                |
| `GET`  | `/api/public/events/my`                            | Tickets held by the authenticated customer        |
| `GET`  | `/api/public/events/{eventId}/product/{productId}` | Ticket product availability detail                |
