---
title: "Update a facility"
method: PUT
path: "/facilities/{facilityId}"
tags: ["facilities"]
---

# Update a facility

`PUT /facilities/{facilityId}`

## Path parameters

- `facilityId` string, required

## Request body

- FacilityRequestUpdate
  - `name` string — name
  - `alternativeName` string — alternativeName
  - `phonetic` string — phonetic
  - `address` string — address
  - `city` string — city
  - `state` string — state
  - `country` string — country
  - `postcode` string — postcode
  - `phone` string — phone
  - `fax` string — fax
  - `alternativePhone` string — alternativePhone
  - `visible` boolean — visible
  - `specialInstructions` string — specialInstructions
  - `integrator` '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' — integrator
  - `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
  - `_id` string — _id

## Response `200`

Facility updated

- FacilityResponse — Represents a physical facility or location belonging to a healthcare organization, including its name, alternative and phonetic names, address, phone, alternative phone, and fax numbers normalized to international format, plus visibility and integration settings. Facilities provide the location context for scheduling appointments and routing patient communications, and can be linked to external systems such as an EHR.
  - `_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.
  - `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
            - `light` string — settings.lumabot.theme.palette.primary.light
            - `main` string — settings.lumabot.theme.palette.primary.main
            - `dark` string — settings.lumabot.theme.palette.primary.dark
            - `contrastText` string — settings.lumabot.theme.palette.primary.contrastText
          - `secondary` object
            - `light` string — settings.lumabot.theme.palette.secondary.light
            - `main` string — settings.lumabot.theme.palette.secondary.main
            - `dark` string — settings.lumabot.theme.palette.secondary.dark
            - `contrastText` string — settings.lumabot.theme.palette.secondary.contrastText
          - `tertiary` object
            - `light` string — settings.lumabot.theme.palette.tertiary.light
            - `main` string — settings.lumabot.theme.palette.tertiary.main
            - `dark` string — settings.lumabot.theme.palette.tertiary.dark
            - `contrastText` string — settings.lumabot.theme.palette.tertiary.contrastText
          - `background` object
            - `default` string — settings.lumabot.theme.palette.background.default
            - `paper` string — settings.lumabot.theme.palette.background.paper
    - `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
            - `enabled` boolean — settings.communication.outboundMessages.multiChannelRetries.shouldSmsNumberBeRetriedAsVoice.enabled
          - `channels` string[] — settings.communication.outboundMessages.multiChannelRetries.channels
          - `failuresToIgnoreByChannel` string[] — settings.communication.outboundMessages.multiChannelRetries.failuresToIgnoreByChannel
          - `refs` unknown[] — settings.communication.outboundMessages.multiChannelRetries.refs
            - unknown
          - `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
            - `value` number — settings.communication.broadcast.patientsBatchLimit.interval.value
            - `unit` 'minutes' | 'hours' — settings.communication.broadcast.patientsBatchLimit.interval.unit
        - `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.
  - `name` string — name
  - `alternativeName` string — alternativeName
  - `phonetic` string — phonetic
  - `address` string — address
  - `city` string — city
  - `state` string — state
  - `country` string — country
  - `postcode` string — postcode
  - `phone` string — phone
  - `fax` string — fax
  - `alternativePhone` string — alternativePhone
  - `visible` boolean — visible
  - `specialInstructions` string — specialInstructions
  - `integrator` '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' — integrator
  - `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
  - `externalRawSource` object — externalRawSource
  - `setting` string — ID of Setting

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