Release 33 of the API includes 1 new endpoint, changes to 8 existing endpoints and 2 fixes.
The UAT API will be updated on 21-Oct-2026.
The Live API release date is 28-Oct-2026.
Times may change without notice, no downtime of the API is expected.
All Domains
General maintenance has been applied across all services in this release.
View Calendar Spec
Calendar Management
Merlin’s diary runs in Practitioner mode by default (columns are vets). Selected practices are trialling Room mode (beta), where columns are rooms and the vet doing the work is carried on the appointment separately. This release exposes the extra fields and validation integrators need for both modes. Task lists on the diary Day view also use a configurable number of slots per site (replacing the old implicit limit of 50); the API returns that limit and rejects new tasks when a list is full for the day.
Further detail: Diary mode (Practitioner and Room) · Task lists and capacity
NEW PATCH /v1/api/appointments/:appointment-uuid/statuses
- Add or remove appointment statuses for a practitioner appointment. Supply
add-statusesand/orremove-statusesas arrays of appointment status type UUIDs; at least one array is required. - Only Arrived, Cancelled, Failed to Show, Paid, and Treated may be set or cleared through this endpoint. Task-style practitioners (for example card list or hospital lists) are not supported.
CHANGE GET /v1/api/appointments & /v1/api/appointments/:appointment-uuid
- Appointment responses include
contact-practitioner-type,contact-practitioner-name,assigned-practitioner-type, andassigned-practitioner-nameto support diary room mode. Practitioner types are returned asPRACTITIONERorROOM.
This change also affects:
- GET
/v1/api/appointments/deleted - GET
/v1/api/appointments/deleted/:appointment-uuid
CHANGE GET /v1/api/availability/:location-uuid/available
- Available slot responses include
practitioner-type,practitioner-name,practitioner-uuid-for-room, andpractitioner-name-for-roomfor diary room mode. - Optional
empty-slot-texton each slot carries the availability tag (not specific to room mode).
CHANGE GET /v1/api/availability/:location-uuid/blocks
- Unavailable slot responses include
contact-practitioner-typeandcontact-practitioner-name.
CHANGE POST /v1/api/appointments
- Diary room mode validation applies to contact and assigned practitioners, including rules when the diary runs in room mode versus practitioner mode.
- When the requested end time does not align to slot boundaries but the start time is valid, the appointment end is extended to the next slot boundary (consistent with Merlin). The response includes
booked-start-dateandbooked-end-datewith the times actually stored. - Appointments can no longer be created in a slot that is already occupied by another booking that spans multiple slots. A
422response is returned when no slot is available.
CHANGE POST /v1/api/availability & DELETE /v1/api/availability
- Create and delete availability apply diary room mode contact validation. Create requests may include
practitioner-uuid-for-roomfor room-mode availability. - Optional
empty-slot-textmay be supplied when creating availability (availability tag; not specific to room mode).
This change also affects:
- POST
/v1/api/availability/blocks - DELETE
/v1/api/availability/blocks
CHANGE GET /v1/api/task-lists/locations
- Each row includes
number-of-slots, the configured task capacity for that task list at the location.
CHANGE POST /v1/api/tasks
- Task creation is rejected when the task list is already at capacity for the requested location and date (
422).
CHANGE GET /v1/api/task-lists/:task-list-uuid
- UUIDs for rooms (
practitioner-typeROOM) and other practitioners that are not task-list practitioners correctly return404.
FIX GET /v1/api/waiting-times & /v1/api/waiting-times/:location-uuid
- Room-owned appointments are included in per-site waiting-time aggregates.
View Contact Spec
Contact Management
CHANGE GET /v1/api/practitioners & /v1/api/practitioners/:contact-uuid
- Responses include
practitioner-type-name. Optional query parameterexclude-roomsomits rooms (practitioner-typeROOM) from the list.
CHANGE GET /v1/api/practitioners/locations
- Responses include
practitioner-type-idandpractitioner-type-name. Optional query parameterexclude-roomsomits rooms (practitioner-typeROOM).
CHANGE GET /v1/api/practitioners/:contact-uuid/disciplines & POST /v1/api/practitioners/:contact-uuid/disciplines/:discipline-uuid
- Rooms (
practitioner-typeROOM) and task-list contacts are excluded from discipline lookup (404on GET). POST returns422when the practitioner is not eligible.
View Formulary Spec
Formulary Management
FIX POST /v1/api/composites & DELETE /v1/api/composites/:composite-uuid
- Composite child
composite-view-orderis calculated per site when adding or removing children, including main-site and site-specific ordering. Deleting a site-specific child no longer renumbers view orders on other sites.
If you have any questions please contact us.