> ## 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.

# Venues

> Read and manage the venues attached to a tour.

A **venue** is a location associated with a tour day — the room, hall, or site for an event. Venue IDs are integers.

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

***

## List venues

```text theme={null}
GET /v1/tours/{tourId}/venues
```

Returns the venues for a tour.

**Scope:** `venues.read`

**Example**

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

**Path parameters**

| Name     | Type          | Description |
| -------- | ------------- | ----------- |
| `tourId` | string (UUID) | The tour.   |

**Response `data`** — array of venues:

```json theme={null}
{
  "id": 512,
  "title": "Main Hall",
  "status": true,
  "notes": "Capacity confirmed",
  "image": "https://…",
  "capacity": 1200,
  "formatted_address": "123 Main St",
  "city": "Sydney",
  "zip_code": "2000",
  "country": "Australia",
  "state": "NSW",
  "timezone": "Australia/Sydney",
  "coordinates": { "lat": -33.85, "lng": 151.21 },
  "venue_type": { "id": 32, "type": "Theatre" },
  "venue_category": { "id": 1, "type": "commercial" },
  "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,
  "updated_at": "2026-05-20T08:00:00Z",
  "is_everyone": true,
  "is_admin_only": false
}
```

***

## Create a venue

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

**Scope:** `venues.write`

**Body**

| Field                         | Type               | Required | Description                                                                                                                                                                                       |
| ----------------------------- | ------------------ | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `title`                       | string             | Yes      | Venue name.                                                                                                                                                                                       |
| `tour_id`                     | string (UUID)      | Yes      | Tour the venue belongs to.                                                                                                                                                                        |
| `day_id`                      | number             | Yes      | Day the venue is on.                                                                                                                                                                              |
| `status`                      | boolean            | No       | Status flag.                                                                                                                                                                                      |
| `statusTypeId`                | number             | No       | Status type — [valid values](/field-reference#status-types-statustypeid) (same table as schedule items).                                                                                          |
| `capacity`                    | number             | No       | Venue capacity.                                                                                                                                                                                   |
| `venueTypeId`                 | number             | No       | Venue type — [valid values](/field-reference#venue-types-venuetypeid).                                                                                                                            |
| `venueCategoryId`             | number             | Yes\*    | Venue category — [valid values](/field-reference#venue-categories-venuecategoryid). \*Optional at the schema level but enforced downstream — creates fail without a valid value (see note below). |
| `ageRestrictionId`            | number             | No       | Age restriction — [valid values](/field-reference#age-restrictions-agerestrictionid).                                                                                                             |
| `location`                    | Location           | No       | Address object — see [Accommodation: Location structure](/endpoints/accommodation#location-structure) for the full schema. `geometry.location` and `geometry.viewport` are required.              |
| `notes`                       | string             | No       | Free-text notes.                                                                                                                                                                                  |
| `image`                       | string             | No       | Image URL.                                                                                                                                                                                        |
| `attachments`                 | array\<Attachment> | No       | `{ link, fileSize, … }`. Get `link` from [`POST /v1/attachments`](/endpoints/attachments).                                                                                                        |
| `isEveryone` / `isAdminsOnly` | boolean            | No       | Visibility shortcuts.                                                                                                                                                                             |
| `visibility_list`             | array\<string>     | No       | Explicit user visibility.                                                                                                                                                                         |

<Note>
  A valid `venueCategoryId` (see [Field Reference](/field-reference#venue-categories-venuecategoryid)) is **required** in practice — creating a venue without one, or with an unknown value, fails.
</Note>

<Warning>
  **The `image` field does not host your image.** When you pass `image`, the API stores a generated S3 path derived from the venue title (e.g. `…/venue/<title>_<timestamp>.jpeg`) instead of your URL, and it does **not** upload any image bytes — so the path points to an object that doesn't exist and the image renders blank. To attach an image (or any file) to a venue, upload it with [`POST /v1/attachments`](/endpoints/attachments) and pass the returned `link` in `attachments` instead. The dedicated `image` field itself remains app-only — omit it. *(Known gap for the `image` field — flagged to the Daysync team.)*
</Warning>

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

***

## Update a venue

```text theme={null}
PUT /v1/venues/{venueId}
```

**Scope:** `venues.write`

**Path parameters**

| Name      | Type    | Description          |
| --------- | ------- | -------------------- |
| `venueId` | integer | The venue to update. |

**Body** — all create fields except `tour_id` and `day_id` (which are set at creation time only). All fields are optional on update; send only the fields you want to change.

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

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

***

## Delete a venue

```text theme={null}
DELETE /v1/venues/{venueId}
```

**Scope:** `venues.write`

**Path parameters**

| Name      | Type    | Description          |
| --------- | ------- | -------------------- |
| `venueId` | integer | The venue to delete. |

**Response `data`:** none.

***

See also: [Tours](/endpoints/tours), [Accommodation](/endpoints/accommodation).
