---
title: "List appointment history"
method: GET
path: "/ext/v2/appointments/{appointment_id}/history/"
tags: ["Scheduler"]
---

# List appointment history

`GET /ext/v2/appointments/{appointment_id}/history/`

## Request

- Base URL: `https://connect.vetcove.com`
- URL: `https://connect.vetcove.com/ext/v2/appointments/{appointment_id}/history/`
- Auth: HTTP bearer

Returns the change history for a specific appointment. Each history entry records a modification to the appointment (e.g., status change, reschedule, resource reassignment) along with a timestamp. The history is sorted by creation date, with the most recent entries appearing first.

## Path parameters

- `appointment_id` integer, required: The ID of the appointment to fetch history for

## Query parameters

- `ids` integer[], nullable: When provided, filters to objects with these IDs.
- `ending_before` integer, nullable: A cursor used for pagination. Fetches the page of results ending immediately before the object with the given ID. Cannot be used at the same time as `starting_after`.
- `starting_after` integer, nullable: A cursor used for pagination. Fetches the page of results starting immediately after the given ID. Cannot be used at the same time as `ending_before`.
- `limit` integer: The maximum number of items to return per page.

## Response `200`

OK

- AppointmentHistoryList
  - `data` ExternalAppointmentHistorySchema[], required: A single page of data contained within this list.
    - `acting_user_id` integer, required: The ID of the profile of the user who took this action.
    - `action_kind` union, required: The kind of action captured by this event.
      - 'CREATE' | 'UPDATE' | 'DELETE'
      - ''
    - `alert_tags` union[], required: Array of alert tags associated with this appointment.
      - union
        - 'CONTAGIOUS'
        - ''
    - `appointment_id` integer, required: The unique identifier for the appointment that this history is tracking.
    - `clinic_client_id` integer, nullable, required: The ID of the clinic client responsible for the appointment.
    - `clinic_patient_id` integer, nullable, required: The ID of the clinic patient this appointment is for.
    - `dropoff_start_datetime` string, date-time, nullable, required: ISO 8601 formatted datetime for when the patient should be dropped off.
    - `end_datetime` string, date-time, nullable, required: ISO 8601 formatted datetime for when the appointment ends.
    - `event_datetime` string, date-time, required: The date and time the event occurred.
    - `id` integer, required: The unique identifier for this appointment history object. The value of this ID may exceed JavaScript's `Number.MAX_SAFE_INTEGER` (2^53 - 1). JavaScript consumers should handle this value appropriately to avoid precision loss.
    - `kind_id` integer, nullable: The ID of the appointment kind (type of appointment).
    - `pickup_start_datetime` string, date-time, nullable, required: ISO 8601 formatted datetime for when the patient should be picked up.
    - `resource_id` integer, nullable, required: The ID of the calendar resource (provider/room) assigned to handle this appointment.
    - `room_id` integer, nullable, required: The ID of the room assigned to this appointment, if any.
    - `start_datetime` string, date-time, nullable, required: ISO 8601 formatted datetime for when the appointment starts.
    - `status` 'CREATING' | 'CLIENT_CREATING' | 'UNSCHEDULED' | 'UNCONFIRMED' | 'CONFIRMED' | 'DROPPED_OFF' | 'CHECKED_IN' | 'IN_PROGRESS' | 'READY_TO_GO' | 'COMPLETED' | 'NO_SHOW' | 'CANCELED' | 'IMPORTED' | 'CLIENT_REQUESTED', required
  - `has_more` boolean: Whether there are more pages or data in this list.
  - `next_page` string, required: A URL linking to the next page of this list.
  - `type` string: Type of this object. Always `list`.

---

[API](https://skmtc.dev/vetcove/apis/ninjaapi.md) - [All operations](https://skmtc.dev/vetcove/apis/ninjaapi/llms.txt) - [OpenAPI document](https://skmtc.dev/vetcove/apis/ninjaapi/revisions/4ceaed956e15?raw)
