---
title: "Create a viewing appointment."
method: POST
path: "/appointments/viewings"
tags: ["Appointments"]
---

# Create a viewing appointment.

`POST /appointments/viewings`

## Request

- Base URL: `https://api.alto.zoopladev.co.uk`
- URL: `https://api.alto.zoopladev.co.uk/appointments/viewings`
- Auth: `appAuth` (a scheme the document does not define)

Creates a viewing appointment with the requested applicant and property in a negotiator's calender.
Required scope: alto/write:appointments_viewings

## Headers

- `AgencyRef` string, required

## Request body

- ViewingRequest
  - `negotiatorId` integer, required: Required: The unique identifer of the negotiator
  - `branchId` integer, nullable: Optional: The branch in which to record the viewing diary event. When omitted, defaults to the negotiator's default branch.
  - `applicantIds` integer[], required: Required: The unique identifer of the applicant(s)
  - `propertyId` integer, required: Required: The unique identifer of the property
  - `startDate` string, date-time, required: Required: The start date and time in ISO 8601 format of the viewing appointment to be created. Interpreted as UK local diary time: a value with a UTC marker (a trailing `Z`) or an explicit offset is converted to UK local time (Europe/London); a plain local value with no offset is taken as-is.
  - `endDate` string, date-time, required: Required: The end date and time in ISO 8601 format of the viewing appointment to be created. Interpreted as UK local diary time: a value with a UTC marker (a trailing `Z`) or an explicit offset is converted to UK local time (Europe/London); a plain local value with no offset is taken as-is.
  - `notes` string, nullable: Optional: Additional notes to accompany the viewing appointment being created.
  - `isConfirmed` boolean: Optional: Marks viewing as confirmed; this will NOT send out confirmation emails and texts Default if not set: false
  - `meetingPlaceType` 'Unspecified' | 'AtTheOffice' | 'AtTheProperty': Optional: Sets where the negotiator will meet for the viewing; Default if not set: AtTheProperty

## Response `200`

Returns an object containing the newly created viewing appointment's unique identifier

- CreateAppointmentData
  - `appointmentId` integer: The unique identifier of the viewing appointment that has been created

## Other responses

- `400`: Validation error e.g. invalid date range selection.
- `401`: Unauthorized
- `403`: Invalid scope or AgencyRef for request.
- `500`: Internal Server Error

---

[API](https://skmtc.dev/alto/apis/alto-api.md) - [All operations](https://skmtc.dev/alto/apis/alto-api/llms.txt) - [OpenAPI document](https://skmtc.dev/alto/apis/alto-api/revisions/1b729d9b15a8?raw)
