How do I use the V4 Appointments API to manage property viewing bookings?
The V4 Appointments API handles the full lifecycle of property viewing appointments — from checking available slots and booking, through to updating, cancelling, and collecting post-viewing feedback. All endpoints are at https://live-api.letmc.com/v4/appointments/.
Property viewing booking workflow
This is the primary workflow for external websites and booking systems.
- Get branches —
GET /v4/appointments/{shortName}/company/branches/{offset}/{count} - Get available properties:
- Lettings:
GET /lettings/tenancies/advertised/{offset}/{count}(supportsincludeRenewalsparameter) - Sales:
GET /sales/instructions/advertised/{offset}/{count}
- Lettings:
- Get appointment types —
GET /diary/appointmenttypes/{offset}/{count}Returns configured types such as Property Viewing, Valuation, Check-in, etc. - Check available time slots —
GET /diary/appointmenttypes/allocations/{offset}/{count}Required:appointmentTypeID,preferredDate. Returns slots for the preferred date plus 7 days. Optional:lettings,propertyIdentifier,branchID. - Match existing guest (optional) —
GET /contacts/guest/match/{offset}/{count}Search for an existing contact to avoid duplicate records. Parameters:branchID,forename,emailaddress,surname. - Book the appointment —
POST /diaryRequired:AppointmentDiaryEntrySubmissionModel,propertyID(array),lettings(default true). Returns an appointment confirmation reference.
Staff appointment management workflow
For internal systems managing existing appointments:
- Get branches for filtering
- Get staff members —
GET /contacts/staff/{offset}/{count}(filter bybranchID) - Get existing appointments —
GET /diary/appointments/{branchID}/{offset}/{count}(filter bystartDate,endDate,appointmentTypesToSearch) - Get specific appointment —
GET /diary/appointment/{appointmentID} - Update appointment —
PATCH /appointment/updateusingAppointmentDiaryEntryUpdateSubmissionModel— or — Cancel/uncancel —PATCH /diary/cancelationStatus/{cancelationStatus} - Send communications —
POST /messaging/{branchID}
Post-viewing feedback workflow
- Retrieve appointment details —
GET /diary/appointment/{appointmentID} - Submit feedback —
POST /diary/feedbackusingAppointmentFeedbackSubmissionModel
Additional endpoints
- Get specific appointment type:
/diary/appointmenttypes/{appointmentTypeID} - Get specific staff member:
/contacts/staff/{staffID} - Get recurring appointments:
/diary/recurringappointment(requiresbranchIDandappointmentTypesToSearch)
Important notes
- All date/time parameters use ISO 8601 format
- Appointment allocations are returned in the company's local timezone
- Always check allocation availability immediately before booking to avoid conflicts
- For property details (photos, descriptions), cross-reference with the V4 Advertising API
Test with Swagger: Select "V4.Appointments" from the tier dropdown.