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

# Guest List

> Read and manage guest list entries for a tour day.

**Guest list** entries are the people requested onto the list for a given tour day, with pass allocations and an approval status. Guest list entry IDs are integers.

All endpoints require the standard [authentication](/authentication) headers.

***

## List guest list

```text theme={null}
GET /v1/tours/{tourId}/days/{dayId}/guestlist
```

Returns the guest list for one day of a tour.

**Scope:** `guestlist.read`

**Example**

```bash theme={null}
curl "$BASE/v1/tours/2f1c…/days/1843/guestlist" \
  -H "x-api-key: $KEY" -H "x-api-secret: $SECRET" -H "Authorization: Bearer $TOKEN"
```

**Path parameters**

| Name     | Type          | Description              |
| -------- | ------------- | ------------------------ |
| `tourId` | string (UUID) | The tour.                |
| `dayId`  | integer       | The day within the tour. |

**Response `data`** — array of guest list entries:

```json theme={null}
{
  "id": 77,
  "firstName": "Sam",
  "lastName": "Taylor",
  "email": "sam@…",
  "affiliation": "Press",
  "numberOfGuests": 2,
  "notes": "Photo pit access",
  "status": { "id": 1, "type": "APPROVED", "description": "Approved" },
  "created_by": { "id": "…", "firstname": "Jane", "lastname": "Doe" },
  "day": { "id": 1843, "name": "Day 1", "date": "2026-06-01T00:00:00Z" },
  "tour": { "id": "2f1c…", "name": "Spring Tour 2026" },
  "is_deleted": false,
  "created_at": "2026-05-18T08:00:00Z",
  "updated_at": "2026-05-20T08:00:00Z"
}
```

**Response fields** — the GET response returns a fixed subset of fields, which differs from what create/edit accept. It does **not** include `passes`, `pickupMethod`, `venue`, or `avatarColor`:

| Field            | Type    | Description                        |
| ---------------- | ------- | ---------------------------------- |
| `id`             | integer | Guest list entry ID.               |
| `firstName`      | string  | Guest first name.                  |
| `lastName`       | string  | Guest last name.                   |
| `email`          | string  | Guest email (may be `null`).       |
| `affiliation`    | string  | Guest affiliation (may be `null`). |
| `numberOfGuests` | integer | Party size.                        |
| `notes`          | string  | Notes (may be `null`).             |
| `status`         | object  | `{ id, type, description }`.       |
| `created_by`     | object  | `{ id, firstname, lastname }`.     |
| `day`            | object  | `{ id, name, date }`.              |
| `tour`           | object  | `{ id, name }`.                    |
| `is_deleted`     | boolean | Soft-delete flag.                  |
| `created_at`     | string  | ISO 8601 timestamp.                |
| `updated_at`     | string  | ISO 8601 timestamp.                |

***

## Add to guest list

```text theme={null}
POST /v1/guestlist
```

**Scope:** `guestlist.write`

**Body**

| Field            | Type          | Required | Description                                                                                     |
| ---------------- | ------------- | -------- | ----------------------------------------------------------------------------------------------- |
| `tour_id`        | string (UUID) | Yes      | Tour the entry belongs to.                                                                      |
| `day_id`         | number        | Yes      | Day the entry is for.                                                                           |
| `firstName`      | string        | Yes      | Guest first name.                                                                               |
| `lastName`       | string        | Yes      | Guest last name.                                                                                |
| `numberOfGuests` | number        | Yes      | Party size.                                                                                     |
| `pickupMethodId` | number        | Yes      | How the guest collects passes — [valid values](/field-reference#pickup-methods-pickupmethodid). |
| `statusId`       | number        | Yes      | Approval status — [valid values](/field-reference#statuses-statusid).                           |
| `passes`         | array\<Pass>  | Yes      | Pass allocations — see [Pass object](#pass-object).                                             |
| `email`          | string        | No       | Guest email.                                                                                    |
| `affiliation`    | string        | No       | Guest affiliation.                                                                              |
| `notes`          | string        | No       | Free-text notes.                                                                                |
| `requesterId`    | string        | No       | Who requested the entry.                                                                        |
| `venueId`        | number        | No       | Associated venue.                                                                               |
| `avatarColorId`  | number        | No       | Avatar colour — [valid values](/field-reference#avatar-colors-avatarcolorid).                   |

**Response `data`:** `{ "id": 77 }`.

***

## Edit a guest list entry

```text theme={null}
PUT /v1/guestlist/{guestListId}
```

**Scope:** `guestlist.write`

**Path parameters**

| Name          | Type    | Description        |
| ------------- | ------- | ------------------ |
| `guestListId` | integer | The entry to edit. |

**Body** — note several fields remain required on edit:

| Field                                                     | Type         | Required | Description                                                                     |
| --------------------------------------------------------- | ------------ | -------- | ------------------------------------------------------------------------------- |
| `firstName`                                               | string       | Yes      | Guest first name.                                                               |
| `lastName`                                                | string       | Yes      | Guest last name.                                                                |
| `numberOfGuests`                                          | number       | Yes      | Party size.                                                                     |
| `pickupMethodId`                                          | number       | Yes      | Pickup method — [valid values](/field-reference#pickup-methods-pickupmethodid). |
| `statusId`                                                | number       | Yes      | Approval status — [valid values](/field-reference#statuses-statusid).           |
| `passes`                                                  | array\<Pass> | Yes      | Pass allocations — see [Pass object](#pass-object).                             |
| `email`, `affiliation`, `notes`, `requesterId`, `venueId` | —            | No       | As in create.                                                                   |

<Note>
  The `guestListId` is taken from the URL path — do **not** send it in the request body.
</Note>

**Response `data`:** `{ "id": 77 }`.

***

## Pass object

Each entry in the `passes` array allocates a number of passes of a given pass type to the guest. Pass types are configured per tour in the Daysync app.

```json theme={null}
"passes": [
  { "passId": 1, "count": 2 },
  { "passId": 3, "count": 1 }
]
```

| Field    | Type   | Required | Description                                             |
| -------- | ------ | -------- | ------------------------------------------------------- |
| `passId` | number | Yes      | ID of the pass type configured for this tour.           |
| `count`  | number | Yes      | Number of passes of this type to allocate to the guest. |

<Note>
  Pass type IDs are configured per tour in the Daysync app. Discover the valid IDs from the tour/venue configuration in the app before sending them on create or edit.
</Note>

***

## Delete a guest list entry

```text theme={null}
DELETE /v1/guestlist/{guestListId}
```

**Scope:** `guestlist.write`

**Path parameters**

| Name          | Type    | Description          |
| ------------- | ------- | -------------------- |
| `guestListId` | integer | The entry to delete. |

**Response `data`:** none.

***

See also: [Tours](/endpoints/tours), [Bulletins](/endpoints/bulletins).
