---
title: "View appointments (beta)"
method: GET
path: "/appointments"
tags: ["Appointments"]
---

# View appointments (beta)

`GET /appointments`

## Request

- Base URL: `https://nexhealth.info`
- URL: `https://nexhealth.info/appointments`
- Auth: API key in header `Authorization`

> 🚧 Beta
>
> Send `Nex-Api-Version: v3.1.0` to use this endpoint. It is still changing, and access is limited to approved partner institutions. Contact NexHealth before you build on it.

> **Changed from v3.0.0:** Adds query params `confirmed`, `include[]`; adds response fields `data[].descriptors`, `data[].descriptors[].active`, `data[].descriptors[].code`, `data[].descriptors[].created_at` (+8 more); and other schema changes.

This endpoint returns appointments starting within the requested time window, narrowed down by the optional filters configured.

## Query parameters

- `subdomain` string, required
- `location_id` integer
- `sort` string
- `start` string, date-time, required
- `end` string, date-time, required
- `timezone` string
- `cancelled` boolean
- `unavailable` boolean
- `nex_only` boolean
- `updated_since` string, date-time
- `appointment_type_id` integer
- `foreign_id` string
- `created_by` integer
- `start_cursor` string
- `end_cursor` string
- `per_page` integer
- `confirmed` boolean
- `patient_ids[]` integer[]
- `provider_ids[]` integer[]
- `operatory_ids[]` integer[]
- `include[]` string[]

## Headers

- `Nex-Api-Version` string, required

## Response `200`

Successful

- APIV31EntitiesAppointmentWithDescriptorsCollectionResponseWithCursor: API_V31_Entities_AppointmentWithDescriptors_Collection_Response_WithCursor model
  - `code` boolean: Indicates the success or failure of the request
  - `description` string: Additional context on the request to help with debugging.
  - `error` string[]: Any errors that occur during the execution of the request.
  - `data` APIV31EntitiesAppointmentWithDescriptors[]
    - `id` integer: Appointment ID
    - `patient_id` integer: Appointment patient ID
    - `provider_id` integer: Provider ID
    - `provider_name` string: Provider name
    - `start_time` string, date-time: Appointment scheduled start time in UTC
    - `confirmed` boolean: Appointment confirmation status
    - `patient_missed` boolean: Did the patient no show? Not supported by all integrations
    - `created_at` string, date-time: Appointment created time in UTC
    - `updated_at` string, date-time: Appointment last updation time in UTC
    - `note` string: Appointment note
    - `end_time` string, date-time: Appointment scheduled end time in UTC
    - `unavailable` boolean: Is this appointment a scheduling block (blocks off the schedule)
    - `cancelled` boolean: Is this appointment cancelled?
    - `timezone` string: Appointment timezone
    - `institution_id` integer: Institution ID
    - `appointment_type_id` integer: Nexhealth appointment_type ID, 0 if not set
    - `checkin_at` string, date-time: Time the patient checked in at in UTC. Not supported by all integrations
    - `location_id` integer: Appointment location ID
    - `foreign_id` string: Identifier NexHealth uses to uniquely match this record to its counterpart in the integrated EHR. How it is derived differs between EHRs and may change; treat it as an opaque string and do not parse it.
    - `foreign_id_type` string: Unique identifier for the integrated system itself
    - `misc` object: Miscellaneous information for the appointment
    - `patient_confirmed` integer: Is this appointment confirmed by the patient (as opposed to the office)?
    - `created_by_user_id` integer: ID of the user who booked the appointment
    - `patient_confirmed_at` string, date-time: Time of patient_confirmation in UTC
    - `cancelled_at` string, date-time: Time of appointment cancellation in UTC. Note this will not be reset if the appointment is uncancelled
    - `confirmed_at` string, date-time: Time of appointment confirmation by the office in UTC
    - `sooner_if_possible` boolean: Does patient want an earlier time?
    - `operatory_id` integer: Operatory ID for the appointment
    - `checked_out` boolean: Has the patient checked out? Not supported by all integrations
    - `checked_out_at` string, date-time: Time of check out in UTC
    - `is_past_patient` boolean: Does this patient have prior appointments?
    - `timezone_offset` string: Timezone offset string
    - `descriptors` APIV31EntitiesEhrApptDescriptor[]: EHR descriptors
      - `id` integer: Descriptor ID
      - `descriptor_type` string: The type of descriptor
      - `name` string: The name of descriptor
      - `code` string: The code of descriptor
      - `location_id` integer: The location this object belongs to
      - `foreign_id` string: Identifier NexHealth uses to uniquely match this record to its counterpart in the integrated EHR. How it is derived differs between EHRs and may change; treat it as an opaque string and do not parse it.
      - `foreign_id_type` string: Unique identifier for the integrated system itself
      - `data` object: The configuration object, structure depends on the underlying EHR
      - `active` boolean: Is descriptor active?
      - `created_at` string, date-time: The datetime the descriptor was created in UTC
      - `updated_at` string, date-time: The datetime the descriptor was last updated in UTC
  - `page_info` object: Pagination information that can be used for fetching previous and next pages.

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found
- `500`: Internal Server Error

---

[API](https://skmtc.dev/nexhealth/apis/nexhealth-api-v3-1-0-beta.md) - [All operations](https://skmtc.dev/nexhealth/apis/nexhealth-api-v3-1-0-beta/llms.txt) - [OpenAPI document](https://skmtc.dev/nexhealth/apis/nexhealth-api-v3-1-0-beta/revisions/93cb4af790a5?raw)
