---
title: "Show a list of providers"
method: GET
path: "/providers"
tags: ["providers"]
---

# Show a list of providers

`GET /providers`

## Query parameters

- `searchByPartialName` string
- `npiSearch` string
- `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`

Returns a list of providers

- object
  - `response` ProviderResponse[], required
    - `_id` string, required — 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.
    - `name` string, required — name
    - `normalizedName` string — normalizedName
    - `firstname` string — firstname
    - `lastname` string — lastname
    - `middlename` string — middlename
    - `displayPhone` string — displayPhone
    - `displayStatus` 'active' | 'pending' | 'suspended' — displayStatus
    - `email` string — email
    - `safeId` string — safeId
    - `type` 'doctor' | 'staff' | 'patient' | 'guest' — type
    - `roles` string[] — roles
    - `rolesByUser` RolesByUser — Object containing 2 keys, referringProvider and renderingProvider. The value for each key is an array. The content of the array should be the root account ids under the same organization, where this user has the role with the same name of the key.
      - `referringProvider` string[] — List of root account IDs under an organization where the user has the role referringProvider
      - `renderingProvider` string[] — List of root account IDs under an organization where the user has the role renderingProvider
    - `organization` string — ID of Organization
    - `contact` object[] — contact
      - `type` 'inapp' | 'sms' | 'voice' | 'email' | 'fax' | 'whatsapp' — type
      - `value` string — value
      - `active` boolean — active
      - `archived` boolean — archived
      - `archivedReason` 'none' | 'unreachable' | 'do-not-contact' — archivedReason
      - `archivedMessage` string — ID of Message
    - `doNotContact` boolean — doNotContact
    - `doNotContactMessage` string — ID of Message
    - `groups` string[] — groups
    - `stripeCustomerId` string — stripeCustomerId
    - `stripeSubscriptionId` string — stripeSubscriptionId
    - `salesforceId` string — salesforceId
    - `lastLogin` string, date-time — lastLogin
    - `active` number — active
    - `master` boolean — master
    - `language` string — language
    - `setting` string — ID of Setting
    - `settings` SettingProperty
      - `session` object
        - `logoutTimeout` number — settings.session.logoutTimeout
      - `welcome` object
        - `currentStep` number — settings.welcome.currentStep
        - `termsAgreementDate` string, date-time — settings.welcome.termsAgreementDate
      - `telehealth` object
        - `enabled` boolean — settings.telehealth.enabled
        - `sessionReminderMinutes` number — settings.telehealth.sessionReminderMinutes
        - `sessionFinalReminderMinutes` number — settings.telehealth.sessionFinalReminderMinutes
        - `maximumNoShowMinutes` number — settings.telehealth.maximumNoShowMinutes
        - `vendor` 'twilio' | 'zoom' — settings.telehealth.vendor
        - `vendors` object
          - `zoom` object
            - `apiKey` string — settings.telehealth.vendors.zoom.apiKey
            - `apiSecret` string — settings.telehealth.vendors.zoom.apiSecret
            - `type` 'free' | 'pro' | 'business' — settings.telehealth.vendors.zoom.type
        - `showTimer` boolean — settings.telehealth.showTimer
        - `requireProviderLogin` boolean — settings.telehealth.requireProviderLogin
        - `telehealthGroup` object
          - `createDefaultGroup` object
            - `enabled` boolean — settings.telehealth.telehealthGroup.createDefaultGroup.enabled
          - `addProviderToDefaultGroup` object
            - `enabled` boolean — settings.telehealth.telehealthGroup.addProviderToDefaultGroup.enabled
      - `labs` object
        - `enabled` boolean — settings.labs.enabled
      - `lumabot` object
        - `enabled` boolean — settings.lumabot.enabled
        - `includePoweredByLuma` boolean — settings.lumabot.includePoweredByLuma
        - `placement` string — settings.lumabot.placement
        - `name` string — settings.lumabot.name
        - `header` string — settings.lumabot.header
        - `prompt` string — settings.lumabot.prompt
        - `avatar` string — ID of FileUpload
        - `theme` object
          - `palette` object
            - `primary` object
              - …
            - `secondary` object
              - …
            - `tertiary` object
              - …
            - `background` object
              - …
      - `communication` object
        - `defaultChatVisibility` 'public' | 'internal' — settings.communication.defaultChatVisibility
        - `defaultChatCommunicationSecurity` object
          - `level` 'secure' | 'insecure' — settings.communication.defaultChatCommunicationSecurity.level
          - `acknowledgedBy` string — ID of User
          - `acknowledgedAt` string, date-time — settings.communication.defaultChatCommunicationSecurity.acknowledgedAt
        - `useFacilityPhoneAsFromNumber` boolean — settings.communication.useFacilityPhoneAsFromNumber
        - `useFacilityAlternativePhoneAsFromNumber` boolean — settings.communication.useFacilityAlternativePhoneAsFromNumber
        - `useFacilityNumberFallback` object
          - `enabled` boolean — settings.communication.useFacilityNumberFallback.enabled
          - `phone` string — settings.communication.useFacilityNumberFallback.phone
        - `unsubscribedMessages` unknown[] — settings.communication.unsubscribedMessages
          - unknown
        - `blockedContacts` unknown[] — settings.communication.blockedContacts
          - unknown
        - `limitedContacts` unknown[] — settings.communication.limitedContacts
          - unknown
        - `expirePatientData` object
          - `enabled` boolean — settings.communication.expirePatientData.enabled
          - `maxAgeInDays` number — settings.communication.expirePatientData.maxAgeInDays
        - `urlReplacers` object[] — settings.communication.urlReplacers
          - `find` string — find
          - `replace` string — replace
          - `_id` string — _id
        - `disableAutomaticLinkShortening` boolean — settings.communication.disableAutomaticLinkShortening
        - `filterPatientMessageHistory` unknown[] — settings.communication.filterPatientMessageHistory
          - unknown
        - `staffDisabledChannels` string[] — settings.communication.staffDisabledChannels
        - `reopenChatsForUnclassifiedReplies` boolean — settings.communication.reopenChatsForUnclassifiedReplies
        - `minLengthToReopenChat` number — settings.communication.minLengthToReopenChat
        - `minLengthToReopenChatPerTemplate` unknown
        - `reopenChatsWithStatusUnassigned` boolean — settings.communication.reopenChatsWithStatusUnassigned
        - `sendAfterHoursMessageForInboundChats` boolean — settings.communication.sendAfterHoursMessageForInboundChats
        - `broadcastSkipPatientLookup` boolean — settings.communication.broadcastSkipPatientLookup
        - `officeHoursPerDay` object[] — settings.communication.officeHoursPerDay
          - `weekDay` number — weekDay
          - `beginAt` number — beginAt
          - `endAt` number — endAt
          - `_id` string — _id
        - `customHolidays` object — settings.communication.customHolidays
          - `dates` object[] — settings.communication.customHolidays.dates
            - `date` string, date-time — date
            - `description` string — description
            - `closed` boolean — closed
            - `sendAppointmentReminders` 'before' | 'as-scheduled' — sendAppointmentReminders
            - `sendReferralReminders` 'after' | 'as-scheduled' — sendReferralReminders
            - `_id` string — _id
        - `officeHours` object
          - `beginAt` number — settings.communication.officeHours.beginAt
          - `endAt` number — settings.communication.officeHours.endAt
        - `numberMasking` object
          - `enabled` boolean — settings.communication.numberMasking.enabled
        - `emailMasking` object
          - `enabled` boolean — settings.communication.emailMasking.enabled
          - `fromName` string — settings.communication.emailMasking.fromName
          - `fromEmail` string — settings.communication.emailMasking.fromEmail
        - `contactVerification` object
          - `enabled` boolean — settings.communication.contactVerification.enabled
        - `patientInitiatedTexting` object
          - `enabled` boolean — settings.communication.patientInitiatedTexting.enabled
          - `lookupCallerId` boolean — settings.communication.patientInitiatedTexting.lookupCallerId
          - `useRandomNumbersAsGeneratedName` boolean — settings.communication.patientInitiatedTexting.useRandomNumbersAsGeneratedName
        - `searchByToAndFrom` boolean — settings.communication.searchByToAndFrom
        - `systemMessagesExpiration` object
          - `enabled` boolean — settings.communication.systemMessagesExpiration.enabled
          - `value` number — settings.communication.systemMessagesExpiration.value
          - `unit` 'years' | 'months' | 'weeks' | 'days' | 'hours' — settings.communication.systemMessagesExpiration.unit
        - `inboundMessageReplies` object
          - `length` number — settings.communication.inboundMessageReplies.length
          - `keys` unknown[] — settings.communication.inboundMessageReplies.keys
            - unknown
        - `outboundMessages` object
          - `allowRetries` boolean — settings.communication.outboundMessages.allowRetries
          - `skipSmsToLandline` boolean — settings.communication.outboundMessages.skipSmsToLandline
          - `allowSmsOverLongCode` object
            - `enabled` boolean — settings.communication.outboundMessages.allowSmsOverLongCode.enabled
          - `multiChannelRetries` object
            - `enabled` boolean — settings.communication.outboundMessages.multiChannelRetries.enabled
            - `shouldSmsNumberBeRetriedAsVoice` object
              - …
            - `channels` string[] — settings.communication.outboundMessages.multiChannelRetries.channels
            - `failuresToIgnoreByChannel` string[] — settings.communication.outboundMessages.multiChannelRetries.failuresToIgnoreByChannel
            - `refs` unknown[] — settings.communication.outboundMessages.multiChannelRetries.refs
              - …
            - `number` number — settings.communication.outboundMessages.multiChannelRetries.number
        - `filterChatsByGroupsFacilities` boolean — settings.communication.filterChatsByGroupsFacilities
        - `suppressMessagesByProvisioning` boolean — settings.communication.suppressMessagesByProvisioning
        - `sortMessagesBy` 'unreadMessages' | 'priorityUpdatedAt' — settings.communication.sortMessagesBy
        - `chatAssignmentOnHubSend` 'reassign' | 'keepAssignee' — settings.communication.chatAssignmentOnHubSend
        - `chatAssignmentOnProfileSend` 'reassign' | 'keepAssignee' — settings.communication.chatAssignmentOnProfileSend
        - `useFixedNumber` object
          - `enabled` boolean — settings.communication.useFixedNumber.enabled
          - `vendor` 'twilio' | 'bandwidth' — settings.communication.useFixedNumber.vendor
          - `number` string — settings.communication.useFixedNumber.number
          - `allowAutoReplacement` boolean — settings.communication.useFixedNumber.allowAutoReplacement
          - `numbers` object[] — settings.communication.useFixedNumber.numbers
            - `enabled` boolean — enabled
            - `default` boolean — default
            - `vendor` 'twilio' | 'bandwidth' — vendor
            - `number` string — number
            - `allowAutoReplacement` boolean — allowAutoReplacement
            - `_id` string — _id
        - `enableInboundCallForwardingToFacilityPhone` boolean — settings.communication.enableInboundCallForwardingToFacilityPhone
        - `enableInboundCallForwardingToFacilityAlternativePhone` boolean — settings.communication.enableInboundCallForwardingToFacilityAlternativePhone
        - `useExistentLumaContactOnBroadcastsWithEmptyValues` boolean — settings.communication.useExistentLumaContactOnBroadcastsWithEmptyValues
        - `broadcast` object
          - `patientsBatchLimit` object
            - `enabled` boolean — settings.communication.broadcast.patientsBatchLimit.enabled
            - `value` number — settings.communication.broadcast.patientsBatchLimit.value
            - `interval` object
              - …
          - `rolesToBeNotifiedOnRequiredAction` object
            - `shouldNotifyByGroup` boolean — settings.communication.broadcast.rolesToBeNotifiedOnRequiredAction.shouldNotifyByGroup
            - `roles` string[] — settings.communication.broadcast.rolesToBeNotifiedOnRequiredAction.roles
          - `messagesOverrides` object
            - `enabled` boolean — settings.communication.broadcast.messagesOverrides.enabled
          - `uploadMapper` object
            - `enabled` boolean — settings.communication.broadcast.uploadMapper.enabled
          - `statusChangesNotifications` object
            - `enabled` boolean — settings.communication.broadcast.statusChangesNotifications.enabled
        - `ignoreInactiveContactsToSendMessage` object
          - `enabled` boolean — settings.communication.ignoreInactiveContactsToSendMessage.enabled
      - `timezone` string — settings.timezone
      - `useTimezoneFrom` 'user' | 'facility' — settings.useTimezoneFrom
      - `localization` 'en-US' | 'pt-BR' — settings.localization
      - `scheduler` object
        - `enabled` boolean — settings.scheduler.enabled
        - `alwaysHideToolbar` boolean — settings.scheduler.alwaysHideToolbar
        - `zipcodeMaxDistance` number — settings.scheduler.zipcodeMaxDistance
        - `daysAheadToShowAvailability` number — settings.scheduler.daysAheadToShowAvailability
        - `hoursAheadToShowAvailability` number — settings.scheduler.hoursAheadToShowAvailability
        - `maxDaysToShow` number — settings.scheduler.maxDaysToShow
        - `skipResettingAvailabilities` boolean — settings.scheduler.skipResettingAvailabilities
        - `skipTwoFactorAuthentication` boolean — settings.scheduler.skipTwoFactorAuthentication
        - `skipHeatMap` boolean — settings.scheduler.skipHeatMap
        - `requireForm` boolean — settings.scheduler.requireForm
        - `confirmationQrcode` object
          - `enabled` boolean — settings.scheduler.confirmationQrcode.enabled
          - `value` string — settings.scheduler.confirmationQrcode.value
        - `providerAvailabilityFilter` object[] — settings.scheduler.providerAvailabilityFilter
          - `dayOfMonth` number — dayOfMonth
          - `dayOfWeek` number — dayOfWeek
          - `startTime` string, date-time — startTime
          - `endTime` string, date-time — endTime
          - `_id` string — _id
        - `availabilityBlocks` object[] — settings.scheduler.availabilityBlocks
          - `dayOfWeek` number — dayOfWeek
          - `startTime` number — startTime
          - `endTime` number — endTime
          - `_id` string — _id
        - `maxAvailablitiesToRender` number — settings.scheduler.maxAvailablitiesToRender
        - `patientAddress` object
          - `required` boolean — settings.scheduler.patientAddress.required
          - `visible` boolean — settings.scheduler.patientAddress.visible
        - `patientEmailAddress` object
          - `required` boolean — settings.scheduler.patientEmailAddress.required
        - `reschedulerRespectsSchedulerRules` boolean — settings.scheduler.reschedulerRespectsSchedulerRules
        - `createPatientOnLookupFailure` boolean — settings.scheduler.createPatientOnLookupFailure
        - `minimumIntervalRequiredForBooking` number — settings.scheduler.minimumIntervalRequiredForBooking
        - `forceAppointmentTypeDuration` boolean — settings.scheduler.forceAppointmentTypeDuration
        - `ignoreDurationOnAvailabilityLookup` boolean — settings.scheduler.ignoreDurationOnAvailabilityLookup
        - `useAppointmentDurationOnAvailabilityCoalescing` boolean — settings.scheduler.useAppointmentDurationOnAvailabilityCoalescing
        - `botResponses` object
          - `enabled` boolean — settings.scheduler.botResponses.enabled
        - `showChatOnCompletion` boolean — settings.scheduler.showChatOnCompletion
        - `preQualificationFormTemplate` string — ID of PatientFormTemplate
        - `allowMultiLinkedAppointments` boolean — settings.scheduler.allowMultiLinkedAppointments
        - `hideProviderDetails` boolean — settings.scheduler.hideProviderDetails
        - `queryRealtimeAvailaiblitiesFromIntegration` boolean — settings.scheduler.queryRealtimeAvailaiblitiesFromIntegration
        - `sampleAvailabilityQuery` boolean — settings.scheduler.sampleAvailabilityQuery
        - `embeddedWidgetHtml` string — settings.scheduler.embeddedWidgetHtml
        - `useDependentProviderOnAnchorAvailability` boolean — settings.scheduler.useDependentProviderOnAnchorAvailability
        - `singleUseSchedulerLink` object
          - `enabled` boolean — settings.scheduler.singleUseSchedulerLink.enabled
        - `onlyNotifyStaffOnAnchorApptBooking` boolean — settings.scheduler.onlyNotifyStaffOnAnchorApptBooking
        - `minimumDaysFromLastAppointment` object
          - `enabled` boolean — settings.scheduler.minimumDaysFromLastAppointment.enabled
          - `amount` number — settings.scheduler.minimumDaysFromLastAppointment.amount
          - `status` string[] — settings.scheduler.minimumDaysFromLastAppointment.status
      - `outboundReferral` object
        - `enabled` boolean — settings.outboundReferral.enabled
        - `attempts` number — settings.outboundReferral.attempts
        - `interval` number — settings.outboundReferral.interval
        - `sendReferralFax` boolean — settings.outboundReferral.sendReferralFax
        - `sendReferralFaxCoversheet` boolean — settings.outboundReferral.sendReferralFaxCoversheet
        - `botResponses` object
          - `enabled` boolean — settings.outboundReferral.botResponses.enabled
        - `displayVisitReasonDropdown` boolean — settings.outboundReferral.displayVisitReasonDropdown
      - `referral` object
        - `enabled` boolean — settings.referral.enabled
        - `attempts` number — settings.referral.attempts
        - `useOutreachExperience` object
          - `enabled` boolean — settings.referral.useOutreachExperience.enabled
        - `interval` number — settings.referral.interval
        - `schedulableWindow` object
          - `earliest` number — settings.referral.schedulableWindow.earliest
          - `latest` number — settings.referral.schedulableWindow.latest
        - `sendReferralFax` boolean — settings.referral.sendReferralFax
        - `sendReferralFaxCoversheet` boolean — settings.referral.sendReferralFaxCoversheet
        - `sendReferralFaxStatus` object
          - `scheduled` boolean — settings.referral.sendReferralFaxStatus.scheduled
          - `cancelled` boolean — settings.referral.sendReferralFaxStatus.cancelled
          - `incomplete` boolean — settings.referral.sendReferralFaxStatus.incomplete
        - `sendReferralEmail` boolean — settings.referral.sendReferralEmail
        - `requireFullMatchForAutoSchedule` boolean — settings.referral.requireFullMatchForAutoSchedule
        - `requireSpecificMatchForAutoSchedule` boolean — settings.referral.requireSpecificMatchForAutoSchedule
        - `skipAutoSchedule` boolean — settings.referral.skipAutoSchedule
        - `requireMaxHoursApartFromAppointmentForAutoSchedule` number — settings.referral.requireMaxHoursApartFromAppointmentForAutoSchedule
        - `includeInternalMessagingInFollowupFax` boolean — settings.referral.includeInternalMessagingInFollowupFax
        - `formLink` string — settings.referral.formLink
        - `botResponses` object
          - `enabled` boolean — settings.referral.botResponses.enabled
        - `recommendations` object
          - `timingPreferences` object
            - `enabled` boolean — settings.referral.recommendations.timingPreferences.enabled
        - `markReferralsIncompleteAfterLastOutreachInHours` number — settings.referral.markReferralsIncompleteAfterLastOutreachInHours
        - `useFacilityAlternativeNumber` boolean — settings.referral.useFacilityAlternativeNumber
        - `suppressExpiration` object
          - `enabled` boolean — settings.referral.suppressExpiration.enabled
      - `reminder` object
        - `multipleRemindersPerDay` 'onlySendEarliest' | 'multipleRemindersPerDay' — settings.reminder.multipleRemindersPerDay
        - `onlySendEarliestForApptTypesWithRemindersEnabled` boolean — settings.reminder.onlySendEarliestForApptTypesWithRemindersEnabled
        - `multipleRemindersPerDayShouldOnlyConsiderResourcesWithRemindersEnabledInSquiggly` boolean — settings.reminder.multipleRemindersPerDayShouldOnlyConsiderResourcesWithRemindersEnabledInSquiggly
        - `multipleRemindersPerDayRepliesOverride` 'disabled' | 'allowed' | 'confirmationOnly' | 'none' — settings.reminder.multipleRemindersPerDayRepliesOverride
        - `schedule` unknown[] — settings.reminder.schedule
          - unknown
        - `enabled` boolean — settings.reminder.enabled
        - `onConfirmation` 'skipFurtherReminders' | 'keepLastReminder' — settings.reminder.onConfirmation
        - `repliesForLastReminder` 'allowed' | 'confirmationOnly' | 'none' — settings.reminder.repliesForLastReminder
        - `replies` 'allowed' | 'confirmationOnly' | 'none' — settings.reminder.replies
        - `enabledChannels` string[] — settings.reminder.enabledChannels
        - `treatCancellationsAsNoShows` number — settings.reminder.treatCancellationsAsNoShows
        - `offerToJoinWaitlistOnCancellation` 'disabled' | 'from-reminder' | 'from-integrator' | 'from-both' — settings.reminder.offerToJoinWaitlistOnCancellation
        - `schedulableWindow` object
          - `earliest` number — settings.reminder.schedulableWindow.earliest
          - `latest` number — settings.reminder.schedulableWindow.latest
        - `allowSelfSchedule` boolean — settings.reminder.allowSelfSchedule
        - `allowSelfReschedule` boolean — settings.reminder.allowSelfReschedule
        - `allowSelfRescheduleAvailabilityFilter` string[] — settings.reminder.allowSelfRescheduleAvailabilityFilter
        - `allowSelfRescheduleExpiry` number — settings.reminder.allowSelfRescheduleExpiry
        - `rescheduleSundayToSaturday` boolean — settings.reminder.rescheduleSundayToSaturday
        - `forceVoiceCallsForSmsNonResponders` boolean — settings.reminder.forceVoiceCallsForSmsNonResponders
        - `cancelOrConfirmAllAppointmentsInDay` boolean — settings.reminder.cancelOrConfirmAllAppointmentsInDay
        - `cancelOrConfirmAppointmentsInDayOnlyIfTypeVisible` boolean — settings.reminder.cancelOrConfirmAppointmentsInDayOnlyIfTypeVisible
        - `shouldRespectCancelOrConfirmAllAppointmentsInDay` boolean — settings.reminder.shouldRespectCancelOrConfirmAllAppointmentsInDay
        - `allowConfirmAfterCancel` boolean — settings.reminder.allowConfirmAfterCancel
        - `allowCancelAfterConfirm` boolean — settings.reminder.allowCancelAfterConfirm
        - `allowCancelAfterAppointmentStart` boolean — settings.reminder.allowCancelAfterAppointmentStart
        - `strictConfirmCancelTextHandling` boolean — settings.reminder.strictConfirmCancelTextHandling
        - `disableCatchupReminders` boolean — settings.reminder.disableCatchupReminders
        - `botResponses` object
          - `enabled` boolean — settings.reminder.botResponses.enabled
        - `forceMessageTime` object
          - `enabled` boolean — settings.reminder.forceMessageTime.enabled
          - `until` string — settings.reminder.forceMessageTime.until
        - `sendReminderOnHolidays` object
          - `enabled` boolean — settings.reminder.sendReminderOnHolidays.enabled
      - `cancellation` object
        - `enabled` boolean — settings.cancellation.enabled
        - `expiration` number — settings.cancellation.expiration
        - `processAppointmentTypes` boolean — settings.cancellation.processAppointmentTypes
        - `requireFrontOfficeAcceptance` boolean — settings.cancellation.requireFrontOfficeAcceptance
        - `shadowAppointment` object
          - `enabled` boolean — settings.cancellation.shadowAppointment.enabled
        - `allowDoubleBooks` boolean — settings.cancellation.allowDoubleBooks
        - `skipAvailabilityCreateFromCancellationStatusSources` unknown[] — settings.cancellation.skipAvailabilityCreateFromCancellationStatusSources
          - unknown
        - `maxDaysAheadsToProcessCancellation` number — settings.cancellation.maxDaysAheadsToProcessCancellation
        - `minMinutesAheadsToProcessCancellation` number — settings.cancellation.minMinutesAheadsToProcessCancellation
        - `minMinutesAheadsToProcessCancellationProviderOverridePolicy` 'min' | 'max' — settings.cancellation.minMinutesAheadsToProcessCancellationProviderOverridePolicy
        - `spotsDiscovery` object
          - `enabled` boolean — settings.cancellation.spotsDiscovery.enabled
          - `maxSpots` number — settings.cancellation.spotsDiscovery.maxSpots
          - `hoursAhead` number — settings.cancellation.spotsDiscovery.hoursAhead
          - `includeWhitespace` boolean — settings.cancellation.spotsDiscovery.includeWhitespace
        - `autoAddToWaitlist` object
          - `enabled` boolean — settings.cancellation.autoAddToWaitlist.enabled
          - `daysAhead` number — settings.cancellation.autoAddToWaitlist.daysAhead
          - `maxDaysAhead` number — settings.cancellation.autoAddToWaitlist.maxDaysAhead
          - `minDaysFromLastAcceptedOfferToJoinWaitlist` number — settings.cancellation.autoAddToWaitlist.minDaysFromLastAcceptedOfferToJoinWaitlist
        - `waitlistOfferFlexibility` 'strict' | 'facility-match' | 'provider-match' | 'any' — settings.cancellation.waitlistOfferFlexibility
        - `waitlistOfferSortOrder` 'longest-waiting' | 'most-recent-added' — settings.cancellation.waitlistOfferSortOrder
        - `sendYouveBeenAddedMessage` boolean — settings.cancellation.sendYouveBeenAddedMessage
        - `skipOfferBasedOnLastSentOffer` boolean — settings.cancellation.skipOfferBasedOnLastSentOffer
        - `maxOffersPerWaitlist` number — settings.cancellation.maxOffersPerWaitlist
        - `protocol` 'serial' | 'parallel' — settings.cancellation.protocol
        - `offerToJoinDuration` number — settings.cancellation.offerToJoinDuration
        - `autoCreateWaitlists` boolean — settings.cancellation.autoCreateWaitlists
        - `delayOffers` object
          - `enabled` boolean — settings.cancellation.delayOffers.enabled
          - `until` string — settings.cancellation.delayOffers.until
          - `delayOn` 'weekdays' | 'all-days' — settings.cancellation.delayOffers.delayOn
          - `weekdaysDelay` object
            - `enabled` boolean — settings.cancellation.delayOffers.weekdaysDelay.enabled
            - `until` string — settings.cancellation.delayOffers.weekdaysDelay.until
          - `weekendsDelay` object
            - `enabled` boolean — settings.cancellation.delayOffers.weekendsDelay.enabled
            - `until` string — settings.cancellation.delayOffers.weekendsDelay.until
        - `disableOnWeekends` boolean — settings.cancellation.disableOnWeekends
        - `cancelFutureAppointment` boolean — settings.cancellation.cancelFutureAppointment
        - `requireFutureAppointment` boolean — settings.cancellation.requireFutureAppointment
        - `botResponses` object
          - `enabled` boolean — settings.cancellation.botResponses.enabled
      - `appointment` object
        - `duration` number — settings.appointment.duration
        - `recommendations` object
          - `timingPreferences` object
            - `enabled` boolean — settings.appointment.recommendations.timingPreferences.enabled
        - `validateUpdatedAtTimestamp` boolean — settings.appointment.validateUpdatedAtTimestamp
      - `feedback` object
        - `multipleRemindersPerDay` 'onlySendEarliest' | 'multipleRemindersPerDay' — settings.feedback.multipleRemindersPerDay
        - `enabled` boolean — settings.feedback.enabled
        - `promoter` object
          - `type` 'facebook' | 'yelp' | 'patientfusion' | 'betterdoctor' | 'zocdoc' | 'google' | 'generic' | 'healthgrades' | 'ratemds' — settings.feedback.promoter.type
          - `url` string — settings.feedback.promoter.url
        - `promoterUrls` object[] — settings.feedback.promoterUrls
          - `type` 'facebook' | 'yelp' | 'patientfusion' | 'betterdoctor' | 'zocdoc' | 'google' | 'generic' | 'healthgrades' | 'ratemds' — type
          - `url` string — url
          - `enabled` boolean — enabled
          - `_id` string — _id
        - `detractor` object
          - `type` 'google' | 'luma' — settings.feedback.detractor.type
          - `url` string — settings.feedback.detractor.url
        - `detractorUrls` object[] — settings.feedback.detractorUrls
          - `type` 'google' | 'surveymonkey' | 'luma' — type
          - `url` string — url
          - `enabled` boolean — enabled
          - `_id` string — _id
        - `schedule` number — settings.feedback.schedule
        - `interval` object
          - `enabled` boolean — settings.feedback.interval.enabled
          - `value` number — settings.feedback.interval.value
        - `limit` object
          - `enabled` boolean — settings.feedback.limit.enabled
          - `value` number — settings.feedback.limit.value
        - `allowFeedbackForPastAppointments` boolean — settings.feedback.allowFeedbackForPastAppointments
        - `forceMessageTime` object
          - `enabled` boolean — settings.feedback.forceMessageTime.enabled
          - `until` string — settings.feedback.forceMessageTime.until
        - `botResponses` object
          - `enabled` boolean — settings.feedback.botResponses.enabled
        - `recommendations` object
          - `timingPreferences` object
            - `enabled` boolean — settings.feedback.recommendations.timingPreferences.enabled
        - `forceSkipBlackoutRules` boolean — settings.feedback.forceSkipBlackoutRules
      - `followup` object
        - `enabled` boolean — settings.followup.enabled
        - `recommendations` object
          - `timingPreferences` object
            - `enabled` boolean — settings.followup.recommendations.timingPreferences.enabled
        - `sendMessageForceTimeUsingTimezone` boolean — settings.followup.sendMessageForceTimeUsingTimezone
        - `ignoreCustomActionOperationsModelsFields` object
          - `operations` unknown[] — settings.followup.ignoreCustomActionOperationsModelsFields.operations
            - unknown
          - `models` unknown[] — settings.followup.ignoreCustomActionOperationsModelsFields.models
            - unknown
          - `fields` string[] — settings.followup.ignoreCustomActionOperationsModelsFields.fields
        - `sendImmediatelyWithPastSendAt` boolean — settings.followup.sendImmediatelyWithPastSendAt
        - `triggerCustomActionForDeletion` boolean — Determines if database deletions should trigger custom actions
      - `integrator` object
        - `requireLock` boolean — settings.integrator.requireLock
        - `lockExpiryInMinutes` number — settings.integrator.lockExpiryInMinutes
        - `syncWindow` object
          - `earliest` number — settings.integrator.syncWindow.earliest
          - `latest` number — settings.integrator.syncWindow.latest
          - `days` number — settings.integrator.syncWindow.days
          - `currentWeekSyncPastDataInDays` number — settings.integrator.syncWindow.currentWeekSyncPastDataInDays
        - `writeDataToIntegrator` object
          - `createAppointments` boolean — settings.integrator.writeDataToIntegrator.createAppointments
          - `createAppointmentsMaxRetries` number — settings.integrator.writeDataToIntegrator.createAppointmentsMaxRetries
          - `updateAvailabilityExternalIdOnCreateAppointmentSuccess` boolean — settings.integrator.writeDataToIntegrator.updateAvailabilityExternalIdOnCreateAppointmentSuccess
          - `updateStatus` boolean — settings.integrator.writeDataToIntegrator.updateStatus
          - `updatePatientDemographics` boolean — settings.integrator.writeDataToIntegrator.updatePatientDemographics
          - `updatePatientDemographicsName` boolean — settings.integrator.writeDataToIntegrator.updatePatientDemographicsName
          - `updatePatientDemographicsDateOfBirth` boolean — settings.integrator.writeDataToIntegrator.updatePatientDemographicsDateOfBirth
          - `flushPatientMessageHistory` boolean — settings.integrator.writeDataToIntegrator.flushPatientMessageHistory
          - `flushPatientMessageHistoryDelay` number — settings.integrator.writeDataToIntegrator.flushPatientMessageHistoryDelay
          - `flushPatientMessageHistoryDayOfWeek` number — settings.integrator.writeDataToIntegrator.flushPatientMessageHistoryDayOfWeek
          - `updateAppointmentNotesWithTelehealthLink` boolean — settings.integrator.writeDataToIntegrator.updateAppointmentNotesWithTelehealthLink
          - `updateAppointmentWithReminderSentStatus` boolean — settings.integrator.writeDataToIntegrator.updateAppointmentWithReminderSentStatus
          - `createOutboundHl7MessageOn` string[] — settings.integrator.writeDataToIntegrator.createOutboundHl7MessageOn
          - `createPatient` boolean — settings.integrator.writeDataToIntegrator.createPatient
          - `cacheDeletedAppointments` boolean — settings.integrator.writeDataToIntegrator.cacheDeletedAppointments
        - `frequency` number — settings.integrator.frequency
        - `enforceProviderDeltaCheck` boolean — settings.integrator.enforceProviderDeltaCheck
        - `enforceAppointmentDeltaCheck` boolean — settings.integrator.enforceAppointmentDeltaCheck
        - `syncProcedures` boolean — settings.integrator.syncProcedures
        - `syncDiagnoses` boolean — settings.integrator.syncDiagnoses
        - `syncReferrals` boolean — settings.integrator.syncReferrals
        - `syncRecalls` boolean — settings.integrator.syncRecalls
        - `syncInsurances` boolean — settings.integrator.syncInsurances
        - `syncOrders` boolean — settings.integrator.syncOrders
        - `verifySlotIsOpenBeforeAppointmentCreation` boolean — settings.integrator.verifySlotIsOpenBeforeAppointmentCreation
        - `verifyWhitespaceIsOpenBeforeAppointmentCreation` boolean — settings.integrator.verifyWhitespaceIsOpenBeforeAppointmentCreation
        - `requireValueAndTypeMatchOnDemographicsUpdate` boolean — settings.integrator.requireValueAndTypeMatchOnDemographicsUpdate
        - `skipGetProvider` boolean — settings.integrator.skipGetProvider
        - `syncAppointmentExternalRawSource` boolean — settings.integrator.syncAppointmentExternalRawSource
        - `syncProviderUpdates` object
          - `enabled` boolean — settings.integrator.syncProviderUpdates.enabled
        - `syncPatientExternalRawSource` boolean — settings.integrator.syncPatientExternalRawSource
        - `syncAdditionalDemographicFields` boolean — settings.integrator.syncAdditionalDemographicFields
        - `externalCustomResourceOverrides` object[] — settings.integrator.externalCustomResourceOverrides
          - `resource` 'provider' | 'appointment-type' | 'facility' — resource
          - `override` string[] — override
          - `_id` string — _id
        - `syncNewResourcesAs` object
          - `hiddenAfterDays` number — settings.integrator.syncNewResourcesAs.hiddenAfterDays
          - `hiddenResources` string[] — settings.integrator.syncNewResourcesAs.hiddenResources
          - `disabledAfterDays` number — settings.integrator.syncNewResourcesAs.disabledAfterDays
          - `disabledResources` string[] — settings.integrator.syncNewResourcesAs.disabledResources
        - `historicDataLoader` object
          - `daysToLoad` number — settings.integrator.historicDataLoader.daysToLoad
          - `daysPerLoad` number — settings.integrator.historicDataLoader.daysPerLoad
        - `disableDedupeIncomingPatientData` boolean — settings.integrator.disableDedupeIncomingPatientData
        - `disablePatientsGetByExternalTypeAndComponents` boolean — settings.integrator.disablePatientsGetByExternalTypeAndComponents
        - `sftpConfirmationRangeInHours` number — settings.integrator.sftpConfirmationRangeInHours
        - `syncReferralsDisableExpiryForMissingReferrals` boolean — settings.integrator.syncReferralsDisableExpiryForMissingReferrals
        - `uploadReferralsPerformCompleteDeltaCheck` boolean — settings.integrator.uploadReferralsPerformCompleteDeltaCheck
        - `syncAppointmentsInParallel` boolean — settings.integrator.syncAppointmentsInParallel
        - `updateReferralsWithExternalRawSource` boolean — settings.integrator.updateReferralsWithExternalRawSource
      - `patients` object
        - `maxTokenAge` number — settings.patients.maxTokenAge
        - `loginLookupInIntegrator` boolean — settings.patients.loginLookupInIntegrator
        - `loginRequireActiveContactMatch` boolean — settings.patients.loginRequireActiveContactMatch
        - `requireCaptcha` boolean — settings.patients.requireCaptcha
        - `useAtlasSearch` boolean — settings.patients.useAtlasSearch
        - `appointmentManagement` object
          - `enabled` boolean — settings.patients.appointmentManagement.enabled
      - `reporting` object
        - `eventTracking` object
          - `enabled` boolean — settings.reporting.eventTracking.enabled
          - `trackingModel` 'patient' | 'user' | 'user-and-patient' — settings.reporting.eventTracking.trackingModel
          - `vendors` string[] — settings.reporting.eventTracking.vendors
        - `useUserTimezoneInReports` boolean — settings.reporting.useUserTimezoneInReports
      - `waitingRoom` object
        - `enabled` boolean — settings.waitingRoom.enabled
      - `settingsToOverrideFrom` object
        - `facilities` unknown[] — settings.settingsToOverrideFrom.facilities
          - unknown
        - `providers` unknown[] — settings.settingsToOverrideFrom.providers
          - unknown
        - `appointmentTypes` unknown[] — settings.settingsToOverrideFrom.appointmentTypes
          - unknown
        - `users` unknown[] — settings.settingsToOverrideFrom.users
          - unknown
      - `billing` object
        - `vendors` object
          - `paypal` object
            - `enabled` boolean — settings.billing.vendors.paypal.enabled
          - `instamed` object
            - `enabled` boolean — settings.billing.vendors.instamed.enabled
          - `salucro` object
            - `enabled` boolean — settings.billing.vendors.salucro.enabled
        - `contactNumber` string — settings.billing.contactNumber
        - `contactEmail` string, email — settings.billing.contactEmail
      - `patientForms` object
        - `filterPatientFormsByFacility` boolean — settings.patientForms.filterPatientFormsByFacility
        - `preventRefillingCompletedForms` boolean — settings.patientForms.preventRefillingCompletedForms
        - `showMessageOnFormEnd` boolean — settings.patientForms.showMessageOnFormEnd
        - `sendDirectMessageForCcdaForms` object
          - `enabled` boolean — settings.patientForms.sendDirectMessageForCcdaForms.enabled
          - `vendor` 'datamotion' — settings.patientForms.sendDirectMessageForCcdaForms.vendor
          - `minutesAheadsToLookForAppointments` number — settings.patientForms.sendDirectMessageForCcdaForms.minutesAheadsToLookForAppointments
          - `directMessagingEmail` string — settings.patientForms.sendDirectMessageForCcdaForms.directMessagingEmail
        - `allowWidgetUserToUploadFile` boolean — settings.patientForms.allowWidgetUserToUploadFile
        - `hideProgressBarOnFormsWithJump` boolean — settings.patientForms.hideProgressBarOnFormsWithJump
        - `insuranceFormTemplate` string — ID of PatientFormTemplate
      - `insurance` object
        - `verification` object
          - `enabled` boolean — settings.insurance.verification.enabled
          - `hoursAheadToVerifyInsurance` number — settings.insurance.verification.hoursAheadToVerifyInsurance
      - `branding` object
        - `themes` object[]
          - `enabled` boolean — settings.branding.themes[i].enabled
          - `scope` string, required — settings.branding.themes[i].scope
      - `estimate` object
        - `updateFileUploadPatient` boolean — Determines if the file upload document linked to an estimate document must be updated with the patient ID and the estimate ID.
    - `address` string — address
    - `city` string — city
    - `state` string — state
    - `country` string — country
    - `postcode` string — postcode
    - `gender` 'male' | 'female' | 'unknown' | 'nonbinary' — gender
    - `allowedIps` string[] — allowedIps
    - `avatar` string — ID of FileUpload
    - `publicKey` string — publicKey
    - `directMessagingEmail` string — directMessagingEmail
    - `demoConfiguration` object
      - `type` 'default'
    - `website` string — website
    - `deptCode` string — deptCode
    - `phonetic` string — phonetic
    - `alternativeName` string — alternativeName
    - `schedulable` boolean — schedulable
    - `isReferringProvider` boolean — isReferringProvider
    - `isRenderingProvider` boolean — isRenderingProvider
    - `visible` boolean — visible
    - `npi` number — npi
    - `source` 'upload' | 'patient-referral-form' | 'ui' | 'integrator' — source
    - `biography` string — biography
    - `biographyUrl` string — biographyUrl
    - `headshot` string — ID of FileUpload
    - `billingType` 'resource' | 'part-time' | 'full-time' | 'non-billed' | 'duplicate' | 'no-longer-employed' | 'unknown' — billingType
    - `mergedInto` string — ID of Provider
    - `telehealthVendors` object — telehealthVendors
      - `zoom` object
        - `id` string
        - `status` 'active' | 'inactive' | 'pending'
    - `specialInstructions` string — specialInstructions
    - `salesforceData` SalesforceData — Salesforce internal meta data for this account.
      - `customerSuccessManager` object
        - `name` string
        - `email` string
        - `phone` string
      - `provisioning` string[]
      - `respectProvisioning` boolean, required
      - `lifeline` 'trial' | 'converted' | 'active' | 'churn'
      - `mrr` number
      - `arr` number
      - `renewalDate` string, date-time
      - `providers` number
      - `specialty` string
      - `referralTrialLimit` number
      - `recordType` string
      - `domesticAccessRequired` boolean
      - `goLiveAt` string, date-time
      - `fullyImplementedAt` string, date-time
      - `contractSignedAt` string, date-time
      - `contractLength` number
      - `healthStatus` 'green' | 'yellow' | 'red' | 'poor fit' | 'Healthy' | 'Neutral' | 'Churn Risk' | 'Advocate'
      - `boardSegment` 'Reseller' | 'Strategic' | 'Majors' | 'Core' | 'Sub 20' | 'Unknown'
      - `onboardingState` 'Customer Success Introduction' | 'Kickoff' | 'Integration' | 'Discovery Call' | 'Customization' | 'Testing' | 'Staff Training' | 'Ready To Launch' | 'Go-Live' | 'Fully Implemented'
      - `accountLifeline` 'Unassigned' | 'Assigned' | 'Sales Accepted' | 'Working' | 'Sales Qualified' | 'Open Opportunity' | 'Nurture' | 'Disqualified' | 'Trial' | 'Converted' | 'Active' | 'Churned' | 'Partnered' | 'Trial Ended (No Conversion)'
    - `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
    - `secondaryExternalId` 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
    - `dateOfBirth` object
      - `year` number — dateOfBirth.year
      - `month` number — dateOfBirth.month
      - `day` number — dateOfBirth.day
    - `twoFactorAuthSecret` object
      - `enabled` boolean — twoFactorAuthSecret.enabled
    - `stats` object
      - `oldestAppointment` string, date-time — stats.oldestAppointment
  - `page` integer, required
  - `size` integer, required

## Other responses

- `401` — Not authenticated
- `403` — Access token does not have the required scope
- `default` — unexpected error - need to finalize the error codes

---

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