Skip to main content

API R33

· 4 min read
Craig Herrington

Release 33 of the API includes 1 new endpoint, changes to 8 existing endpoints and 2 fixes.

Release Date

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-statuses and/or remove-statuses as 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, and assigned-practitioner-name to support diary room mode. Practitioner types are returned as PRACTITIONER or ROOM.

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, and practitioner-name-for-room for diary room mode.
  • Optional empty-slot-text on 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-type and contact-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-date and booked-end-date with 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 422 response 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-room for room-mode availability.
  • Optional empty-slot-text may 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-type ROOM) and other practitioners that are not task-list practitioners correctly return 404.

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 parameter exclude-rooms omits rooms (practitioner-type ROOM) from the list.

CHANGE GET /v1/api/practitioners/locations

  • Responses include practitioner-type-id and practitioner-type-name. Optional query parameter exclude-rooms omits rooms (practitioner-type ROOM).

CHANGE GET /v1/api/practitioners/:contact-uuid/disciplines & POST /v1/api/practitioners/:contact-uuid/disciplines/:discipline-uuid

  • Rooms (practitioner-type ROOM) and task-list contacts are excluded from discipline lookup (404 on GET). POST returns 422 when 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-order is 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.