---
title: "List availability"
method: GET
path: "/availabilities"
tags: ["availabilities"]
---

# List availability

`GET /availabilities`

## Query parameters

- `appointmentType` string
- `includeNullApptTypes` boolean
- `date` string, date-time
- `facility` string
- `patientForm` string
- `patientFormTemplate` string
- `provider` string
- `status` 'available'
- `sort` 'date'
- `sortBy` 'asc' | 'desc'
- `user` string
- `deleted` 0 | 1
- `createdBy` string
- `updatedBy` string
- `createdAt` string, date-time
- `updatedAt` string, date-time
- `page` integer
- `limit` integer
- `_populate` string
- `_select` string

## Response `200`

List of availabilities

- object
  - `response` AvailabilitySchedulerResponse[], required
    - `_id` string — Luma's internal ID of an object.
    - `user` string — The ID of the root account user.
    - `deleted` 0 | 1 — Flag for logical deletion where 1 means deleted.
    - `createdBy` string — The ID of the user who created this object.
    - `updatedBy` string — The ID of the user who updated this object.
    - `createdAt` string, date-time — The date/time when this object was created.
    - `updatedAt` string, date-time — The date/time when this object was updated.
    - `filters` Filters — Object containing the filters with appointmentTypes, facilities, providers
      - `appointmentTypes` string[] — List of appointmentTypes' IDs
      - `facilities` string[] — List of facilities' IDs
      - `providers` string[] — List of providers' IDs
    - `provider` string — Either the ID or a populated object referring to the provider/doctor for whom this scheduler availability is. Depending on the queryParameter `populate`, the ID might become an object containing: `{ _id, name, lastname, firstname }`, all strings.
    - `facility` string — Either the ID or a populated object referring to the place/facility where a scheduler availability should take place. Depending on the queryParameter `populate`, the ID might become an object containing: `{ _id, name, address, city, state, postcode, phone }`, all strings.
    - `appointmentType` string — The ID of an `appointmentType` describing the kind of appointment that might be scheduled for this availability.
    - `date` string, date-time — The exact *start* date/time of the availability, in ISO format, including timezone information. Example: `2022-09-09T23:59:59-03:00`.
    - `duration` integer — The duration of the availability, in minutes. Added to the `date`, you reach the `endDate`.
    - `endDate` string, date-time — The exact *end* date/time of the availability, in ISO format, including timezone information. Example: `2022-09-09T23:59:59-03:00`. Calculated by adding the `duration` (in minutes) to the start `date`.
    - `externalId` ExternalId
      - `source` 'gcalendar' | 'successehs' | 'drchrono' | 'dentrix' | 'webpt' | 'theraoffice' | 'mi7' | 'practicefusion' | 'advancedmd' | 'acomrapidpm' | 'kareo' | 'nextech' | 'mwtherapy' | 'clinicient' | 'carecloud' | 'eclinicalmobile' | 'duxware' | 'labretriever' | 'optimispt' | 'referral' | 'recall' | 'allscriptspm' | 'lytec' | 'brightree' | 'fullslate' | 'nuemd' | 'centricityps' | 'officeally' | 'greenwayintergy' | 'compulink' | 'adspm' | 'dsnpm' | 'lumamock' | 'medicalmastermind' | 'meditouch' | 'healthnautica' | 'ezemrx' | 'hl7' | 'amazingcharts' | 'greenwayprimesuite' | 'raintree' | 'athenahealth' | 'revflow' | 'eclinicalworks10e' | 'hl7pickup' | 'mindbody' | 'eclinicalworkssql' | 'nextgen' | 'practiceperfect' | 'avimark' | 'clinix' | 'keymedical' | 'mdoffice' | 'webedoctor' | 'emapm' | 'medinformatix' | 'imsgo' | 'emds' | 'allscriptsunity' | 'medevolve' | 'caretracker' | 'clearpractice' | 'valant' | 'micromd' | 'systemedx' | 'medicalmaster' | 'athenamdp' | 'gmed' | 'roche' | 'onetouch' | 'somnoware' | 'managementplus' | 'lumacare' | 'nextechfhir' | 'curemd' | 'epic' | 'phoenixortho' | 'ezderm' | 'ggastromobile' | 'epicconfirmationpickup' | 'cerner' | 'allmeds' | 'oncoemrfilepickup' | 'imedicware' | 'modmedfhir' | 'clinux' | 'acuityscheduling' | 'medstreaming' | 'isalus' | 'meditechexpanse' | 'openemr' | 'genericfhir' | 'nextechpracticeplus' | 'sms' | 'voice' | 'email' | 'none' — externalId.source
      - `value` string — externalId.value
    - `status` object — The status of the availability.
    - `offer` string — The ID of an `offer` made to a patient to schedule an appointment at an available date/time. If the patient scheduled the appointment themselves, through a scheduler page on the web, then the `availability` is marked as `booked-pending`. An `offer` is created behind the scenes as the bridge between Luma and the clinic's EHR system. It serves as a pre-scheduling request. Once the EHR confirms that such date/time is available, then the `appointment` is confirmed/booked, the `availability` is marked as booked, and the `offer` ID is stored on the availability.
    - `locked` boolean — If `true`, then the availability cannot be booked by patients. It is still available for the clinic to book it. This is useful for the clinic to reserve a date/time for a patient who is not yet registered on Luma.
  - `page` integer, required
  - `size` integer, required

## Other responses

- `401` — Not authenticated
- `403` — Access token does not have the required scope

---

[API](https://skmtc.net/lumahealth/apis/rest-service.md) · [All operations](https://skmtc.net/lumahealth/apis/rest-service/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/lumahealth/rest-service/revisions/d3c75c2a2f1d/schema)
