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

# View appointment (beta)

`GET /appointments/{id}`

## Request

- Base URL: `https://nexhealth.info`
- URL: `https://nexhealth.info/appointments/{id}`
- 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:** Changes query param `include[]`; adds response fields `data.patient.address`, `data.patient.address.city`, `data.patient.address.line_1`, `data.patient.address.line_2` (+34 more); and other schema changes.

This endpoint returns a single appointment by its NexHealth ID, with optional sideloading of `patient`, `guarantor`, `descriptors`, `procedures`, `operatory`, and `appointment_type`.

## Path parameters

- `id` integer, required

## Query parameters

- `subdomain` string, required
- `include[]` string[]

## Headers

- `Nex-Api-Version` string, required

## Response `200`

Successful

- APIV31EntitiesAppointmentResponse: API_V31_Entities_Appointment_Response 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` APIV31EntitiesAppointment
    - `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
    - `patient` APIV31EntitiesPatientWithGuarantor
      - `id` integer: User ID
      - `email` string: User email
      - `first_name` string: First name
      - `middle_name` string: Middle name
      - `last_name` string: Last name
      - `name` string: Full name
      - `created_at` string, date-time: User creation date in UTC
      - `updated_at` string, date-time: User last update date in UTC
      - `institution_id` integer: The institution this user 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: Foreign ID type is a unique string identifier for the integrated system
      - `inactive` boolean: Is the user inactivated?
      - `home_phone_number` string: Home phone number
      - `work_phone_number` string: Work phone number
      - `work_phone_extension` string: Work phone extension
      - `cell_phone_number` string: Cell phone number. When the integrated system reports the patient's main number as an untyped primary number instead of a typed cell number — which is how most systems report it back after a write — this field falls back to that primary number. The fallback is usually the cell number, but the integrated system does not guarantee the primary number is a cell number.
      - `preferred_phone_number` string: The best-known phone number for reaching the patient: the first available of the integrated system's untyped primary number, cell phone number, home phone number, and work phone number. Read-only — write one of the typed phone number fields to change it.
      - `guarantor_id` integer: User ID of this patient's responsible party
      - `billing_type` string: Used by practices in some integrated systems to categorize and filter patients when creating reports, requesting payments, and performing other related office tasks. Some integrated systems call this an account type rather than a billing type
      - `chart_id` string: User-facing ID for referencing patient data, used in some integrated systems. Depending on the system, the chart ID supplements or replaces the foreign_id as the ID visible to EHR users
      - `preferred_language` string: Patient's preferred language as an ISO 639-1 code, if specified in the integrated system
      - `provider_id` integer: User ID of this patient's primary provider
      - `gender` string: Gender from biographical data
      - `new_patient` boolean: Whether the patient is new
      - `non_patient` boolean: Whether this is a non-patient user record
      - `date_of_birth` string: Date of birth in YYYY-MM-DD format
      - `premedication` string: Premedication notes
      - `address` APIV2EntitiesPatientAddress
        - `line_1` string, nullable: Address line 1
        - `line_2` string, nullable: Address line 2
        - `postal_code` string, nullable: Zip code
        - `city` string, nullable: City
        - `region` string, nullable: State
      - `guarantor` APIV31EntitiesPatientBasic
        - `id` integer: User ID
        - `email` string: User email
        - `first_name` string: First name
        - `middle_name` string: Middle name
        - `last_name` string: Last name
        - `name` string: Full name
        - `created_at` string, date-time: User creation date in UTC
        - `updated_at` string, date-time: User last update date in UTC
        - `institution_id` integer: The institution this user 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: Foreign ID type is a unique string identifier for the integrated system
        - `inactive` boolean: Is the user inactivated?
        - `home_phone_number` string: Home phone number
        - `work_phone_number` string: Work phone number
        - `work_phone_extension` string: Work phone extension
        - `cell_phone_number` string: Cell phone number. When the integrated system reports the patient's main number as an untyped primary number instead of a typed cell number — which is how most systems report it back after a write — this field falls back to that primary number. The fallback is usually the cell number, but the integrated system does not guarantee the primary number is a cell number.
        - `preferred_phone_number` string: The best-known phone number for reaching the patient: the first available of the integrated system's untyped primary number, cell phone number, home phone number, and work phone number. Read-only — write one of the typed phone number fields to change it.
        - `guarantor_id` integer: User ID of this patient's responsible party
        - `billing_type` string: Used by practices in some integrated systems to categorize and filter patients when creating reports, requesting payments, and performing other related office tasks. Some integrated systems call this an account type rather than a billing type
        - `chart_id` string: User-facing ID for referencing patient data, used in some integrated systems. Depending on the system, the chart ID supplements or replaces the foreign_id as the ID visible to EHR users
        - `preferred_language` string: Patient's preferred language as an ISO 639-1 code, if specified in the integrated system
        - `provider_id` integer: User ID of this patient's primary provider
        - `gender` string: Gender from biographical data
        - `new_patient` boolean: Whether the patient is new
        - `non_patient` boolean: Whether this is a non-patient user record
        - `date_of_birth` string: Date of birth in YYYY-MM-DD format
        - `premedication` string: Premedication notes
        - `address` APIV2EntitiesPatientAddress
          - `line_1` string, nullable: Address line 1
          - `line_2` string, nullable: Address line 2
          - `postal_code` string, nullable: Zip code
          - `city` string, nullable: City
          - `region` string, nullable: State
    - `operatory` APIV31EntitiesOperatoryBasic
      - `id` integer: Operatories ID
      - `name` string: Name of the operatory from the integrated system
      - `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: Foreign ID type is a unique identifier for the integrated system
      - `location_id` integer, nullable: Location ID relevant to the Operatory
      - `created_at` string, date-time: Operatories created time in UTC
      - `updated_at` string, date-time: Operatories last updation time in UTC
      - `display_name` string, nullable: Optional custom display name
      - `active` boolean: Is operatory active?
      - `bookable_online` boolean: Operatory is active for online booking?
    - `appointment_type` APIV2EntitiesAppointmentTypeBasic
      - `id` integer: Appointment type ID
      - `name` string: Appointment type name. Unique string identifier
      - `parent_type` string: Parent type for appointment type. Defines the belongs to relationship with either Institution or Location
      - `parent_id` integer: Identifies the specific resource the appointment type belongs to (see parent_type)
      - `minutes` integer: Default duration of appointments of this appointment type
      - `bookable_online` boolean: True if this appointment type should be bookable via the NexHealth online booking page
    - `procedures` APIV2EntitiesProcedure[]: Procedures assigned to the appointment
      - `id` integer: Procedure ID
      - `location_id` integer, nullable: Location ID
      - `patient_id` integer, nullable: Patient ID
      - `provider_id` integer, nullable: Provider ID
      - `appointment_id` integer, nullable: Appointment ID. Null when the procedure is not attached to an appointment
      - `code` string, nullable: Procedure code
      - `name` string, nullable: Procedure name
      - `status` 'planned' | 'scheduled' | 'completed' | 'inactive' | 'referred' | 'existing', nullable: Procedure status
      - `updated_at` string, date-time: Procedure update date in UTC
      - `body_site` APIV2EntitiesProcedureBodySite
        - `tooth` string[]: Tooth identifier strings, typically tooth numbers
        - `surface` string: Tooth surface codes
      - `fee` APIV2EntitiesPrice
        - `amount` string: The currency value, in whole units (e.g. dollars)
        - `currency` string: The ISO currency code
      - `start_date` string, date, nullable: Start date for procedure
      - `end_date` string, date, nullable: End date for procedure
  - `count` integer: Number of total objects, in case of collection.

## 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)
