Phone

  • OpenAPI Version: 3.1.1
  • API Version: 2

You can access information from Zoom with Zoom Phone APIs to build private services or public applications on the Zoom App Marketplace.

To learn how to get your credentials and create private or public applications, see Zoom APIs use OAuth 2.0 authorization.

All endpoints are available through https at api.zoom.us/v2/. For instance, https://api.zoom.us/v2/users/ returns all users on an account. You'll receive a 403 error message if you have not set up Zoom Phone.

Servers

  • URL: https://api.zoom.us/v2

Operations

List an account's Zoom Phone settings

  • Method: GET
  • Path: /phone/account_settings
  • Tags: Accounts

Returns an account's Zoom Phone settings.

Prerequisites:

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:read:admin

Granular Scopes: phone:read:list_account_settings:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` Account settings retrieved successfully.
Content-Type: application/json
  • ad_hoc_call_recording

    object — Whether to allow extensions to record and save calls in the cloud.

    All of:

    • enable

      boolean

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

  • advanced_encryption

    object — Whether to allow voicemail to be encrypted with keys that are not accessible to Zoom servers. These Voicemail can be decrypted only by the intended user recipient. Shared Line Appearance, Shared Line Group, Call Queue, or Auto Receptionist Voicemail is encrypted, but can still be played. Email to Voicemail, transcriptions, checking Voicemails by dialing into the Voicemail system, or web is not available when this feature is enabled. This policy requires a Power Pack license to be enabled. If the user does who inherits this policy does not have a Power Pack license, the policy is not applied. Settings is only available with client version 5.12 or later.

    All of:

    • enable

      boolean

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

  • allow_end_user_edit_call_handling

    object — Once disabled, users cannot to edit their call handling settings on the web portal or enable call forwarding on the client.

    • enable

      boolean — Whether this policy is enabled

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

  • allow_mobile_home_phone_callout

    object — Allows users to use mobile or home phone to place calls. Zoom app will call this device first before ringing the called number. Users' Call Me On phone number will be masked with Zoom Phone caller ID.

    • enable

      boolean — Whether this policy is enabled

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

  • allowed_call_locations

    object — Once enabled, it defines where the extension or user can make and accept calls and send SMS.

    All of:

    • enable

      boolean

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

    • allow_internal_calls

      boolean — Whether to allow internal calls when outside of the allowed locations

    • locations_applied

      boolean — Whether locations have been applied.

  • audio_intercom

    object — Whether to allow hands-free peer-to-peer conversations. When an intercom call is received, the phone beeps to notify the user of the incoming intercom call, and the user's phone automatically answers the intercom call.

    All of:

    • enable

      boolean

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

  • auto_call_from_third_party_apps

    object — This field allows the user to perform call control actions from authorized Zoom Marketplace apps.

    All of:

    • enable

      boolean

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

  • auto_call_recording

    object — Whether to allow automatic recording of all inbound and outbound calls.

    All of:

    • enable

      boolean

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

    • allow_stop_resume_recording

      boolean — Whether the stop and resume of automatic call recording is enabled.

    • disconnect_on_recording_failure

      boolean — Whether a call disconnects when there is an issue with the automatic call recording, and the call cannot reconnect after five seconds. This does **not** include emergency calls.

    • inbound_audio_notification

      object

      • recording_explicit_consent

        boolean — Whether the **Press 1** option that provides recording consent for inbound call is enabled. <b>Note:</b> * If customers do not opt for an OP flag named `Enable Caller Based Consent Options`, the values of `recording_explicit_consent`, `inbound_audio_notification.recording_explicit_consent`, and `outbound_audio_notification.recording_explicit_consent` always remain consistent. * If customers do not opt for an OP flag named `Enable Caller Based Consent Options`, update both `inbound_audio_notification.recording_explicit_consent` and `outbound_audio_notification.recording_explicit_consent` with the same value.

      • recording_start_prompt

        boolean — Whether a prompt plays to call participants when the recording has started for inbound call is enabled. <b>Note:</b> * If customers do not opt for an OP flag named `Enable Caller Based Consent Options`, the values of `recording_start_prompt`, `inbound_audio_notification.recording_start_prompt`, and `outbound_audio_notification.recording_start_prompt` always remain consistent. * If customers do not opt for an OP flag named `Enable Caller Based Consent Options`, update both `inbound_audio_notification.recording_start_prompt` and `outbound_audio_notification.recording_start_prompt` with the same value.

      • recording_start_prompt_audio_id

        string — The audio that plays when the recording has started for inbound call. You can use this audio ID to get the audio information using [Get an audio item](https://developer.zoom.us/docs/api-reference/phone/methods#tag/Audio-Library/operation/GetAudioItem) API. <b>Note:</b> * If customers do not opt for an OP flag named `Enable Caller Based Consent Options`, the values of `recording_start_prompt_audio_id`, `inbound_audio_notification.recording_start_prompt_audio_id`, and `outbound_audio_notification.recording_start_prompt_audio_id` always remain consistent. * If customers do not opt for an OP flag named `Enable Caller Based Consent Options`, update both `inbound_audio_notification.recording_start_prompt_audio_id` and `outbound_audio_notification.recording_start_prompt_audio_id` with the same value.

    • outbound_audio_notification

      object

      • recording_explicit_consent

        boolean — Whether the **Press 1** option that provides recording consent for outbound call is enabled. <b>Note:</b> * If customers do not opt for an OP flag named `Enable Caller Based Consent Options`, the values of `recording_explicit_consent`, `inbound_audio_notification.recording_explicit_consent`, and `outbound_audio_notification.recording_explicit_consent` always remain consistent. * If customers do not opt for an OP flag named `Enable Caller Based Consent Options`, update both `inbound_audio_notification.recording_explicit_consent` and `outbound_audio_notification.recording_explicit_consent` with the same value.

      • recording_start_prompt

        boolean — Whether a prompt plays to call participants when the recording has started for outbound call is enabled. <b>Note:</b> * If customers do not opt for an OP flag named `Enable Caller Based Consent Options`, the values of `recording_start_prompt`, `inbound_audio_notification.recording_start_prompt`, and `outbound_audio_notification.recording_start_prompt` always remain consistent. * If customers do not opt for an OP flag named `Enable Caller Based Consent Options`, update both `inbound_audio_notification.recording_start_prompt` and `outbound_audio_notification.recording_start_prompt` with the same value.

      • recording_start_prompt_audio_id

        string — The audio that plays when the recording has started for outbound call. You can use this audio ID to get the audio information using [Get an audio item](https://developer.zoom.us/docs/api-reference/phone/methods#tag/Audio-Library/operation/GetAudioItem) API. <b>Note:</b> * If customers do not opt for an OP flag named `Enable Caller Based Consent Options`, the values of `recording_start_prompt_audio_id`, `inbound_audio_notification.recording_start_prompt_audio_id`, and `outbound_audio_notification.recording_start_prompt_audio_id` always remain consistent. * If customers do not opt for an OP flag named `Enable Caller Based Consent Options`, update both `inbound_audio_notification.recording_start_prompt_audio_id` and `outbound_audio_notification.recording_start_prompt_audio_id` with the same value.

    • play_recording_beep_tone

      object

      • enable

        boolean — Whether to play a side tone beep for recorded users while recording.

      • play_beep_member

        string, possible values: "allMembers", "recordingUser" — Whether to play the recording beep tone for all participants in the call or only the recording user. It displays only when `enable` is true.

      • play_beep_time_interval

        integer, possible values: 5, 10, 15, 20, 25, 30, 60, 120 — The beep time interval in seconds. It displays only when `enable` is true.

      • play_beep_volume

        integer, possible values: 0, 20, 40, 60, 80, 100 — The volume of the side tone beep. It displays only when `enable` is set to `true`.

    • recording_calls

      string, possible values: "inbound", "outbound", "both" — The type of calls automatically recorded: * `inbound` * `outbound` * `both`

    • recording_explicit_consent

      boolean — Whether the **Press 1** option that provides recording consent is enabled. <b>Deprecated:</b> This field will be deprecated in a future release. As an alternative, use the `inbound_audio_notification.recording_explicit_consent` and `outbound_audio_notification.recording_explicit_consent` to operate inbound and outbound prompt separately. <b>Note:</b> * If customers opt for an OP flag named `Enable Caller Based Consent Options`, the values of `recording_explicit_consent` and `inbound_audio_notification.recording_explicit_consent` will remain consistent. When the field is updated, the `inbound_audio_notification.recording_explicit_consent` will be also updated. * If customers do not opt for an OP flag named `Enable Caller Based Consent Options`, the values of `recording_explicit_consent`, `inbound_audio_notification.recording_explicit_consent`, and `outbound_audio_notification.recording_explicit_consent` always remain consistent. When the field is updated, the `inbound_audio_notification.recording_explicit_consent`, and `outbound_audio_notification.recording_explicit_consent` will be also updated.

    • recording_start_prompt

      boolean — Whether a prompt plays to call participants when the recording has started. <b>Deprecated:</b> This field will be deprecated in a future release. As an alternative, use the `inbound_audio_notification.recording_start_prompt` and `outbound_audio_notification.recording_start_prompt` to operate inbound and outbound prompt separately. <b>Note:</b> * If customers opt for an OP flag named `Enable Caller Based Consent Options`, the values of `recording_start_prompt` and `inbound_audio_notification.recording_start_prompt` will remain consistent. When the field is updated, the `inbound_audio_notification.recording_start_prompt` will be also updated. * If customers do not opt for an OP flag named `Enable Caller Based Consent Options`, the values of `recording_start_prompt`, `inbound_audio_notification.recording_start_prompt`, and `outbound_audio_notification.recording_start_prompt` always remain consistent. When the field is updated, the `inbound_audio_notification.recording_start_prompt`, and `outbound_audio_notification.recording_start_prompt` will be also updated.

    • recording_start_prompt_audio_id

      string — The audio that plays when the recording has started. You can use this audio ID to get the audio information using [Get an audio item](https://developer.zoom.us/docs/api-reference/phone/methods#tag/Audio-Library/operation/GetAudioItem) API. <b>Deprecated:</b> This field will be deprecated in a future release. As an alternative, use the `inbound_audio_notification.recording_start_prompt_audio_id` and `outbound_audio_notification.recording_start_prompt_audio_id` to operate inbound and outbound prompt separately. <b>Note:</b> * If customers opt for an OP flag named `Enable Caller Based Consent Options`, the values of `recording_start_prompt_audio_id` and `inbound_audio_notification.recording_start_prompt_audio_id` will remain consistent. When the field is updated, the `inbound_audio_notification.recording_start_prompt_audio_id` will be also updated. * If customers do not opt for an OP flag named `Enable Caller Based Consent Options`, the values of `recording_start_prompt_audio_id`, `inbound_audio_notification.recording_start_prompt_audio_id`, and `outbound_audio_notification.recording_start_prompt_audio_id` always remain consistent. When the field is updated, the `inbound_audio_notification.recording_start_prompt_audio_id`, and `outbound_audio_notification.recording_start_prompt_audio_id` will be also updated.

    • recording_transcription

      boolean — Whether the call recording transcription is enabled.

  • auto_delete_data_after_retention_duration

    object — This field allows Zoom to automatically delete data after the retention duration has lapsed.

    • delete_type

      integer, possible values: 1, 2 — The deletion policy. * 1 - soft delete * 2 - permanent delete

    • enable

      boolean — Allows Zoom to automatically delete data after the retention duration has lapsed.

    • items

      array

      Items:

      • duration

        integer — The retention duration where -1 means unlimited. For units of time, see the `time_unit` below. For `year`, the duration:-1, 1-10; for `day`, the duration:-1, 1-60; for `month`, the duration:-1, 1-18.

      • time_unit

        string, possible values: "year", "month", "day" — The unit of time.

      • type

        string, possible values: "callLog", "onDemandRecording", "automaticRecording", "voicemail", "videomail", "sms", "fax" — The data types.

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

    • permanently_delete_after_days

      integer — The number of days after which the data will be permanently deleted automatically. Use -1 to retain data indefinitely.

  • auto_opt_out_in_call_queue

    object — Once enabled, when Call Queue members log out of Zoom (Except for desk phones and Zoom Phone appliances), they will be automatically Opted-out from the Call Queue as well.

    • enable

      boolean — Whether this policy is enabled

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

    • prompt_before_opt_out_call_queue

      boolean — Always ask the user if they want to opt-out from the Call Queue when they sign out of Zoom

  • block_calls_as_threat

    object — Whether to allow users to block and classify calls as threat. Inbound calls from these phones numbers can be configured with custom handling options. **Note**: Only customers who opted for OP flag `Enable New Version Inbound Blocked List` can use this feature.

  • block_calls_without_caller_id

    object — Whether calls without caller ID are blocked.

    All of:

    • enable

      boolean

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

  • block_external_calls

    object — This field allows you to set rules for blocking external calls during business, closed, and holiday hours. This feature is only available for user, Zoom Room, and common areas.

    All of:

    • enable

      boolean

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

  • block_list_for_inbound_calls_and_messaging

    object — Whether to allow users and administrators to block inbound calls and SMS/MMS from phone numbers or prefixes. Note: Only for use by customers who opted for OP flag `Enable New Version Inbound Blocked List`.

  • call_handling_forwarding_to_other_users

    object — Whether to allow users to forward their calls to other numbers.

    All of:

    • enable

      boolean

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

    • call_forwarding_type

      integer, possible values: 1, 2, 3, 4 — `1` - Low restriction (external numbers not allowed) `2` - Medium restriction (external numbers and external contacts not allowed) `3` - High restriction (external numbers, external contacts and internal extensions without inbound automatic call recording not allowed) `4` - No restriction

  • call_live_transcription

    object — Whether to let users turn on live transcriptions for a call.

    All of:

    • enable

      boolean

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

    • transcription_start_prompt

      object — Whether to play a prompt to call participants when the transcription has started.

  • call_overflow

    object — Whether to allow users to forward their calls to other numbers when a call is not answered

    All of:

    • enable

      boolean

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

    • call_overflow_type

      integer, possible values: 1, 2, 3, 4 — `1` - Low restriction (external numbers not allowed) `2` - Medium restriction (external numbers and external contacts not allowed) `3` - High restriction (external numbers, external contacts and internal extensions without inbound automatic call recording not allowed) `4` - No restriction

  • call_park

    object — Whether to allow calls placed on hold to resume from another location using a retrieval code.

    All of:

    • enable

      boolean

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

  • call_queue_opt_out_reason

    object — This field sets the opt-out reasons for call queues. When enabled, call queue members should select an opt-out reason when they turn off the `receive queue call` feature.

    All of:

    • enable

      boolean

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

  • call_screening

    object — Prompts incoming direct external callers to respond to a button to reach users. Callers who don't respond will be disconnected. Devices will not be able to receive any third party faxes.

    • enable

      boolean — Whether this policy is enabled

    • exclude_user_company_contacts

      boolean — This field excludes user and company contacts from call screening, calls will reach users as normal

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

  • call_transferring

    object — This field allows users to warm or blind transfer their calls. This does not apply to warm transfer on IP Phones except for Yealink. Voicemail is transferable only to internal extensions.

    All of:

    • enable

      boolean

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

    • call_transferring_type

      integer, possible values: 1, 2, 3, 4 — 1-No restriction. 2-Medium restriction (external numbers and external contacts not allowed). 3-High restriction (external numbers, unrecorded external contacts, and internal extensions without inbound automatic recording not allowed). 4-Low restriction (external numbers not allowed).

  • chat_channel

    object — Enables chat channel functionality for call queues

    • enable

      boolean — Whether this policy is enabled

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

  • check_voicemails_over_phone

    object — Whether to allow extension owners or members of a shared line group to check voicemails for extension numbers over the phone using a PIN code.

    All of:

    • enable

      boolean

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

  • conference_dtmf

    object — Allows users to interact with automated systems, input access codes, or perform other functions without disrupting the call.

    • enable

      boolean — Whether this policy is enabled

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

  • connect_to_operator

    object — Once disabled, users cannot route their calls to an operator as part of the 'When a call is not answered' setting.

    • enable

      boolean — Whether this policy is enabled

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

  • customize_line_name

    object — Customizes the line name.

    • common_area_line_name

      string, possible values: "phoneNumber", "extensionNumber", "displayName", "displayName;extensionNumber" — The common area line name.

    • enable

      boolean — Whether this policy is enabled

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

    • user_line_name

      string, possible values: "phoneNumber", "extensionNumber", "displayName", "displayName;extensionNumber", "firstName;extensionNumber", "firstName;lastName;extensionNumber" — The user line name.

  • delegation

    object — Whether the user can use [call delegation](https://support.zoom.us/hc/en-us/articles/360032881731-Setting-up-call-delegation-shared-lines-appearance-).

    All of:

    • enable

      boolean

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

  • desk_phone_smart_key_positions_layout

    object — Allows Zoom to move your frequently used line keys to your pre-programmed smart keys layout. Smart keys will be updated on a weekly basis.

    • enable

      boolean — Whether this policy is enabled

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

  • display_call_feedback_survey

    object — Whether to display a thumbs up or down survey at the end of each call. If participants respond with thumbs down, they can provide additional information about what went wrong.

    All of:

    • enable

      boolean

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

  • e2e_encryption

    object — Whether to allow users to switch their calls to End-to-End Encryption. If users have **Automatic Call Recording** turned on, they can't use End-to-End Encryption.

    All of:

    • enable

      boolean

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

  • elevate_to_meeting

    object — Whether to allow users to elevate their phone calls to a meeting.

    All of:

    • enable

      boolean

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

  • end_conference_call_when_originator_drops

    object — Once enabled, a personal conference call will end when the originator, who first merges other participant(s) into the conference call, drops. This will not affect the conference barge feature of Shared Line Group.

    • enable

      boolean — Whether this policy is enabled

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

  • external_calling_on_zoom_room_common_area

    object — Whether to allow Zoom Rooms to call external phone numbers based on the calling plans and other Zoom Phone policies.

    All of:

    • enable

      boolean

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

  • hand_off_to_room

    object — Whethet to allow users to send a call to a Zoom Room.

    All of:

    • enable

      boolean

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

  • hide_phone_call_history_in_ios

    object — Hides Zoom Phone calls in iOS/iPadOS device call history.

    • enable

      boolean — Whether this policy is enabled

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

  • international_calling

    object — Whether to allow extensions to place international calls outside of the calling plan.

    All of:

    • enable

      boolean

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

  • local_survivability_mode

    object — Whether to allow user or extension to have core phone services in the event of an outage.

    All of:

    • enable

      boolean

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

  • mobile_switch_to_carrier

    object — Whether to allow the user to switch from a Zoom Phone to their native carrier.

    All of:

    • enable

      boolean

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

  • no_hold_conference

    object — Users can set up a conference call without any interruption in the current call

    • enable

      boolean — Whether this policy is enabled

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

  • obfuscate_sensitive_data_during_call

    object — Obfuscates sensitive data during a call

    • enable

      boolean — Whether this policy is enabled

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

  • online_fax

    object — Allows user to send and receive faxes.

    • enable

      boolean — Whether this policy is enabled

    • enable_new_fax_email_notifications

      boolean — This field enables email notifications when a new fax is received

    • include_fax_as_attachment

      boolean — The field includes fax as an attachment in the email notification

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

  • outbound_calling

    object — Whether to define calling rules to restrict the user or extension from calling specific countries, cities, or numbers. Note: Only for use by customers who opted for OP flag `Enable New Version Outbound Blocked List`.

    All of:

    • enable

      boolean

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

  • outbound_sms

    object — Whether to allow users to send and receive messages. You must assign a valid calling plan and phone number to each user for them to send and receive messages. Note: Only for use by customers who opted for OP flag `Enable New Version Outbound Blocked List`.

    All of:

    • enable

      boolean

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

  • override_default_port

    object — This field sets a range for port assignment. Zoom desktop, mobile clients, Zoom Rooms, and Zoom Phone Appliances use ports during a call. The range should be between 9,000 and 9,999. At least 50 ports need to be configured to ensure the functionality is not affected.

    All of:

    • enable

      boolean

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

  • peer_to_peer_media

    object — Whether to allow Zoom clients to send media directly to each other. Users or devices that have certain features enabled, such as recording or monitoring, might not be able to use peer to peer media.

    All of:

    • enable

      boolean

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

  • personal_audio_library

    object

    All of:

    • enable

      boolean

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

    • allow_music_on_hold_customization

      boolean — Whether to allow music on hold customization.

    • allow_voicemail_and_message_greeting_customization

      boolean — Whether to allow voicemail and message greeting customization.

  • prevent_users_upload_audio_files

    object — Prevents users from uploading audio files

    • enable

      boolean — Whether this policy is enabled

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

  • private_call_park

    object — Allows calls placed on hold to be resumed by allowed users with the retrieval code.

    • call_not_picked_up_action

      integer — The action when a parked call is not picked up. `100` - Ring back to parker `0` - Forward to voicemail of the parker `9` - Disconnect `50` - Forward to another extension

    • enable

      boolean — Whether this policy is enabled

    • expiration_period

      integer, possible values: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60 — A time limit for parked calls in minutes. After the expiration period ends, the retrieval code is no longer valid and a new code generates.

    • forward_to

      object — The extension's forwarding information.

      • display_name

        string — The extension's name.

      • extension_id

        string — The extension ID.

      • extension_number

        integer, format: int64 — The extension number.

      • extension_type

        string, possible values: "user", "zoomRoom", "commonArea", "ciscoRoom/polycomRoom", "autoReceptionist", "callQueue", "sharedLineGroup" — The type of extension: * `user` * `zoomRoom` * `commonArea` * `ciscoRoom/polycomRoom` * `autoReceptionist` * `sharedLineGroup` * `callQueue`

      • id

        string — The ID of the extension `user`, `zoomRoom`, `commonArea`, `ciscoRoom/polycomRoom`, `autoReceptionist`, `callQueue` or `sharedLineGroup`.

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

    • music_on_park

      object — Plays music when a call is parked.

    • sequence

      integer, possible values: 0, 1 — This field chooses how parked calls are assigned to a BLF (Busy Lamp Field) key. Sequential assignment parks the call at the next available BLF key. Random assignment parks the call at a randomly selected BLF key. `0` - Random `1` - Sequential

  • restricted_call_hours

    object — Once enabled, define when the extension or user cannot make or accept calls and send SMS.

    All of:

    • enable

      boolean

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

    • allow_internal_calls

      boolean — Whether to allow internal calls or SMS during restricted hours.

    • restricted_holiday_hours_applied

      boolean — Whether restricted holiday hours have been applied.

    • restricted_hours_applied

      boolean — Whether restricted hours have been applied.

    • time_zone

      object — This field sets either time zone `id` or `set_by_extension`.

  • select_outbound_caller_id

    object — Whether to allow extensions to change outbound caller ID when placing calls.

    All of:

    • enable

      boolean

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

    • allow_hide_outbound_caller_id

      boolean — Whether to allow extensions to hide outbound caller ID.

  • shared_voicemail_notification_by_email

    object — Once enabled, users receive email notification when there is a new shared voicemail or videomail. If the extension that shares the voicemail or videomail has disabled the voicemail or videomail notification by email policy, then users do not receive notifications. It only displays when the voicemail policy is using the new policy framework.

    All of:

    • enable

      boolean

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

  • show_custom_disclaimer_when_using_zoom_phone

    object — Shows a custom disclaimer when starting to use Zoom Phone service

    • custom_disclaimer_list

      array — The custom disclaimer list.

      Items:

      • body

        string — The custom disclaimer body.

      • language

        string — The audio prompt language code. American English: `en-US` British English: `en-GB` Espa&ntilde;ol americano: `es-US` Fran&ccedil;ais canadien: `fr-CA` Dansk: `da-DK` Deutsch: `de-DE` Espa&ntilde;ol: `es-ES` Fran&ccedil;ais: `fr-FR` Italiano: `it-IT` Nederlands: `nl-NL` Portugues portugal: `pt-PT` Japanese: `ja-JP` Korean: `ko-KO` Portugues brasil: `pt-BR` Chinese: `zh-CN` Taiwanese: `zh-TW`

      • title

        string — The custom disclaimer title.

    • display_frequency

      string, possible values: "first_time_only", "every_time", "every_month", "every_quarter", "every_6_months", "every_year" — The display frequency.

    • enable

      boolean — Whether this policy is enabled

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

  • sms

    object — Whether to allow users to send and receive messages. You must assign a valid calling plan and phone number to each user for them to send and receive messages.

    All of:

    • enable

      boolean

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

    • international_sms

      boolean — Whether the user can send and receive international messages. You can set this field only if `sms` is enabled.

  • sms_auto_reply

    object — Enables SMS Auto Reply feature for User, Auto Receptionist, and Call Queue. Power Pack license is required for this feature to work.

    • enable

      boolean — Whether this policy is enabled

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

  • sms_etiquette_tool

    object — This field identifies defined keywords and text patterns over SMS and prevents users from sharing unwanted messages.

    All of:

    • enable

      boolean

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

  • sms_template

    object — Uses pre-defined templates to help users compose messages. Power Pack license is required for this feature to work.

    • enable

      boolean — Whether this policy is enabled

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

    • sms_template_list

      array — The SMS template list.

      Items:

      • active

        boolean — Whether it is active.

      • content

        string — Text to Display. This text will be editable by users. Customer input fields may be added by using the buttons below. Customer information will be removed if not available.

      • description

        string — The SMS template description.

      • name

        string — The SMS template name.

      • sms_template_id

        string — The SMS template ID.

  • team_sms_thread_summary

    object — Team SMS thread summary with AI Companion

    • enable

      boolean — Whether this policy is enabled

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

  • use_callkit_for_incoming_call_notifications_in_ios

    object — Uses CallKit always for Incoming call notifications on iOS/iPadOS devices. When this feature is enabled for a user or common area, their iOS/iPadOS device will always use CallKit for incoming call notifications no matter if the Zoom App is running in the foreground or background, preventing interruptions when receiving inbound calls on the device. This setting only applies to iOS/iPadOS devices with CallKit enabled. If a user modifies this setting on their client, the value will be updated on this policy. Locking this policy will prevent users from making changes to the setting.

    • enable

      boolean — Whether this policy is enabled

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

  • voicemail

    object

    All of:

    • enable

      boolean

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

    • allow_delete

      boolean — This field allows users to delete their own voicemail or videomail.

    • allow_download

      boolean — This field allows users to download their own voicemail or videomail.

    • allow_share

      boolean — This field allows users to share their own voicemail.

    • allow_videomail

      boolean — This field allows videomail

    • allow_virtual_background

      boolean — This field allows virtual background for voicemail or videomail greeting

  • voicemail_intent_based_prioritization

    object — Voicemail prioritization with AI Companion

    • enable

      boolean — Whether this policy is enabled

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

  • voicemail_notification_by_email

    object — Whether to enable voicemail or videomail transcription feature for User, Auto Receptionist, Call Queue, and Shared Line Groups.

    All of:

    • enable

      boolean

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

    • forward_voicemail_to_email

      boolean — Whether to forward the voicemail to email.

    • include_voicemail_file

      boolean — Whether to include the voicemail file.

    • include_voicemail_transcription

      boolean — Whether to include the voicemail transcription.

  • voicemail_tasks

    object — Voicemail tasks with AI Companion

    • enable

      boolean — Whether this policy is enabled

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

  • voicemail_transcription

    object — Whether to enable voicemail/videomail transcription feature for User, Auto Receptionist, Call Queue, and Shared Line Groups.

    All of:

    • enable

      boolean

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

  • zoom_phone_on_mobile

    object — Whether to allow user to use Zoom Phone on mobile clients (iOS, iPad OS and Android).

    All of:

    • enable

      boolean

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

    • allow_calling_sms_mms

      boolean — This field allows calling and SMS or MMS functions on mobile.

  • zoom_phone_on_pwa

    object — Whether to allow users to use Zoom Phone on Zoom Progressive Web App.

    All of:

    • enable

      boolean

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

Example:

{
  "call_live_transcription": {
    "enable": true,
    "locked": false,
    "locked_by": "account",
    "transcription_start_prompt": {
      "enable": true,
      "audio_id": "yCT14TwySDGVUypVlKNEyA",
      "audio_name": "example.mp3"
    }
  },
  "local_survivability_mode": {
    "enable": true,
    "locked": false,
    "locked_by": "account"
  },
  "external_calling_on_zoom_room_common_area": {
    "enable": true,
    "locked": false,
    "locked_by": "account"
  },
  "select_outbound_caller_id": {
    "enable": true,
    "locked": false,
    "locked_by": "account",
    "allow_hide_outbound_caller_id": true
  },
  "personal_audio_library": {
    "enable": true,
    "locked": false,
    "locked_by": "account",
    "allow_music_on_hold_customization": true,
    "allow_voicemail_and_message_greeting_customization": true
  },
  "voicemail": {
    "enable": true,
    "locked": false,
    "locked_by": "account",
    "allow_videomail": true,
    "allow_download": false,
    "allow_delete": true,
    "allow_share": true,
    "allow_virtual_background": true
  },
  "voicemail_transcription": {
    "enable": true,
    "locked": false,
    "locked_by": "account"
  },
  "voicemail_notification_by_email": {
    "enable": true,
    "locked": false,
    "locked_by": "account",
    "include_voicemail_file": true,
    "include_voicemail_transcription": false,
    "forward_voicemail_to_email": true
  },
  "shared_voicemail_notification_by_email": {
    "enable": true,
    "locked": false,
    "locked_by": "account"
  },
  "restricted_call_hours": {
    "enable": true,
    "locked": false,
    "locked_by": "account",
    "time_zone": {
      "id": "America/Adak",
      "name": "(GMT-9:00) Adak"
    },
    "restricted_hours_applied": false,
    "restricted_holiday_hours_applied": false,
    "allow_internal_calls": true
  },
  "allowed_call_locations": {
    "enable": true,
    "locked": false,
    "locked_by": "account",
    "locations_applied": false,
    "allow_internal_calls": true
  },
  "check_voicemails_over_phone": {
    "enable": true,
    "locked": false,
    "locked_by": "account"
  },
  "auto_call_recording": {
    "enable": true,
    "locked": false,
    "locked_by": "account",
    "recording_calls": "inbound",
    "recording_transcription": true,
    "allow_stop_resume_recording": true,
    "disconnect_on_recording_failure": true,
    "play_recording_beep_tone": {
      "enable": true,
      "play_beep_member": "allMembers",
      "play_beep_volume": 60,
      "play_beep_time_interval": 15
    },
    "inbound_audio_notification": {
      "recording_start_prompt": true,
      "recording_start_prompt_audio_id": "ySMexBgBQsioV8KKCUybTA",
      "recording_explicit_consent": true
    },
    "outbound_audio_notification": {
      "recording_start_prompt": true,
      "recording_start_prompt_audio_id": "ySMexBgBQsioV8KKCUybTA",
      "recording_explicit_consent": true
    }
  },
  "ad_hoc_call_recording": {
    "recording_transcription": true,
    "allow_download": true,
    "allow_delete": true,
    "recording_start_prompt": true,
    "recording_explicit_consent": true,
    "play_recording_beep_tone": {
      "enable": true,
      "play_beep_member": "allMembers",
      "play_beep_volume": 60,
      "play_beep_time_interval": 15
    },
    "enable": true,
    "locked": false,
    "locked_by": "account"
  },
  "international_calling": {
    "enable": true,
    "locked": false,
    "locked_by": "account"
  },
  "outbound_calling": {
    "enable": true,
    "locked": false,
    "locked_by": "account"
  },
  "outbound_sms": {
    "enable": true,
    "locked": false,
    "locked_by": "account"
  },
  "sms": {
    "enable": true,
    "locked": false,
    "locked_by": "account",
    "international_sms": true
  },
  "sms_etiquette_tool": {
    "sms_etiquette_policy": [
      {
        "id": "PdPtFFDbQhKr05WepCHhWQ",
        "name": "invalid symbol",
        "description": "invalid symbol",
        "rule": 1,
        "content": "test",
        "action": 1,
        "active": true
      }
    ],
    "enable": true,
    "locked": false,
    "locked_by": "account"
  },
  "zoom_phone_on_mobile": {
    "enable": true,
    "locked": false,
    "locked_by": "account",
    "allow_calling_sms_mms": true
  },
  "zoom_phone_on_pwa": {
    "enable": true,
    "locked": false,
    "locked_by": "account"
  },
  "e2e_encryption": {
    "enable": true,
    "locked": false,
    "locked_by": "account"
  },
  "call_handling_forwarding_to_other_users": {
    "enable": true,
    "locked": false,
    "locked_by": "account",
    "call_forwarding_type": 1
  },
  "call_overflow": {
    "enable": true,
    "locked": false,
    "locked_by": "account",
    "call_overflow_type": 1
  },
  "call_transferring": {
    "enable": true,
    "locked": false,
    "locked_by": "account",
    "call_transferring_type": 2
  },
  "elevate_to_meeting": {
    "enable": true,
    "locked": false,
    "locked_by": "account"
  },
  "call_park": {
    "expiration_period": 3,
    "call_not_picked_up_action": 50,
    "forward_to": {
      "display_name": "ZOOM_API Test",
      "extension_id": "TO586CYlQFC_WCUvPRXytA",
      "extension_number": 100014,
      "extension_type": "user",
      "id": "oG_nYRFuTJiY1tu0Fur_4Q"
    },
    "sequence": 1,
    "enable": true,
    "locked": false,
    "locked_by": "account"
  },
  "hand_off_to_room": {
    "enable": true,
    "locked": false,
    "locked_by": "account"
  },
  "mobile_switch_to_carrier": {
    "enable": true,
    "locked": false,
    "locked_by": "account"
  },
  "delegation": {
    "enable": true,
    "locked": false,
    "locked_by": "account"
  },
  "audio_intercom": {
    "enable": true,
    "locked": false,
    "locked_by": "account"
  },
  "block_calls_without_caller_id": {
    "enable": true,
    "locked": false,
    "locked_by": "account"
  },
  "block_external_calls": {
    "block_business_hours": true,
    "block_closed_hours": true,
    "block_holiday_hours": true,
    "block_call_action": 0,
    "enable": true,
    "locked": false,
    "locked_by": "account"
  },
  "call_queue_opt_out_reason": {
    "call_queue_opt_out_reasons_list": [
      {
        "code": "Break",
        "system": true,
        "enable": true
      }
    ],
    "enable": true,
    "locked": false,
    "locked_by": "account"
  },
  "auto_delete_data_after_retention_duration": {
    "enable": true,
    "locked": false,
    "locked_by": "account",
    "items": [
      {
        "type": "callLog",
        "duration": -1,
        "time_unit": "year"
      }
    ],
    "delete_type": 1,
    "permanently_delete_after_days": -1
  },
  "auto_call_from_third_party_apps": {
    "enable": true,
    "locked": false,
    "locked_by": "account"
  },
  "override_default_port": {
    "min_port": 9000,
    "max_port": 9998,
    "enable": true,
    "locked": false,
    "locked_by": "account"
  },
  "peer_to_peer_media": {
    "enable": true,
    "locked": false,
    "locked_by": "account"
  },
  "advanced_encryption": {
    "disable_incoming_unencrypted_voicemail": true,
    "enable": true,
    "locked": false,
    "locked_by": "account"
  },
  "display_call_feedback_survey": {
    "feedback_type": 1,
    "feedback_mos": {
      "enable": true,
      "min": "1.1",
      "max": "3.0"
    },
    "feedback_duration": {
      "enable": true,
      "min": 0,
      "max": 60
    },
    "enable": true,
    "locked": false,
    "locked_by": "account"
  },
  "block_list_for_inbound_calls_and_messaging": {
    "enable": true,
    "locked": true,
    "locked_by": "account"
  },
  "block_calls_as_threat": {
    "enable": true,
    "locked": true,
    "locked_by": "invalid"
  },
  "online_fax": {
    "enable": true,
    "locked": false,
    "locked_by": "account",
    "enable_new_fax_email_notifications": true,
    "include_fax_as_attachment": false
  },
  "private_call_park": {
    "enable": true,
    "locked": false,
    "locked_by": "account",
    "expiration_period": 3,
    "call_not_picked_up_action": 50,
    "forward_to": {
      "display_name": "ZOOM_API Test",
      "extension_id": "TO586CYlQFC_WCUvPRXytA",
      "extension_number": 100014,
      "extension_type": "user",
      "id": "oG_nYRFuTJiY1tu0Fur_4Q"
    },
    "sequence": 1,
    "music_on_park": {
      "audio_id": "yCT14TwySDGVUypVlKNEyA",
      "audio_name": "example.mp3"
    }
  },
  "sms_template": {
    "enable": true,
    "locked": false,
    "locked_by": "account",
    "sms_template_list": [
      {
        "sms_template_id": "0qWIP8S8QXmo6KShUIyvZA",
        "name": "name",
        "description": "description",
        "content": "content",
        "active": true
      }
    ]
  },
  "call_screening": {
    "enable": true,
    "locked": false,
    "locked_by": "account",
    "exclude_user_company_contacts": true
  },
  "sms_auto_reply": {
    "enable": true,
    "locked": false,
    "locked_by": "account"
  },
  "allow_end_user_edit_call_handling": {
    "enable": true,
    "locked": false,
    "locked_by": "account"
  },
  "connect_to_operator": {
    "enable": true,
    "locked": false,
    "locked_by": "account"
  },
  "no_hold_conference": {
    "enable": true,
    "locked": false,
    "locked_by": "account"
  },
  "conference_dtmf": {
    "enable": true,
    "locked": false,
    "locked_by": "account"
  },
  "end_conference_call_when_originator_drops": {
    "enable": true,
    "locked": false,
    "locked_by": "account"
  },
  "chat_channel": {
    "enable": true,
    "locked": false,
    "locked_by": "account"
  },
  "desk_phone_smart_key_positions_layout": {
    "enable": true,
    "locked": false,
    "locked_by": "account"
  },
  "auto_opt_out_in_call_queue": {
    "enable": false,
    "locked": false,
    "locked_by": "account",
    "prompt_before_opt_out_call_queue": true
  },
  "allow_mobile_home_phone_callout": {
    "enable": true,
    "locked": false,
    "locked_by": "account"
  },
  "use_callkit_for_incoming_call_notifications_in_ios": {
    "enable": false,
    "locked": false,
    "locked_by": "account"
  },
  "hide_phone_call_history_in_ios": {
    "enable": false,
    "locked": false,
    "locked_by": "account"
  },
  "obfuscate_sensitive_data_during_call": {
    "enable": false,
    "locked": false,
    "locked_by": "account"
  },
  "prevent_users_upload_audio_files": {
    "enable": false,
    "locked": false,
    "locked_by": "account"
  },
  "voicemail_tasks": {
    "enable": false,
    "locked": false,
    "locked_by": "account"
  },
  "voicemail_intent_based_prioritization": {
    "enable": false,
    "locked": false,
    "locked_by": "account"
  },
  "team_sms_thread_summary": {
    "enable": false,
    "locked": false,
    "locked_by": "account"
  },
  "customize_line_name": {
    "enable": false,
    "locked": false,
    "locked_by": "account",
    "user_line_name": "phoneNumber",
    "common_area_line_name": "phoneNumber"
  },
  "show_custom_disclaimer_when_using_zoom_phone": {
    "enable": false,
    "locked": false,
    "locked_by": "account",
    "display_frequency": "first_time_only",
    "custom_disclaimer_list": [
      {
        "language": "en-GB",
        "title": "tilte",
        "body": "body"
      }
    ]
  }
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Setting type(s) supplied in query parameter setting_types is invalid. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List an account's customized outbound caller ID phone numbers

  • Method: GET
  • Path: /phone/outbound_caller_id/customized_numbers
  • Tags: Accounts

Retrieves phone numbers that can be used as the account-level customized outbound caller ID. Note that when multiple sites policy is enabled, users cannot manage the account-level configuration. The system will throw an exception.

Prerequisites:

  • A Business or Enterprise account
  • A Zoom Phone license.

Scopes: phone:read:admin

Granular Scopes: phone:read:list_customized_number:admin

Rate Limit Label: Light

Responses

Status: 200 **HTTP Status Code:** `200` Customized numbers for outbound caller ID listed successfully.
Content-Type: application/json
  • customize_numbers

    array

    Items:

    • customize_id

      string — The customization ID.

    • display_name

      string — Name of the phone number.

    • extension_id

      string — The extension ID.

    • extension_name

      string — The extension name.

    • extension_number

      string — The extension number.

    • extension_type

      string — The extension type.

    • incoming

      boolean — Whether the incoming policy is enabled for the phone number.

    • outgoing

      boolean — Whether the outgoing policy is enabled for the phone number.

    • phone_number

      string — The phone number in E164 format.

    • phone_number_id

      string — The ID of the phone number.

    • site

      object

  • next_page_token

    string — The next page token paginates through a large set of results. A next page token is returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • page_size

    integer — The number of records returned within a single API call for each page.

  • total_records

    integer — The total number of records returned.

Example:

{
  "customize_numbers": [
    {
      "customize_id": "8_RkKw9OQ42oYsXqJJjs4A",
      "phone_number_id": "55JUZPwERHuGttd_j4qBsQ",
      "phone_number": "+12055437350",
      "display_name": "test abc",
      "incoming": true,
      "outgoing": true,
      "extension_id": "HaSokHMCSeK8taMdv2vnXQ",
      "extension_type": "callQueue",
      "extension_number": "10001",
      "extension_name": "SJ CQ",
      "site": {
        "id": "8f71O6rWT8KFUGQmJIFAdQ",
        "name": "testSite"
      }
    }
  ],
  "next_page_token": "BJLYC6PABbAHdjwSkGVQeeR6B1juwHqj3G2",
  "page_size": 30,
  "total_records": 10
}
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Add phone numbers for an account's customized outbound caller ID

  • Method: POST
  • Path: /phone/outbound_caller_id/customized_numbers
  • Tags: Accounts

Adds the account-level customized outbound caller ID phone numbers. Note that when multiple sites policy is enabled, users cannot manage the account-level configuration. The system will throw an exception.

Prerequisites:

  • A Business or Enterprise account
  • A Zoom Phone license.

Scopes: phone:write:admin

Granular Scopes: phone:write:customized_number:admin

Rate Limit Label: Light

Request Body

Content-Type: application/json
  • phone_number_ids

    array — The phone number IDs.

    Items:

    string

Example:

{
  "phone_number_ids": [
    "55JUZPwERHuGttd_j4qBsQ"
  ]
}

Responses

Status: 201 **HTTP Status Code:** `201` **Created** Customized caller ID numbers added successfully.
Content-Type: application/json

Example:

null
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Validation Failed. Site does not exist.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Delete phone numbers for an account's customized outbound caller ID

  • Method: DELETE
  • Path: /phone/outbound_caller_id/customized_numbers
  • Tags: Accounts

Deletes the account-level customized outbound caller ID phone numbers. Note that when multiple sites policy is enabled, users cannot manage the account-level configuration. The system will throw an exception.

Prerequisites:

  • A Business or Enterprise account
  • A Zoom Phone license.

Scopes: phone:write:admin

Granular Scopes: phone:delete:customized_number:admin

Rate Limit Label: Light

Responses

Status: 204 **HTTP Status Code:** `204` **Created** Customized numbers have been deleted successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Validation Failed. Site does not exist.<br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List alert settings with paging query

  • Method: GET
  • Path: /phone/alert_settings
  • Tags: Alerts

Gets alert settings for an account with paging query.

Prerequisites

  • Pro or a higher account with Zoom Phone license
  • Account owner or admin permissions

Scopes: phone:read:admin

Granular Scopes: phone:read:list_alert_settings:admin

Rate Limit Label: MEDIUM

Responses

Status: 200 **HTTP Status Code:** `200` **OK** Alert settings listed successfully.
Content-Type: application/json
  • alert_settings

    array

    Items:

    • alert_setting_id

      string — The unique identifier of the alert setting.

    • alert_setting_name

      string — The name of the alert setting.

    • chat_channels

      array — The chat channels. This field applies when the value of `module` represents `Call Queue Management` or `Route Group Management` or `Devices &amp; Phones Management` or `Call Quality Management`.

      Items:

      • chat_channel_name

        string — The channel name.

      • end_point

        string — The end point.

      • token

        string — The verification token.

    • email_recipients

      array — The email addresses of recipients.

      Items:

      string

    • frequency

      integer, possible values: 5, 10, 15, 30, 60 — The frequency of alert triggers. The unit is `minutes`. When the value of `module` represents `Call Queue Management` or `Route Group Management` or `Devices &amp; Phones Management` or `Call Quality Management`, it will be used.

    • module

      integer — The module of the alert. The module and its code mappings display as: `Call Queue Management`-`1`, `Route Group Management`-`2`, `Devices &amp; Phones Management`-`3`, `Call Quality Management`-`4`, `Emergency Services Management`-`5`

    • rule

      integer — The rule of the alert. The rule and its code mappings display as: `Service Level`-`1`, `Inbound Abandoned Calls`-`2`, `Inbound Overflowed Calls`-`3`, `Inbound Avg Call Waiting Time`-`4`, `Inbound Forwarded to Voicemail`-`5`, `Number of Waiting Calls`-`6`, `Member Availability (Active)`-`7`, `Member Availability (Opt-in/Opt-out)`-`8`, `Route groups status change`-`9`, `Devices go offline`-`10`, `Devices go online`-`11`, `Device offline rate`-`12`, `QoS Alert`-`13`, `Emergency Call Alert`-`14`.

    • rule_conditions

      array — The rule conditions.

      Items:

      • rule_condition_type

        integer, possible values: 1, 2, 3, 4, 5 — The condition type. * `1`-`Threshold` * `2`-`Warning` * `3`-`Critical` * `4`-`Alert` * `5`-`Severity`. The `Threshold` is used in the case of the `Service Level` rule. The `Warning` or `Critical` is used in the case of the `Service Level` or `Inbound Abandoned Calls` or `Inbound Overflowed Calls` or `Number of Waiting Calls` or `Inbound Forwarded to Voicemail` or `Member Availability (Active)` or `Member Availability (Opt-in/Opt-out)` or `Device offline rate` or `Inbound Avg Call Waiting Time` or `QoS Alert` rule. The `Alert` is used in the case of the `Devices go offline` or `device_online_time` rule. The `Severity` is used in the case of the `Emergency Call Alert` or `Route groups status change` rule.

      • rule_condition_value

        string — The rule condition value. In the case of the value of `rule_condition_type` is `1`, the available values: `15`, `30`, `60`, `120`, `180`, `240`, `300`. In the case of the value of `rule_condition_type `is `2` or `3`, when the value of `rule` represents `Service Level` or `Inbound Abandoned Calls` or `Inbound Overflowed Calls` or `Inbound Forwarded to Voicemail` or `Member Availability (Active)` or `Member Availability (Opt-in/Opt-out)` or `Device offline rate`, the unit is `percentage`, the value can only be in the range of `1` to `100`, when the value of `rule` represents `Inbound Avg Call Waiting Time`, the unit is `seconds`, the available values: `10`, `15`, `20`, `25`, `30`, `45`, `60`, `120`, `180`, `240`, `300`, `600`, `900`, `1200`, `1500`, `1800`, when the value of `rule` represents `QoS Alert`, the value can be only in the range of `0` to `5`. In the case of the value of `rule_condition_type` is `4`, the available values:`5`, `10`, `15`,`30`,`60`. In the case of the value of `rule_condition_type` is `5`,the available values:`Warning`,`Critical`.

    • status

      integer, possible values: 0, 1 — The alert's status: * `0` &mdash; Inactive. * `1` &mdash; Active.

    • targets

      array — The targets of the alert.

      Items:

      • target_name

        string — The target name.

    • time_frame_from

      string — The start time of time frame in which the alert was triggered, in `HH:mm:ss` format. When the `time_frame_type` is `all_day`, the value is `00:00:00`

    • time_frame_to

      string — The end time of time frame in which the alert was triggered, in `HH:mm:ss` format. When the `time_frame_type` is `all_day`, the value is `00:00:00`

    • time_frame_type

      string, possible values: "all_day", "specific_time" — The time frame type. The available values: `all_day`, `specific_time`

  • next_page_token

    string — The next page token paginates through a large set of results. A next page token is returned whenever the set of the available result list exceeds the page size.

  • page_size

    integer — The size of each page.

Example:

{
  "next_page_token": "2z0Ov7kngllAbfQi4ZR2eQTb3mFVYQpYAe3",
  "page_size": 30,
  "alert_settings": [
    {
      "alert_setting_id": "uvsOCaiDQR2M-NviKFHo0w",
      "alert_setting_name": "Call Queue Alert",
      "module": 1,
      "rule": 1,
      "rule_conditions": [
        {
          "rule_condition_type": 5,
          "rule_condition_value": "Warning"
        }
      ],
      "targets": [
        {
          "target_name": "test api"
        }
      ],
      "time_frame_type": "specific_time",
      "time_frame_from": "08:30:00",
      "time_frame_to": "18:00:00",
      "frequency": 5,
      "email_recipients": [
        "test@example.com"
      ],
      "chat_channels": [
        {
          "chat_channel_name": "ApiTA_Site_2020_07_21_11_02_26_901",
          "token": "eyJhbGciOiJIUzUxMiIsInYiOiIy",
          "end_point": "https://www.testexample.com"
        }
      ],
      "status": 1
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `13000` <br> Only power pack user can get CQ rules.<br> <br> **Error Code:** `13001` <br> Non super admin can only list CQ rules.<br> <br> **Error Code:** `13002` <br> Current operation is not allowed, please contact support.<br> <br> **Error Code:** `13012` <br> The module:{0} does not support this rule:{1}.<br> <br> **Error Code:** `403` <br> You do not have permission. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `124` <br> Account does not exist: {accountId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Add an alert setting

  • Method: POST
  • Path: /phone/alert_settings
  • Tags: Alerts

Adds an alert setting.

Prerequisites:

  • Pro or a higher account with Zoom Phone license
  • Account owner or admin permissions

Scopes: phone:write:admin

Granular Scopes: phone:write:alert_setting:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • alert_setting_name (required)

    string — The name of the alert setting.

  • module (required)

    integer — The module of the alert. The module and its code mappings are shown as: `Call Queue Management`-`1`, `Route Group Management`-`2`, `Devices &amp; Phones Management`-`3`, `Call Quality Management`-`4`, and `Emergency Services Management`-`5`

  • rule (required)

    integer — The rule of the alert. The rule and its code mappings are shown as: `Service Level`-`1`, `Inbound Abandoned Calls`-`2`, `Inbound Overflowed Calls`-`3`, `Inbound Avg Call Waiting Time`-`4`, `Inbound Forwarded to Voicemail`-`5`, `Number of Waiting Calls`-`6`, `Member Availability (Active)`-`7`, `Member Availability (Opt-in/Opt-out)`-`8`, `Route groups status change`-`9`, `Devices go offline`-`10`, `Devices go online`-`11`, `Device offline rate`-`12`, `QoS Alert`-`13`, and `Emergency Call Alert`-`14`. When the value of the `module` is `1`, the value of `rule` can only be in the range of `1` to `8`. When the value of the `module` is `2`, the value of `rule` can only be `9`. When the value of the `module` is `3`, the value of `rule` can only be in the range of `10` to `12`. When the value of the `module` is `4`, the value of `rule` can only be `13`. When the value of the `module` is `5`, the value of `rule` can only be `14`. Alerts of rule `7` or rule `8` cannot exceed 30 in number.

  • rule_conditions (required)

    array — The rule conditions.

    Items:

    • rule_condition_type

      integer, possible values: 1, 2, 3, 4, 5 — The condition type. * `1`-`Threshold` * `2`-`Warning` * `3`-`Critical` * `4`-`Alert` * `5`-`Severity` We use the `Threshold` for the `Service Level` rule. We use the `Warning` or `Critical` for: `Service Level`, `Inbound Abandoned Calls`, `Inbound Overflowed Calls`, `Inbound Forwarded to Voicemail`, `Number of Waiting Calls`, `Member Availability (Active)`, `Member Availability (Opt-in/Opt-out)`, `Device offline rate`, `Inbound Avg Call Waiting Time`, or `QoS Alert` rule. We use `Alert` for the `Devices go offline` or `Devices go online` rule. We use `Severity` for the `Emergency Call Alert` or `Route groups status change` rule.

    • rule_condition_value

      string — The rule condition value. `rule_condition_type` is `1`: The available values are `15`, `30`, `60`, `120`, `180`, `240`, `300`. `rule_condition_type `is `2` or `3`: When the value of `rule` represents `Service Level`, `Inbound Abandoned Calls`, `Inbound Overflowed Calls`, `Inbound Forwarded to Voicemail`, `Member Availability (Active)`, `Member Availability (Opt-in/Opt-out)`, or `Device offline rate`, the unit is `percentage`. The value can only be in the range of `1` to `100`. When the value of `rule` represents `Inbound Avg Call Waiting Time`, the unit is `seconds`. The available values are `10`, `15`, `20`, `25`, `30`, `45`, `60`, `120`, `180`, `240`, `300`, `600`, `900`, `1200`, `1500`, and `1800`. When the value of `rule` represents `QoS Alert`, the value can be only in the range of `0` to `5`. `rule_condition_type` is `4`: The available values:`5`, `10`, `15`,`30`, and `60`. `rule_condition_type` is `5`: The available values are`Warning` and `Critical`.

  • target_type (required)

    integer, possible values: 1, 2, 3, 4, 5 — The target type. * `1`-`User` * `2`-`Account` * `3`-`Call Queue` * `4`-`Site` * `5`-`Device`

  • time_frame_from (required)

    string — The start time of time frame in which the alert was triggered, in `HH:mm:ss` format. When the `time_frame_type` is `all_day`, the value is `00:00:00`. The value should be either at the whole hour or at half past the hour.

  • time_frame_to (required)

    string — The end time of time frame in which the alert was triggered, in `HH:mm:ss` format. When the `time_frame_type` is `all_day`, the value is `00:00:00`. The value should be either at the whole hour or at half past the hour.

  • time_frame_type (required)

    string, possible values: "all_day", "specific_time" — The time frame type. The available values: `all_day` and `specific_time`

  • chat_channels

    array — The chat channels. It's used When the value of `module` represents `Call Queue Management`, `Route Group Management`, `Devices &amp; Phones Management`, and `Call Quality Management`. The number of the chat channels is up to `3`

    Items:

    • chat_channel_name

      string — The channel name

    • end_point

      string — The end point.

    • token

      string — The verification token.

  • email_recipients

    array — The email addresses of recipients. The number of the emails is up to `10`

    Items:

    string

  • frequency

    integer, possible values: 5, 10, 15, 30, 60 — The frequency of alert triggers. The unit is `minutes`. When the value of `module` represents `Call Queue Management` or `Route Group Management` or `Devices &amp; Phones Management` or `Call Quality Management`, it will be used.

  • status

    integer, possible values: 0, 1 — The alert's status: * `0` — Inactive. * `1` — Active.

  • target_ids

    array — The target IDs of the alert. The target type can be `User`, `Account`, `Call Queue`, `Site`, and `Device`. When the value of `rule` is in the range of `1` to `8`, it only supports the `Call Queue` and if the number of `Call Queue` is `1`, you should pass the `Extension ID` of the specific call queue. When the value of the `rule` is `9`, it can only support the `Account`. You only need to specify the value of `target_type`. This field doesn't need a specified value. When the value of the `rule` is `10`, it can support the `Account` or `Device`. If you want to set the `Account`, you only need to specify the value of `target_type`. This field doesn't need a specified value. If you want to set the `Device`, you should pass the `Device ID` of the specific device. The number of `Device` is up to `5`. When the value of the `rule` is `11`, it can support the `Device`. The number of `Device` is up to `5`. You should pass the `Device ID` of the specific device. When the value of the `rule` is `12`, it can support the `Site` and the number of `Site` is `1`. You should pass the `Site ID` of the specific site. When the value of the `rule` is `13`, it can support the `User` and the number of `User` is up to `5`. You should pass the `Extension ID` of the specific user. When the value of the `rule` is `14`, it can support the `Site` and the number of `Site` is `1`. You should pass the `Site ID` of the specific site.

    Items:

    string

Example:

{
  "alert_setting_name": "Call Queue Alert",
  "module": 1,
  "rule": 1,
  "target_type": 1,
  "target_ids": [
    "1PXbl7s6Q52nbePrUxUZTg"
  ],
  "rule_conditions": [
    {
      "rule_condition_type": 5,
      "rule_condition_value": "Warning"
    }
  ],
  "time_frame_type": "specific_time",
  "time_frame_from": "08:30:00",
  "time_frame_to": "18:00:00",
  "frequency": 5,
  "email_recipients": [
    "test@example.com"
  ],
  "chat_channels": [
    {
      "chat_channel_name": "ApiTA_Site_2020_07_21_11_02_26_901",
      "token": "eyJhbGciOiJIUzUxMiIsInYiOiIy",
      "end_point": "https://www.testexample.com"
    }
  ],
  "status": 1
}

Responses

Status: 201 **HTTP Status Code:** `201` **Created** Alert setting added successfully.
Content-Type: application/json
  • alert_setting_id

    string — The unique identifier of the alert setting.

  • alert_setting_name

    string — The name of the alert setting.

Example:

{
  "alert_setting_id": "uvsOCaiDQR2M-NviKFHo0w",
  "alert_setting_name": "Call Queue Alert"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Validation Failed<br> <br> **Error Code:** `13004` <br> Alert rule on this target already exists.<br> <br> **Error Code:** `13005` <br> This alert can only be set up once.<br> <br> **Error Code:** `13006` <br> The number of target is invalid. <br> <br> **Error Code:** `13007` <br> The number of email recipients is invalid. <br> <br> **Error Code:** `13008` <br> The number of chat channels is invalid.<br> <br> **Error Code:** `13009` <br> Fail to create alert.<br> <br> **Error Code:** `13010` <br> Invalid parameters.<br> <br> **Error Code:** `13012` <br> The module:{0} does not support this rule:{1}.<br> <br> **Error Code:** `13013` <br> The rule:{0} does not support this target type:{1}.<br> <br> **Error Code:** `13014` <br> The target id:{0} is invalid.<br> <br> **Error Code:** `403` <br> You do not have permission.<br> <br> **Error Code:** `13015` <br> The rule:{0} can not support the rule condition type:{1}.<br> <br> **Error Code:** `13016` <br> The rule:{0} is missing the rule condition type:{1}.<br> <br> **Error Code:** `13017` <br> The value of the rule condition type:{0} is invalid.<br> <br> **Error Code:** `13018` <br> The value of alert field:{0} is invalid.<br> <br> **Error Code:** `13019` <br> The group does not exist, groupId:{0}.<br> <br> **Error Code:** `13020` <br> There are duplicated rule condition types.<br> <br> **Error Code:** `13021` <br> The rule condition value can not be same.<br> <br> **Error Code:** `13022` <br> The number of alerts for this module:{0} has reached the limit, and it is not allowed to create alerts of this rule:{1}.<br> <br> **Error Code:** `13023` <br> The number of email recipients is invalid.<br> <br> **Error Code:** `13024` <br> The number of chat channels is invalid. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get alert setting details

  • Method: GET
  • Path: /phone/alert_settings/{alertSettingId}
  • Tags: Alerts

Returns detailed information about a specific alert setting.

Prerequisites:

  • Pro or a higher account with Zoom Phone license
  • Account owner or admin permissions

Scopes: phone:read:admin

Granular Scopes: phone:read:alert_setting:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` **OK** Alert setting information retrieved successfully.
Content-Type: application/json
  • alert_setting_id

    string — The unique identifier of the alert setting.

  • alert_setting_name

    string — The name of the alert setting.

  • chat_channels

    array — The chat channels. This field applies when the value of `module` represents `Call Queue Management`, `Route Group Management`, `Devices &amp; Phones Management`, or `Call Quality Management`.

    Items:

    • chat_channel_name

      string — The channel name.

    • end_point

      string — The end point.

    • token

      string — The verification token.

  • email_recipients

    array — The email addresses of recipients.

    Items:

    string

  • frequency

    integer, possible values: 5, 10, 15, 30, 60 — The frequency of alert triggers. The unit is `minutes`. It's used when the value of `module` represents `Call Queue Management`, `Route Group Management`, `Devices &amp; Phones Management`, or `Call Quality Management`.

  • module

    integer — The module of the alert. The module and its code mappings displays as: `Call Queue Management`-`1`, `Route Group Management`-`2`, `Devices &amp; Phones Management`-`3`, `Call Quality Management`-`4`, `Emergency Services Management`-`5`

  • rule

    integer — The rule of the alert. The rule and its code mappings displays as: `Service Level`-`1`, `Inbound Abandoned Calls`-`2`, `Inbound Overflowed Calls`-`3`, `Inbound Avg Call Waiting Time`-`4`, `Inbound Forwarded to Voicemail`-`5`, `Number of Waiting Calls`-`6`, `Member Availability (Active)`-`7`, `Member Availability (Opt-in/Opt-out)`-`8`, `Route groups status change`-`9`, `Devices go offline`-`10`, `Devices go online`-`11`, `Device offline rate`-`12`, `QoS Alert`-`13`, `Emergency Call Alert`-`14`.

  • rule_conditions

    array — The rule conditions.

    Items:

    • rule_condition_type

      integer, possible values: 1, 2, 3, 4, 5 — The condition type. * `1`-`Threshold` * `2`-`Warning` * `3`-`Critical` * `4`-`Alert` * `5`-`Severity`. The `Threshold` is used for the `Service Level` rule. The `Warning` or `Critical` is used for the `Service Level`, `Inbound Abandoned Calls`, `Inbound Overflowed Calls`, `Number of Waiting Calls`, `Inbound Forwarded to Voicemail`, `Member Availability (Active)`, `Member Availability (Opt-in/Opt-out)`, `Device offline rate`, `Inbound Avg Call Waiting Time`, or `QoS Alert` rule. The `Alert` is used for the `Devices go offline` or `device_online_time` rule. The `Severity` is used for the `Emergency Call Alert` or `Route groups status change` rule.

    • rule_condition_value

      string — The rule condition value. If the `rule_condition_type` is `1`, the available values are `15`, `30`, `60`, `120`, `180`, `240`, and `300`. In the case of the value of `rule_condition_type `is `2` or `3`, when the value of `rule` represents `Service Level`, `Inbound Abandoned Calls`, `Inbound Overflowed Calls`, `Inbound Forwarded to Voicemail`, `Member Availability (Active)`, `Member Availability (Opt-in/Opt-out)`, or `Device offline rate`, the unit is `percentage`. The value can only be in the range of `1` to `100`, when the value of `rule` represents `Inbound Avg Call Waiting Time`, the unit is `seconds`. The available values are `10`, `15`, `20`, `25`, `30`, `45`, `60`, `120`, `180`, `240`, `300`, `600`, `900`, `1200`, `1500`, and `1800`. When the value of `rule` represents `QoS Alert`, the value can be only in the range of `0` to `5`. In the case of the value of `rule_condition_type` is `4`, the available values are`5`, `10`, `15`,`30`, and `60`. In the case of the value of `rule_condition_type` is `5`, the available values are `Warning` and`Critical`.

  • status

    integer, possible values: 0, 1 — The alert's status: * `0` — Inactive. * `1` — Active.

  • targets

    array — The targets of the alert.

    Items:

    • assignees

      array — This field applies when the the value of `target_type` represents `Devices`.

      Items:

      • extension_id

        string — The extension ID of the `user` or `common area`.

      • extension_number

        integer, format: int64 — The extension number of the Zoom Phone the `user` or `commonArea` uses.

      • extension_type

        string, possible values: "user", "commonArea" — The type of the assignee. Its available only if the device is assigned.

      • name

        string — Name.

    • site

      object

    • target_extension_number

      integer, format: int64 — The extension number of the Zoom Phone that the `User` uses.

    • target_id

      string — The target ID.

    • target_name

      string — The target name.

    • target_type

      integer, possible values: 1, 2, 3, 4, 5 — The target type. * `1`-`User` * `2`-`Account` * `3`-`Call Queue` * `4`-`Site` * `5`-`Device`

  • time_frame_from

    string — The start time of time frame in which the alert was triggered, in `HH:mm:ss` format. When the `time_frame_type` is `all_day`, the value is `00:00:00`

  • time_frame_to

    string — The end time of time frame in which the alert was triggered, in `HH:mm:ss` format. When the `time_frame_type` is `all_day`, the value is `00:00:00`

  • time_frame_type

    string, possible values: "all_day", "specific_time" — The time frame type. The available values: `all_day`, `specific_time`

Example:

{
  "alert_setting_id": "uvsOCaiDQR2M-NviKFHo0w",
  "alert_setting_name": "Call Queue Alert",
  "module": 1,
  "rule": 1,
  "rule_conditions": [
    {
      "rule_condition_type": 1,
      "rule_condition_value": "Warning"
    }
  ],
  "targets": [
    {
      "target_id": "-GHFnf5WQe-H-_r0Wwx9iQ",
      "target_name": "test api",
      "target_type": 1,
      "target_extension_number": 123,
      "site": {
        "id": "123123",
        "name": "Main Site"
      },
      "assignees": [
        {
          "extension_number": 123,
          "name": "Pooja",
          "extension_type": "user",
          "extension_id": "MjGXQfCxShapaxJDka7"
        }
      ]
    }
  ],
  "time_frame_type": "specific_time",
  "time_frame_from": "08:30:00",
  "time_frame_to": "18:00:00",
  "frequency": 5,
  "email_recipients": [
    "test@example.com"
  ],
  "chat_channels": [
    {
      "chat_channel_name": "ApiTA_Site_2020_07_21_11_02_26_901",
      "token": "eyJhbGciOiJIUzUxMiIsInYiOiIy",
      "end_point": "https://www.testexample.com"
    }
  ],
  "status": 1
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `403` <br> You do not have permission. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `13003` <br> The alert setting does not exist, alertSettingId:{0}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Delete an alert setting

  • Method: DELETE
  • Path: /phone/alert_settings/{alertSettingId}
  • Tags: Alerts

Deletes an alert setting.

Prerequisites:

  • Pro or a higher account with Zoom Phone license
  • Account owner or admin permissions.

Scopes: phone:write:admin

Granular Scopes: phone:delete:alert_setting:admin

Rate Limit Label: LIGHT

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Alert setting deleted successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `403` <br> You do not have permission. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `13003` <br> The alert setting does not exist, alertSettingId:{0}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update an alert setting

  • Method: PATCH
  • Path: /phone/alert_settings/{alertSettingId}
  • Tags: Alerts

Updates information of an Alert setting.

Prerequisites:

  • Pro or a higher account with Zoom Phone license
  • Account owner or admin permissions

Scopes: phone:write:admin

Granular Scopes: phone:patch:alert_setting:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • alert_setting_name

    string — The name of the alert setting.

  • chat_channels

    array — The chat channels. This field applies when the value of `module` represents `Call Queue Management` or `Route Group Management` or `Devices &amp; Phones Management` or `Call Quality Management`. The number of the chat channels is up to `3`

    Items:

    • chat_channel_name

      string — The channel name.

    • end_point

      string — The end point.

    • token

      string — The verification token.

  • email_recipients

    array — The email addresses of recipients. The number of the emails is up to `10`

    Items:

    string

  • frequency

    integer, possible values: 5, 10, 15, 30, 60 — The frequency of alert triggers. The unit is `minutes`. When the value of `module` represents `Call Queue Management` or `Route Group Management` or `Devices &amp; Phones Management` or `Call Quality Management`, it will be used.

  • rule_conditions

    array — The rule conditions.

    Items:

    • rule_condition_type

      integer, possible values: 1, 2, 3, 4, 5 — The condition type. * `1`-`Threshold` * `2`-`Warning` * `3`-`Critical` * `4`-`Alert` * `5`-`Severity`. The `Threshold` is used for the `Service Level` rule. The `Warning` or `Critical` is used for the `Service Level`, `Inbound Abandoned Calls`, `Inbound Overflowed Calls`, `Number of Waiting Calls`, `Inbound Forwarded to Voicemail`, `Member Availability (Active)`, `Member Availability (Opt-in/Opt-out)`, `Device offline rate`, `Inbound Avg Call Waiting Time`, or `QoS Alert` rule. The `Alert` is used for the `Devices go offline` or `device_online_time` rule. The `Severity` is used for the `Emergency Call Alert` or `Route groups status change` rule.

    • rule_condition_value

      string — The rule condition value. In the case of the value of `rule_condition_type` is `1`, the available values: `15`, `30`, `60`, `120`, `180`, `240`, `300`. In the case of the value of `rule_condition_type `is `2` or `3`, when the value of `rule` represents `Service Level` or `Inbound Abandoned Calls` or `Inbound Overflowed Calls` or `Inbound Forwarded to Voicemail` or `Member Availability (Active)` or `Member Availability (Opt-in/Opt-out)` or `Device offline rate`, the unit is `percentage`, the value can only be in the range of `1` to `100`, when the value of `rule` represents `Inbound Avg Call Waiting Time`, the unit is `seconds`, the available values: `10`, `15`, `20`, `25`, `30`, `45`, `60`, `120`, `180`, `240`, `300`, `600`, `900`, `1200`, `1500`, `1800`, when the value of `rule` represents `QoS Alert`, the value can be only in the range of `0` to `5`. In the case of the value of `rule_condition_type` is `4`, the available values:`5`, `10`, `15`,`30`,`60`. In the case of the value of `rule_condition_type` is `5`,the available values:`Warning`,`Critical`.

  • status

    integer, possible values: 0, 1 — The alert's status: * `0` &mdash; Inactive. * `1` &mdash; Active.

  • target_ids

    array — The target IDs of the alert. When the rule is `Devices go offline` and the old value of this field does not represents `Account`, it can be updated incrementally. When the rule is `Devices go online` or `QoS Alert`, it can be updated incrementally. In the case of `Devices go online` or `Devices go offline` rule, you should pass the `Device ID` of the specific device and the number of Device is up to `5` In the case of `QoS Alert` rule, you should pass the `Extension ID` of the specific user and the number of User is up to `5`

    Items:

    string

  • time_frame_from

    string — The start time of time frame in which the alert was triggered, in `HH:mm:ss` format. When the `time_frame_type` is `all_day`, the value is `00:00:00`. The value should be either at the whole hour or at half past the hour.

  • time_frame_to

    string — The end time of time frame in which the alert was triggered, in `HH:mm:ss` format. When the `time_frame_type` is `all_day`, the value is `00:00:00`. The value should be either at the whole hour or at half past the hour.

  • time_frame_type

    string, possible values: "all_day", "specific_time" — The time frame type. The available values: `all_day`, `specific_time`

Example:

{
  "alert_setting_name": "Call Queue Alert",
  "rule_conditions": [
    {
      "rule_condition_type": 1,
      "rule_condition_value": "Warning"
    }
  ],
  "target_ids": [
    "vcmGf5wETQy2qExibfWUiA"
  ],
  "time_frame_type": "specific_time",
  "time_frame_from": "08:30:00",
  "time_frame_to": "18:00:00",
  "frequency": 5,
  "email_recipients": [
    "test@example.com"
  ],
  "chat_channels": [
    {
      "chat_channel_name": "ApiTA_Site_2020_07_21_11_02_26_901",
      "token": "eyJhbGciOiJIUzUxMiIsInYiOiIy",
      "end_point": "https://www.testexample.com"
    }
  ],
  "status": 1
}

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Alert setting updated successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Validation Failed<br> <br> **Error Code:** `13006` <br> The number of target is invalid.<br> <br> **Error Code:** `13007` <br> The number of email recipients is invalid. <br> <br> **Error Code:** `13008` <br> The number of chat channels is invalid.<br> <br> **Error Code:** `13010` <br> Invalid parameters.<br> <br> **Error Code:** `13011` <br> The specified extension is in the private directory whom you do not have access to.<br> <br> **Error Code:** `13014` <br> The target id:{0} is invalid.<br> <br> **Error Code:** `403` <br> You do not have permission.<br> <br> **Error Code:** `13023` <br> The number of email recipients is invalid.<br> <br> **Error Code:** `13024` <br> The number of chat channels is invalid. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `13003` <br> The alert setting does not exist, alertSettingId:{0}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get an audio item

  • Method: GET
  • Path: /phone/audios/{audioId}
  • Tags: Audio Library

Returns an audio item. Only the admin or user can access your audio.

Prerequisites:

  • Business or Education account
  • Zoom Phone license

Scopes: phone:read,phone:read:admin

Granular Scopes: phone:read:audio,phone:read:audio:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` **OK**Successfully listed an audio item.
Content-Type: application/json
  • audio_id

    string — The unique identifier of the audio item.

  • name

    string — The name of the audio item.

  • play_url

    string — The URL of the audio file. (The URL is valid for 6 hours.)

  • text

    string — The message to play. The maximum message length is 3000.

  • voice_accent

    string — The accent of the audio file, such as `Joanna-Female` or `Joey-Male`.

  • voice_language

    string, possible values: "en-US", "en-GB", "en-GB-WLS", "en-AU", "en-IN", "en-ZA", "en-NZ", "es-ES", "es-US", "es-MX", "fr-CA", "da-DK", "de-DE", "fr-FR", "it-IT", "is-IS", "nl-NL", "pt-PT", "ja-JP", "ko-KO", "ko-KR", "pt-BR", "pl-PL", "zh-CN", "zh-TW", "cmn-CN", "tr-TR", "nb-NO", "ro-RO", "ru-RU", "sv-SE", "cy-GB", "ca-ES", "de-AT", "arb" — The audio voice language. The language and its code mappings, such as: `American English`-`en-US`, or `British English`-`en-GB`.

Example:

{
  "audio_id": "yCT14TwySDGVUypVlKNEyA",
  "name": "hello.mp3",
  "play_url": "https://file.example.com/file?jwt=eyJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2MzY3MjY0MDEsImlzcyI6ImNyb3NzZmlsZSIsImF1ZCI6ImZpbGUiLCJkaWciOiIzM2MyZGFhZjQ2ZDQ2MzFiNGJkMWUzZmRmYmI5OTBjOTUzNTEwZmE5ZDYxZjYyNDAyNGY5OWZiYmY5ZmZlMWU4In0.kPwNFT1C_twZHl3CTeyaiOLhxmJBcHb__SvDBmgGpiQ&mode=download&path=zoomfs%3A%2F%2Fpbx-voice%2F%2Fprompt%2FNNNiWOl7SSmO-qXFOSXPMA%2FhcAjVmo0SVmdSvW2Sm7VrA.mp3",
  "text": "hello",
  "voice_language": "en-US",
  "voice_accent": "Joanna-Female"
}
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Delete an audio item

  • Method: DELETE
  • Path: /phone/audios/{audioId}
  • Tags: Audio Library

Deletes an audio item. Only the admin or user can delete your audio.

Prerequisites:

  • Business, or Education account
  • Zoom Phone license

Scopes: phone:write,phone:write:admin

Granular Scopes: phone:delete:audio,phone:delete:audio:admin

Rate Limit Label: LIGHT

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Successfully deleted an audio item
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update an audio item

  • Method: PATCH
  • Path: /phone/audios/{audioId}
  • Tags: Audio Library

Updates an audio item. Only the admin or user can update your audio.

Prerequisites:

  • Business or Education account
  • Zoom Phone license

Scopes: phone:write,phone:write:admin

Granular Scopes: phone:update:audio,phone:update:audio:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • name (required)

    string — The name of the audio item.

Example:

{
  "name": "hello.mp3"
}

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Successfully updated an audio item
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List audio items

  • Method: GET
  • Path: /phone/users/{userId}/audios
  • Tags: Audio Library

Returns personal audios.

Only the admin or user can query your audios and directly pass the me value instead of the userId parameter.

Prerequisites:

  • Business or Education account
  • Zoom Phone license

Scopes: phone:read,phone:read:admin

Granular Scopes: phone:read:list_audios,phone:read:list_audios:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` **OK** Successfully listed the audio items.
Content-Type: application/json
  • audios

    array — The audio item list.

    Items:

    • audio_id

      string — The unique identifier of the audio item.

    • name

      string — The name of the audio item.

Example:

{
  "audios": [
    {
      "audio_id": "fPOSdWWqRVqhohLYs7TW9Q",
      "name": "hello.mp3"
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Invalid user id. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2001` <br> Account does not exist. <br> **Error Code:** `1001` <br> User does not exist: {userId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Add an audio item for text-to-speech conversion

  • Method: POST
  • Path: /phone/users/{userId}/audios
  • Tags: Audio Library

Adds an audio item for text-to-speech conversion. Only the admin or user can add your audio and directly pass the me value instead of the userId parameter.

Prerequisites:

  • Business or Education account
  • Zoom Phone license

Scopes: phone:write,phone:write:admin

Granular Scopes: phone:write:audio,phone:write:audio:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • audio_name

    string — The name of the audio item.

  • text

    string — The message to play. The maximum message length is 3000

  • voice_accent

    string — The accent of the audio file, `Joanna-Female` or `Joey-Male` for example.

  • voice_language

    string — Language `en-US` or `en-GB` for example.

Example:

{
  "audio_name": "hello.mp3",
  "text": "hello",
  "voice_language": "en-US",
  "voice_accent": "Joanna-Female"
}

Responses

Status: 201 **HTTP Status Code:** `201` **Created** Added an audio item successfully.
Content-Type: application/json
  • audio_id

    string — Unique identifier of the audio item

  • name

    string — Name of the audio item

Example:

{
  "audio_id": "fPOSdWWqRVqhohLYs7TW9Q",
  "name": "hello.mp3"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Invalid user ID.<br> User does not exist.<br> The language is not supported.<br> The voice accent is not supported.<br> The text is empty.<br> Maximum text length has been exceeded. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2001` <br> Account does not exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Add audio items

  • Method: POST
  • Path: /phone/users/{userId}/audios/batch
  • Tags: Audio Library

Adds the audio items. You can only upload voice files at this time. Only the admin or user can add your audio and directly pass the me value instead of the userId parameter.

Prerequisites:

  • Business or Education account
  • Zoom Phone license

Size and quantity limits for audio attachments:

  • Up to 5 attachments
  • Each file size should be no more than 1MB

Scopes: phone:write,phone:write:admin

Granular Scopes: phone:write:batch_audios,phone:write:batch_audios:admin

Rate Limit Label: HEAVY

Request Body

Content-Type: application/json
  • attachments

    array

    Items:

    • audio_type

      string — The format of the attachments. Supported formats: audio/mpeg, audio/wav

    • base64_encoding

      string — The ASCII string to send [Base64 encoded](https://en.wikipedia.org/wiki/Base64) attachments as text.

    • name

      string — The audio file name.

Example:

{
  "attachments": [
    {
      "audio_type": "audio/mpeg, audio/wav",
      "base64_encoding": "TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlz\nIHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2Yg\ndGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZG=",
      "name": "hello.mp3"
    }
  ]
}

Responses

Status: 201 **HTTP Status Code:** `201` **Created** Audio items successfully added.
Content-Type: application/json
  • audios

    array — The audio item list.

    Items:

    • audio_id

      string — The unique identifier of the audio item.

    • name

      string — The name of the audio item.

Example:

{
  "audios": [
    {
      "audio_id": "fPOSdWWqRVqhohLYs7TW9Q",
      "name": "hello.mp3"
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> The type of audio is invalid, audio name: {0}. The size of audio exceeds limit, audio name: {0}. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2001` <br> Account does not exist. <br> **Error Code:** `1001` <br> User does not exist: {userId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List auto receptionists

  • Method: GET
  • Path: /phone/auto_receptionists
  • Tags: Auto Receptionists

Returns a list of auto receptionists.

Prerequisites:

  • Pro or a higher account with Zoom Phone license.
  • Account owner or admin permissions.

Scopes: phone:read:admin

Granular Scopes: phone:read:list_auto_receptionists:admin

Rate Limit Label: Medium

Responses

Status: 200 **HTTP Status Code:** `200` **OK** List of [auto receptionists](https://support.zoom.us/hc/en-us/articles/360021121312-Managing-auto-receptionists) retrieved successfully.
Content-Type: application/json
  • auto_receptionists

    array

    Items:

    • audio_prompt_language

      string — Audio prompt language.

    • cost_center

      string — `nullable` Cost center name.

    • department

      string — `nullable` Department name.

    • extension_id

      string — Extension ID

    • extension_number

      integer, format: int64 — Extension number of the auto receptionist.

    • holiday_hours

      array — The holiday hours.

      Items:

      • from

        string, format: date-time — The holiday start date and time in `yyyy-MM-dd'T'HH:mm:ss'Z'` format.

      • id

        string — The holiday ID.

      • name

        string — The name of the holiday.

      • to

        string, format: date-time — The holiday end date and time, in `yyyy-MM-dd'T'HH:mm:ss'Z'` format.

    • id

      string — The unique identifier of the auto receptionist.

    • name

      string — Name of the auto receptionist.

    • phone_numbers

      array

      Items:

      • id

        string — Unique identifier of the phone number.

      • number

        string — Phone number.

    • site

      object

    • timezone

      string — [Timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones) of the Auto Receptionist.

  • next_page_token

    string — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • page_size

    integer — Total number of records returned from a single API call.

  • total_records

    integer — Total number of records found for this query.

Example:

{
  "auto_receptionists": [
    {
      "cost_center": "testCostCenter",
      "department": "testDepartment",
      "extension_id": "WfsrPERXS8inWrpH1Hi_KQ",
      "extension_number": 555550000000001,
      "id": "nqerMCD0Tu6RPGoCpVbPtA",
      "name": "JamieAuto",
      "timezone": "Pacific/Midway",
      "audio_prompt_language": "en-US",
      "holiday_hours": [
        {
          "id": "i3gP6xFUTHqSFrIE6nHs7Q",
          "name": "Holiday 1",
          "from": "2022-03-08T16:00:00Z",
          "to": "2022-03-09T16:00:00Z"
        }
      ],
      "phone_numbers": [
        {
          "id": "KsxwNLEhQ0SJ4U4Bor4ShA",
          "number": "+12058945717"
        }
      ],
      "site": {
        "id": "O4rBC_zEQnCVoiHfXKGKNA",
        "name": "jamietestsite"
      }
    }
  ],
  "next_page_token": "uBTK3NzNksdkuCUAQaFVFd86kyOr59zg4U2",
  "page_size": 30,
  "total_records": 1
}
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Add an auto receptionist

  • Method: POST
  • Path: /phone/auto_receptionists
  • Tags: Auto Receptionists

Adds an auto receptionist to a Zoom Phone. Auto receptionists answer calls with a personalized recording and routes calls to a phone user, call queue, common area, voicemail or an IVR system.

Prerequisites:

  • Pro or higher account with Zoom Phone license.
  • Account owner or admin privileges

Scopes: phone:write:admin

Granular Scopes: phone:write:auto_receptionist:admin

Rate Limit Label: Light

Request Body

Content-Type: application/json

Example:

{
  "name": "JamieAuto",
  "site_id": "O4rBC_zEQnCVoiHfXKGKNA"
}

Responses

Status: 201 **HTTP Status Code:** `201` **Created** Auto receptionist added successfully.
Content-Type: application/json
  • extension_number

    integer, format: int64 — Extension number assigned to the auto receptionist.

  • id

    string — Auto receptionist ID. The unique identifier of the auto receptionist.

  • name

    string — Name of the auto receptionist.

Example:

{
  "extension_number": 555550000000001,
  "id": "nqerMCD0Tu6RPGoCpVbPtA",
  "name": "JamieAuto"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get an auto receptionist

  • Method: GET
  • Path: /phone/auto_receptionists/{autoReceptionistId}
  • Tags: Auto Receptionists

Returns information on a specific auto receptionist.

Prerequisites:

  • Pro or a higher account with Zoom Phone license
  • Account owner or admin permissions

Scopes: phone:read:admin

Granular Scopes: phone:read:auto_receptionist:admin

Rate Limit Label: MEDIUM

Responses

Status: 200 **HTTP Status Code:** `200` **OK** Successfully get an auto receptionist detail.
Content-Type: application/json
  • audio_prompt_language

    string, possible values: "en-US", "en-GB", "es-US", "fr-CA", "da-DK", "de-DE", "es-ES", "fr-FR", "it-IT", "nl-NL", "pt-PT", "ja", "ko-KR", "pt-BR", "zh-CN" — The language for all default audio prompts for the auto receptionist. * `en-US` : English (US) * `en-GB` : English (UK) * `es-US` : Spanish (US) * `fr-CA` : French (Canada) * `da-DK` : Danish (Denmark) * `de-DE` : German (Germany) * `es-ES` : Spanish (Spain) * `fr-FR` : French (France) * `it-IT` : Italian (Italy) * `nl-NL` : Dutch (Netherlands) * `pt-PT` : Portuguese (Portugal) * `ja` : Japanese * `ko-KR` : Korean (Korea) * `pt-BR` : Portuguese (Brazil) * `zh-CN` : Chinese (PRC)

  • cost_center

    string — `nullable` The cost center name.

  • department

    string — `nullable` The name of the department.

  • extension_id

    string — The extension ID

  • extension_number

    integer, format: int64 — The extension number of the auto receptionist.

  • holiday_hours

    array — The holiday hours.

    Items:

    • from

      string, format: date-time — The holiday start date and time in `yyyy-MM-dd'T'HH:mm:ss'Z'` format.

    • id

      string — The holiday ID.

    • name

      string — The name of the holiday.

    • to

      string, format: date-time — The holiday end date and time, in `yyyy-MM-dd'T'HH:mm:ss'Z'` format.

  • name

    string — The name of the auto receptionist.

  • own_storage_name

    string — The name of your own storage. Use your own storage provided by Oracle Cloud Infrastructure (OCI) to store Zoom Phone recordings, voicemails, and voicemail transcripts, and custom greeting prompts.

  • phone_numbers

    array

    Items:

    • id

      string — The unique identifier of the phone number.

    • number

      string — The phone number.

  • recording_storage_location

    string, possible values: "US", "AU", "CA", "DE", "IN", "JP", "SG", "BR", "CN", "MX" — Where the recording will be stored. Recording includes Phone recordings, voicemail, voicemail transcripts, and custom greeting prompts. * `US` : United States * `AU` : Australia * `CA` : Canada * `DE` : Germany * `IN` : India * `JP` : Japan * `SG` : Singapore * `BR` : Brazil * `CN` : China * `MX` : Mexico <b>Note:</b> * If the setting is locked at the Account level, it can't be updated.

  • site

    object

  • timezone

    string — [Timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones) of the auto receptionist.

Example:

{
  "cost_center": "testCostCenter",
  "department": "testDepartment",
  "extension_id": "WfsrPERXS8inWrpH1Hi_KQ",
  "extension_number": 555550000000001,
  "name": "JamieAuto",
  "timezone": "Pacific/Midway",
  "audio_prompt_language": "en-US",
  "holiday_hours": [
    {
      "id": "i3gP6xFUTHqSFrIE6nHs7Q",
      "name": "Holiday 1",
      "from": "2022-03-08T16:00:00Z",
      "to": "2022-03-09T16:00:00Z"
    }
  ],
  "phone_numbers": [
    {
      "id": "KsxwNLEhQ0SJ4U4Bor4ShA",
      "number": "+12058945717"
    }
  ],
  "site": {
    "id": "O4rBC_zEQnCVoiHfXKGKNA",
    "name": "jamietestsite"
  },
  "recording_storage_location": "US",
  "own_storage_name": "us-oracle-storage"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Validation Failed. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Delete a non-primary auto receptionist

  • Method: DELETE
  • Path: /phone/auto_receptionists/{autoReceptionistId}
  • Tags: Auto Receptionists

Deletes a non-primary auto receptionist.

An auto receptionist answers calls with a personalized recording and routes calls to a phone user, call queue, common area (phone), or to a voicemail. An auto receptionist can also be set up so that it routes calls to an interactive voice response (IVR) system to allow callers to select the routing options.

Prerequisites:

  • Pro or higher account with Zoom Phone license.

Scopes: phone:write:admin

Granular Scopes: phone:delete:auto_receptionist:admin

Rate Limit Label: Light

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Auto Receptionist deleted successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Unable to delete main Auto receptionist.<br><br> <br> **Error Code:** `404` <br> AutoReceptionist does not exist: {autoReceptionistId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update an auto receptionist

  • Method: PATCH
  • Path: /phone/auto_receptionists/{autoReceptionistId}
  • Tags: Auto Receptionists

Changes information such as the display name and the extension number assigned to the main auto receptionist.

An auto receptionist answers calls with a personalized recording. And it routes calls to a phone user, call queue, common area, or voicemail. An auto receptionist can also be set up so that it routes calls to an interactive voice response (IVR) system to allow callers to select the routing options.

Prerequisites:

  • Pro or higher account with Zoom Phone license.

Scopes: phone:write:admin

Granular Scopes: phone:update:auto_receptionist:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • audio_prompt_language

    string, possible values: "en-US", "en-GB", "es-US", "fr-CA", "da-DK", "de-DE", "es-ES", "fr-FR", "it-IT", "nl-NL", "pt-PT", "ja", "ko-KR", "pt-BR", "zh-CN" — The language for all default audio prompts for the Auto Receptionist. * `en-US` : English (US) * `en-GB` : English (UK) * `es-US` : Spanish (US) * `fr-CA` : French (Canada) * `da-DK` : Danish (Denmark) * `de-DE` : German (Germany) * `es-ES` : Spanish (Spain) * `fr-FR` : French (France) * `it-IT` : Italian (Italy) * `nl-NL` : Dutch (Netherlands) * `pt-PT` : Portuguese (Portugal) * `ja` : Japanese * `ko-KR` : Korean (Korea) * `pt-BR` : Portuguese (Brazil) * `zh-CN` : Chinese (PRC)

  • cost_center

    string — The cost center name.

  • department

    string — The department name.

  • extension_number

    integer, format: int64 — The extension number to be assigned to the auto receptionist. If site code is enabled, provide the short extension number instead.

  • name

    string — Display name of the auto receptionist.

  • recording_storage_location

    string, possible values: "US", "AU", "CA", "DE", "IN", "JP", "SG", "BR", "CN", "MX" — Where the recording will be stored. The recording includes Phone recordings, voicemail, voicemail transcripts, and custom greeting prompts. * `US` : United States * `AU` : Australia * `CA` : Canada * `DE` : Germany * `IN` : India * `JP` : Japan * `SG` : Singapore * `BR` : Brazil * `CN` : China * `MX` : Mexico <b>Note:</b> * If the setting is locked at the Account level, it can't be updated.

  • timezone

    string — The [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones) of the Auto Receptionist.

Example:

{
  "cost_center": "testCostCenter",
  "department": "testDepartment",
  "extension_number": 555550000000001,
  "name": "JamieAuto",
  "audio_prompt_language": "en-US",
  "timezone": "Pacific/Midway",
  "recording_storage_location": "US"
}

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Auto Receptionist details updated sucessfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Extension Number must be {min} to {max} digits<br> Validation Failed. AutoReceptionist does not exist, AutoReceptionistId: {autoReceptionistId}<br> Audio prompt language is invalid:{0}<br> Time zone is invalid:{0}<br> <br> **Error Code:** `400` <br> Invalid short number length.<br> Invalid full extension number length.<br><br> <br> **Error Code:** `10001` <br> Number {extensionNumber} is a reserved extension number.<br> Extension number {extensionNumber} is already used.<br> Language setting is invalid. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Assign phone numbers

  • Method: POST
  • Path: /phone/auto_receptionists/{autoReceptionistId}/phone_numbers
  • Tags: Auto Receptionists

Assigns available phone numbers to an auto receptionist. The available numbers can be retrieved using the List Phone Numbers API with type query parameter set to "unassigned".

Prerequisites:

  • Pro or higher account plan with Zoom Phone License
  • Account owner or admin permissions

Scopes: phone:write:admin

Granular Scopes: phone:write:auto_receptionist_number:admin

Rate Limit Label: Light

Request Body

Content-Type: application/json
  • phone_numbers

    array — Provide either the unique identifier of the Phone Number in the `id` field or provide the phone number in the `number` field.

    Items:

    • id

      string — Unique Identifier of the Phone number.

    • number

      string — Phone number in e164 format.

Example:

{
  "phone_numbers": [
    {
      "id": "KsxwNLEhQ0SJ4U4Bor4ShA",
      "number": "+12058945717"
    }
  ]
}

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Phone numbers assigned successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Unable to update this number as it is used for outbound caller ID to public safety answering point.<br> Phone number does not exist, phonenumberId:{phonenumberId}<br> phoneNumber is used, phonenumberId:{phonenumberId} <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `404` <br> AutoReceptionist does not exist, AutoReceptionistId: {autoReceptionId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Unassign all phone numbers

  • Method: DELETE
  • Path: /phone/auto_receptionists/{autoReceptionistId}/phone_numbers
  • Tags: Auto Receptionists

Unassigns all phone numbers that were previously assigned to an auto receptionist.

Prerequisites:

  • Pro or higher account plan with Zoom Phone License
  • Account owner or admin permissions

Scopes: phone:write:admin

Granular Scopes: phone:delete:auto_receptionist_number:admin

Rate Limit Label: LIGHT

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Phone numbers unassigned successfully.
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `404` <br> AutoReceptionist does not exist, AutoReceptionistId: {autoReceptionId} <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Unassign a phone number

  • Method: DELETE
  • Path: /phone/auto_receptionists/{autoReceptionistId}/phone_numbers/{phoneNumberId}
  • Tags: Auto Receptionists

Unassigns a specific phone number that was previously assigned to an auto receptionist.

Prerequisites:

  • Pro or higher account plan with Zoom Phone License
  • Account owner or admin permissions

Scopes: phone:write:admin

Granular Scopes: phone:delete:auto_receptionist_number:admin

Rate Limit Label: Light

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Phone number unassigned successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Phone number does not belong to auto receptionist. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `404` <br> AutoReceptionist does not exist, AutoReceptionistId: {autoReceptionId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get an auto receptionist policy

  • Method: GET
  • Path: /phone/auto_receptionists/{autoReceptionistId}/policies
  • Tags: Auto Receptionists

Returns the policy setting of a specific auto receptionist.

Prerequisites:

  • Pro or a higher account with Zoom Phone license
  • Account owner or admin permissions

Scopes: phone:read:admin

Granular Scopes: phone:read:auto_receptionist_policy:admin

Rate Limit Label: MEDIUM

Responses

Status: 200 **HTTP Status Code:** `200` **OK** Successfully retrieved the auto receptionist policy.
Content-Type: application/json
  • sms

    object

    • enable

      boolean — Whether to allow users, call queues and auto receptionists to send and receive messages. You will still need to assign a valid calling plan and phone number to each user in order for them to send and receive messages.

    • international_sms

      boolean — Whether the user can send and receive international messages.

    • international_sms_countries

      array — The country to which users can send and receive international messages. The [country ISO code](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries).

      Items:

      string

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account", "site" — Which level of administrator prohibits modifying the current settings.

    • modified

      boolean — Whether the current settings have been modified. If modified, they can be reset (displayed when using the new policy framework).

  • voicemail_access_members

    array — Shared voicemail access member list.

    Items:

    • access_user_id

      string — The member's ID in the shared voicemail access list determines the sharing or updating of access permissions. It must be the unique identifier of the user, or unique identifier of the common area depending on the access user type.

    • access_user_type

      string, possible values: "commonArea", "user" — The extension type of the member to be added in the shared voicemail access member list. Allowed: user | commonArea.

    • delete

      boolean — Specifies whether the user has delete permissions. The default is **false**.

    • download

      boolean — Specifies whether the user has download permissions. The default is **false**.

    • shared_id

      string — Unique identifier of the shared voicemail that the user can access.

  • voicemail_notification_by_email

    object — Once enabled, users will receive email notifications when there is a new voicemail from users, call queues, auto receptionists or shared line groups. Users who disabled the shared voicemail notification by email policy will not receive notifications. Only displayed when the voicemail policy is using the new policy framework.

    • enable

      boolean

    • forward_voicemail_to_email

      boolean — Whether to forward the voicemail to email.

    • include_voicemail_file

      boolean — Whether to include the voicemail file.

    • include_voicemail_transcription

      boolean — Whether to include the voicemail transcription.

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account", "site" — Which level of administrator prohibits modifying the current settings.

    • modified

      boolean — Whether the current settings have been modified. If modified, they can be reset (displayed when using the new policy framework).

  • voicemail_transcription

    object

    • enable

      boolean — Whether to allow users to access transcriptions of voicemails from the Zoom client, the Zoom web portal and email notifications.

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account", "site" — Which level of administrator prohibits modifying the current settings.

    • modified

      boolean — Whether the current settings have been modified. If modified, they can be reset (displayed when using the new policy framework).

Example:

{
  "voicemail_access_members": [
    {
      "shared_id": "--e8ugg0SeS-9clgrDkn2w",
      "access_user_id": "w0RChiauQeqRlv5fgxYULQ",
      "access_user_type": "commonArea",
      "delete": false,
      "download": false
    }
  ],
  "voicemail_transcription": {
    "enable": true,
    "locked": true,
    "locked_by": "site",
    "modified": true
  },
  "voicemail_notification_by_email": {
    "include_voicemail_file": true,
    "include_voicemail_transcription": false,
    "forward_voicemail_to_email": true,
    "enable": true,
    "locked": true,
    "locked_by": "site",
    "modified": true
  },
  "sms": {
    "enable": true,
    "international_sms": true,
    "international_sms_countries": [
      "US"
    ],
    "locked": true,
    "locked_by": "site",
    "modified": true
  }
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update an auto receptionist policy

  • Method: PATCH
  • Path: /phone/auto_receptionists/{autoReceptionistId}/policies
  • Tags: Auto Receptionists

Updates the policy setting of a specific auto receptionist.

Prerequisites:

  • Pro or higher account plan with Zoom Phone License
  • Account owner or admin permissions

Scopes: phone:write:admin

Granular Scopes: phone:update:auto_receptionist_policy:admin

Rate Limit Label: Light

Request Body

Content-Type: application/json
  • sms

    object

    • enable

      boolean — Whether to allow users, call queues and auto receptionists to send and receive messages. You will still need to assign a valid calling plan and phone number to each user in order for them to send and receive messages.

    • international_sms

      boolean — Whether the user can send and receive international messages.

    • international_sms_countries

      array — The country which users can send and receive international messages. The [country ISO code](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries).

      Items:

      string

    • reset

      boolean — Whether the current settings will use the phone account's settings (applicable if the current settings are using the new policy framework).

  • voicemail_notification_by_email

    object — Once enabled, users will receive email notifications when there is a new voicemail from users, call queues, auto receptionists or shared line groups. Users who disabled the shared voicemail notification by email policy will not receive notifications. Only displayed when the voicemail policy is using the new policy framework.

    • enable

      boolean

    • forward_voicemail_to_email

      boolean — Whether to forward the voicemail to email.

    • include_voicemail_file

      boolean — Whether to include the voicemail file.

    • include_voicemail_transcription

      boolean — Whether to include the voicemail transcription.

    • reset

      boolean — Whether the current settings will use the phone account's settings (applicable if the current settings are using the new policy framework).

  • voicemail_transcription

    object

    • enable

      boolean — Whether to allow users to access transcriptions of voicemails from the Zoom client, the Zoom web portal and email notifications.

    • reset

      boolean — Whether the current settings will use the phone account's settings (applicable if the current settings are using the new policy framework).

Example:

{
  "voicemail_transcription": {
    "enable": true,
    "reset": true
  },
  "voicemail_notification_by_email": {
    "include_voicemail_file": true,
    "include_voicemail_transcription": false,
    "forward_voicemail_to_email": true,
    "enable": true,
    "reset": true
  },
  "sms": {
    "enable": true,
    "reset": true,
    "international_sms": true,
    "international_sms_countries": [
      "US"
    ]
  }
}

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Auto receptionist policy updated successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Add a policy subsetting

  • Method: POST
  • Path: /phone/auto_receptionists/{autoReceptionistId}/policies/{policyType}
  • Tags: Auto Receptionists

Adds a policy subsetting for a specific auto receptionist according to the policyType. For example, you can use this API to set up shared access members.

Prerequisites:

  • Pro or higher account plan with Zoom Phone License
  • Account owner or admin permissions

Scopes: phone:write:admin

Granular Scopes: phone:write:auto_receptionist_policy:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • voicemail_access_member

    object

    • access_user_id

      string — The user that is allowed to access voicemail messages for the extension.

    • access_user_type

      string, possible values: "commonArea", "user" — The extension type of the member to be added in the shared voicemail access member list. The default type will be the user, if empty. Allowed: user | commonArea.

    • delete

      boolean — Specifies whether the user has delete permissions. The default is **false**.

    • download

      boolean — Specifies whether the user has download permissions. The default is **false**.

Example:

{
  "voicemail_access_member": {
    "access_user_id": "w0RChiauQeqRlv5fgxYULQ",
    "access_user_type": "commonArea",
    "delete": false,
    "download": false
  }
}

Responses

Status: 201 **HTTP Status Code:** `201` **Created** Auto receptionist policy created successfully.
Content-Type: application/json
  • voicemail_access_member

    object

    • access_user_id

      string — The user that is allowed to access voicemail messages for the extension.

    • access_user_type

      string, possible values: "commonArea", "user" — The extension type of the member to be added in the shared voicemail access member list. Allowed: user | commonArea.

    • delete

      boolean — Specifies whether the user has delete permissions. The default is **false**.

    • download

      boolean — Specifies whether the user has download permissions. The default is **false**.

    • shared_id

      string — Unique identifier of the shared voicemail that the user can access.

Example:

{
  "voicemail_access_member": {
    "shared_id": "--e8ugg0SeS-9clgrDkn2w",
    "access_user_id": "w0RChiauQeqRlv5fgxYULQ",
    "access_user_type": "commonArea",
    "delete": false,
    "download": false
  }
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> <br> **Error Code:** `429` <br> You can only add up to {0} {1} to access your voicemail.<br> User does not exist: {0}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Delete a policy subsetting

  • Method: DELETE
  • Path: /phone/auto_receptionists/{autoReceptionistId}/policies/{policyType}
  • Tags: Auto Receptionists

Removes the policy subsetting for a specific auto receptionist according to the policyType. For example, you can use this API to remove shared access members.

Prerequisites:

  • Pro or higher account plan with Zoom Phone License
  • Account owner or admin permissions

Scopes: phone:write:admin

Granular Scopes: phone:delete:auto_receptionist_policy:admin

Rate Limit Label: LIGHT

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Auto receptionist policy successfully deleted.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update a policy subsetting

  • Method: PATCH
  • Path: /phone/auto_receptionists/{autoReceptionistId}/policies/{policyType}
  • Tags: Auto Receptionists

Updates the policy subsetting of a specific auto receptionist according to the policyType. For example, you can use this API to update shared access members.

Prerequisites:

  • Pro or higher account plan with Zoom Phone License
  • Account owner or admin permissions

Scopes: phone:write:admin

Granular Scopes: phone:update:auto_receptionist_policy:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • voicemail_access_member

    object — The setting for voicemail access members.

    • access_user_id

      string — The member's ID in the shared voicemail access list determines the sharing or updating of access permissions. It must be the unique identifier of the user, or the unique identifier of the common area, depending on the access user type.

    • access_user_type

      string, possible values: "commonArea", "user" — The extension type of the member to be added in the shared voicemail access member list. The default type will be user if empty. Allowed: user | commonArea.

    • delete

      boolean — This field specifies whether the user has delete permissions. The default is **false**.

    • download

      boolean — This field specifies whether the user has download permissions. The default is **false**.

    • shared_id

      string — This field is an unique identifier of the shared voicemail that the user can access.

Example:

{
  "voicemail_access_member": {
    "access_user_id": "w0RChiauQeqRlv5fgxYULQ",
    "access_user_type": "commonArea",
    "delete": false,
    "download": false,
    "shared_id": "--e8ugg0SeS-9clgrDkn2w"
  }
}

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Auto receptionist policy updated successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List billing accounts

  • Method: GET
  • Path: /phone/billing_accounts
  • Tags: Billing Account

Retrieves a list of available billing accounts for a Zoom account owner or a user with admin privileges.

If the multiple sites option has been enabled for the account, then field(site_id) is required.

Prerequisites:

  • Pro or higher account plan with Zoom phone license

Scopes: phone:read:admin

Granular Scopes: phone:read:list_billing_accounts:admin

Rate Limit Label: MEDIUM

Responses

Status: 200 **HTTP Status Code:** `200` **OK** Billing accounts returned successfully.
Content-Type: application/json
  • billing_accounts

    array

    Items:

    • id

      string — The billing account ID.

    • name

      string — The billing account name.

Example:

{
  "billing_accounts": [
    {
      "id": "3WWAEiEjTj2IQuyDiKMd_A",
      "name": "Delhi billing"
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request site_id is invalid
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get billing account details

  • Method: GET
  • Path: /phone/billing_accounts/{billingAccountId}
  • Tags: Billing Account

A Zoom account owner or a user with admin privilege can use this API to get information about a billing account.

Prerequisites:

  • Pro or higher account plan with Zoom phone license

Scopes: phone:read:admin

Granular Scopes: phone:read:billing_account:admin

Rate Limit Label: Light

Responses

Status: 200 **HTTP Status Code:** `200` **OK** Billing account retrieved successfully.
Content-Type: application/json
  • id

    string — The billing account ID.

  • name

    string — The billing account name.

Example:

{
  "id": "3WWAEiEjTj2IQuyDiKMd_A",
  "name": "Delhi billing"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Billing account does not exist: {billingAccountId}.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List blocked lists

  • Method: GET
  • Path: /phone/blocked_list
  • Tags: Blocked List

Returns all the blocked lists in an acccount. A Zoom account owner or a user with admin privilege can block phone numbers for phone users in an account. Blocked numbers can be inbound (numbers will be blocked from calling in) and outbound (phone users in your account won't be able to dial those numbers). Blocked callers will hear a generic message stating that the person they are calling is not available.

Prerequisites:

  • Pro or higher account plan with Zoom phone license

Scopes: phone:read:admin

Granular Scopes: phone:read:list_blocked_lists:admin

Rate Limit Label: MEDIUM

Responses

Status: 200 **HTTP Status Code:** `200` **OK** Blocked list returned successfully.
Content-Type: application/json
  • blocked_list

    array

    Items:

    • block_type

      string, possible values: "inbound", "outbound", "threat" — The block type. `inbound`: The blocked number or numbers with the specified prefix are prevented from calling in to phone users. `outbound`: The phone users are prevented from calling the blocked number or numbers with the specified prefix.

    • comment

      string — Comments to help you identify the blocked number or prefix.

    • id

      string — The unique identifier of the blocked list.

    • match_type

      string, possible values: "phoneNumber", "prefix" — Whether the match type for the blocked list: `phoneNumber`: Indicates that only a specific phone number that is shown in the `phone_number` field is blocked. `prefix`: Indicates that all numbers starting with the prefix that is shown in the `phone_number` field are blocked.

    • phone_number

      string — The phone number to be blocked if you passed `phoneNumber` as the value for the `match_type` field. If you passed `prefix` as the value for the `match_type` field, provide the prefix of the phone number in the `country` field. Displayed in E164 format.

    • status

      string, possible values: "active", "inactive" — Whether the blocking is active or inactive. `active`: The blocked list is active. `inactive`: The blocked list is inactive.

  • next_page_token

    string — The next page token paginates through large result sets. A next page token returns whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • page_size

    integer, default: 30 — The total number of records returned from a single API call.

  • total_records

    integer — The total number of records found for this query.

Example:

{
  "blocked_list": [
    {
      "block_type": "inbound",
      "comment": "test",
      "id": "2ypsHHwTTFK-fzZJkudYwA",
      "match_type": "prefix",
      "phone_number": "+12055558945",
      "status": "active"
    }
  ],
  "next_page_token": "OvrVMfenVmKgsH0SqfWQ2jgUsHFGXeanCB2",
  "page_size": 30,
  "total_records": 1
}
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Create a blocked list

  • Method: POST
  • Path: /phone/blocked_list
  • Tags: Blocked List

Creates a block list and add a number to the list.

A Zoom account owner or a user with the admin privilege can block phone numbers for phone users in an account.

Blocked numbers can be inbound (numbers will be blocked from calling in) and outbound (phone users in your account won't be able to dial those numbers).

Blocked callers will hear a generic message stating that the person they are calling is not available.

Prerequisites:

  • Pro or higher account plan with Zoom phone license

Scopes: phone:write:admin

Granular Scopes: phone:write:blocked_list:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • block_type

    string, possible values: "inbound", "outbound", "threat" — Whether you want the block type to be inbound or outbound. `inbound`: Pass this value to prevent the blocked number or prefix from calling into the phone users. `outbound`: Pass this value to prevent phone users from calling the blocked number or prefix.

  • comment

    string — Comments to help you identify the blocked number or prefix.

  • country

    string — The country information. For example, entering US or CH.

  • match_type

    string, possible values: "phoneNumber", "prefix" — This field specifies the match type for the blocked list: * `phoneNumber`: Choose this option (Phone Number Match) if you want to block a specific phone number. Provide the phone number in the `phone_number` field and the country code in the `country` field. * `prefix`: Choose this option (Prefix Match) if you want to block all numbers with a specific country or an area code. Enter a phone number in the `phone_number` field and in the `country` field, enter a country code as part of the prefix.

  • phone_number

    string — The phone number to be blocked if you passed `phoneNumber` as the value for the `match_type` field. If you passed `prefix` as the value for the `match_type` field, provide the prefix of the phone number in the `country` field.

  • status

    string, possible values: "active", "inactive" — This field enables or disables the blocking. One of the following values are allowed: `active`: Keep the blocking active. `inactive`: Disable the blocking.

Example:

{
  "block_type": "inbound",
  "comment": "test",
  "country": "US",
  "match_type": "prefix",
  "phone_number": "112",
  "status": "active"
}

Responses

Status: 201 **HTTP Status Code:** `201` **Created** Number added to the blocked list successfully.
Content-Type: application/json
  • id

    string — The unique identifier of the blocked list.

Example:

{
  "id": "2ypsHHwTTFK-fzZJkudYwA"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Invalid country. <br>
Status: 409 **HTTP Status Code:** `409` <br> Conflict
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get blocked list details

  • Method: GET
  • Path: /phone/blocked_list/{blockedListId}
  • Tags: Blocked List

Returns the information about a specific blocked list.

A Zoom account owner or a user with admin privilege can block phone numbers for phone users in an account. Blocked numbers can be inbound (numbers will be blocked from calling in) and outbound (phone users in your account won't be able to dial those numbers). Blocked callers will hear a generic message stating that the person they are calling is not available.

Prerequisites:

  • Pro or higher account plan with Zoom phone license

Scopes: phone:read:admin

Granular Scopes: phone:read:blocked_list:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` **OK** Blocked list retrieved successfully.
Content-Type: application/json
  • block_type

    string, possible values: "inbound", "outbound", "threat" — The block type. * `inbound`: The blocked number or numbers with the specifie prefix are prevented from calling in to phone users. * `outbound`: The phone users are prevented from calling the blocked number or numbers with the specified prefix.

  • comment

    string — This field provides a comment to help you identify the blocked number or prefix.

  • id

    string — The blocked list ID.

  • match_type

    string, possible values: "phoneNumber", "prefix" — This field indicates the match type for the blocked list. The values can be one of the following: * `phoneNumber`: Indicates that only a specific phone number that is shown in the `phone_number` field is blocked. * `prefix`: Indicates that all numbers starting with prefix that is shown in the `phone_number` field are blocked.

  • phone_number

    string — The phone number or the prefix number that is blocked based on the `match_type`. Displayed in E164 format.

  • status

    string, possible values: "active", "inactive" — This field indicates whether the blocking is active or inactive. *n`active`: The blocked list is active. * `inactive`: The blocked list is inactive.

Example:

{
  "block_type": "inbound",
  "comment": "test",
  "id": "2ypsHHwTTFK-fzZJkudYwA",
  "match_type": "prefix",
  "phone_number": "+120665558945",
  "status": "active"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Blocked number (Id: {blockedListId}) does not exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Delete a blocked list

  • Method: DELETE
  • Path: /phone/blocked_list/{blockedListId}
  • Tags: Blocked List

Deletes a blocked list, which removes the associated number from the blocked list.

The number will be unblocked after the deletion. A Zoom account owner or a user with admin privilege can block phone numbers for phone users in an account. Blocked numbers can be inbound (numbers will be blocked from calling in) and outbound (phone users in your account won't be able to dial those numbers).

Prerequisites:

  • Pro or higher account plan with Zoom phone license

Scopes: phone:write:admin

Granular Scopes: phone:delete:blocked_list:admin

Rate Limit Label: LIGHT

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Blocked list deleted successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Validation Failed. Blocked number (Id: {blockedListId}) does not exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update a blocked list

  • Method: PATCH
  • Path: /phone/blocked_list/{blockedListId}
  • Tags: Blocked List

Updates the information in the blocked list.

A Zoom account owner or a user with admin privilege can block phone numbers for phone users in an account. Blocked numbers can be inbound (numbers will be blocked from calling in) and outbound (phone users in your account won't be able to dial those numbers). Blocked callers hear a generic message stating that the person they are calling is not available.

Prerequisites:

  • Pro or higher account plan with Zoom phone license

Scopes: phone:write:admin

Granular Scopes: phone:update:blocked_list:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • block_type

    string, possible values: "inbound", "outbound" — Whether you want the block type to be inbound or outbound. `inbound`: Pass this value to prevent the blocked number or prefix from calling in to phone users. `outbound`: Pass this value to prevent phone users from calling the blocked number or prefix.

  • comment

    string — This field enables you to make a comment to identify the blocked number or prefix.

  • country

    string — The country information. For example, entering US or CH.

  • match_type

    string, possible values: "phoneNumber", "prefix" — This field specifies the match type for the blocked list: * `phoneNumber`: Choose this option (Phone Number Match) if you want to block a specific phone number. Provide the phone number in the `phone_number` field and the country code in the `country` field. * `prefix`: Choose this option (Prefix Match) if you want to block all numbers with a specific country or an area code. Enter a phone number in the `phone_number` field and in the `country` field, enter a country code as part of the prefix.

  • phone_number

    string — The phone number to be blocked if you passed `phoneNumber` as the value for the `match_type` field. If you passed `prefix` as the value for the `match_type` field, provide the prefix of the phone number in the `country` field.

  • status

    string, possible values: "active", "inactive" — This field enables or disables the blocking: * `active`: Keep the blocking active. * `inactive`: Disable the blocking.

Example:

{
  "block_type": "outbound",
  "comment": "testComment",
  "country": "CH",
  "match_type": "prefix",
  "phone_number": "113",
  "status": "inactive"
}

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Blocked list updated successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Invalid country. <br>
Status: 409 **HTTP Status Code:** `409` <br> Conflict
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get call handling settings

  • Method: GET
  • Path: /phone/extension/{extensionId}/call_handling/settings
  • Tags: Call Handling

Returns information about a Zoom Phone's call handling settings.

Call handling settings let you control how your system routes calls during business, closed, or holiday hours. For more information, read our API guide or Zoom support article Customizing call handling settings.

Applicable to user, call queue, auto receptionist, or shared line group call handling at this time.

Prerequisites

  • Pro or a higher account with Zoom Phone enabled

Scopes: phone:read:admin

Granular Scopes: phone:read:list_call_handling_settings:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` OK
Content-Type: application/json
  • business_hours

    array — The information about business hours settings.

    Items:

    • settings

      object — The business hours settings.

      • allow_callers_check_voicemail

        boolean — `Note: This field is invalid and part of incorrect documentation. It is not included in the actual response.` Whether to allow the callers to check voicemails over a phone. Required only when the `call_not_answer_action` setting is set to `1` (Forward to a voicemail).

      • allow_members_to_reset

        boolean — This field allows queue members to set their own business hours. It allows queue members' business hours to override the default hours of the call queue. Required for `Call Queue custom_hours` sub-setting.

      • audio_while_connecting

        object — Returns the audio played when the inbound callers are waiting to be routed to the next available call queue member. * empty char - default * `ring_tone` - "Ring Tone" option * `0` - disable Returned only for the `Call Queue` `call_handling` sub-setting.

      • busy_routing

        object — The extension's forwarding or overflow information when the user is busy on another call during Business Hours. Applicable to the extension as shown below: * `User`.

        • action

          integer — The action to take when the user is busy on another call during Business Hours: * `21` - Call waiting. * `22` - Play a busy signal. * `1` &mdash; Forward to a voicemail/videomail. * `2` - Forward to the user. * `4` - Forward to the common area. * `6` - Forward to the auto receptionist. * `7` - Forward to a call queue. * `8` - Forward to a shared line group. * `9` - Forward to an external contact. * `10` - Forward to an external number. * `12` &mdash; Play a message, then disconnect.

        • allow_callers_check_voicemail

          boolean — Whether to allow the callers to check voicemails over a phone. This field is only available in the following scenarios: * Secnario 1: The `action` in the `busy_routing` section is set to `1` (Forward to a voicemail). Applicable to the extension as shown below: * `User`

        • busy_play_callee_voicemail_greeting

          boolean — Whether to play callee's voicemail greeting when the caller reaches the end of the forwarding sequence. This field is only available in the following scenarios: * Secnario 1: The `action` in the `busy_routing` section is set to: `2`(Forward to the User), `3`(Forward to the Zoom Room), `4`(Forward to the Common Area), `5`(Forward to the Cisco/Polycom Room), `6`(Forward to the Auto Receptionist), `7`(Forward to a Call Queue) or `8`(Forward to a Shared Line Group). Applicable to the extension as shown below: * `User`

        • connect_to_operator

          boolean — Whether to allow callers to reach an operator. This field is only available in the following scenarios: * Secnario 1: The `action` in the `busy_routing` section is set to `1` (Forward to a voicemail). Applicable to the extension as shown below: * `User`

        • forward_to

          object — The information about the call forwarding target. This field is only available in the following scenarios: * Secnario 1: when `action` in the `busy_routing` section is set to: `2`(Forward to the User), `3`(Forward to the Zoom Room), `4`(Forward to the Common Area), `5`(Forward to the Cisco/Polycom Room), `6`(Forward to the Auto Receptionist), `7`(Forward to a Call Queue), `8`(Forward to a Shared Line Group) or `9`(forward to an External Contact) for the user busy on another call, this field is used to display the extension to which the call will be forwarded. This scenario applies to `User`. * Secnario 2: When `action` in the `busy_routing` section is set to `10` (Forward to Phone number/External number) for the user busy on another call, this field is used to display the specific Phone number/External number to which the call will be forwarded. This scenario applies to `User`.

          • description

            string — This field forwards to an external number description. This field is only available in the following scenarios: * Secnario 1: When `action` in the `busy_routing` section is set to `10` (Forward to Phone number/External number) for the user busy on another call, this field is used to display the specific Phone number/External number to which the call will be forwarded. This scenario applies to `User`.

          • display_name

            string — The extension's name.

          • extension_id

            string — The extension ID.

          • extension_number

            integer, format: int64 — The extension number.

          • extension_type

            string, possible values: "user", "autoReceptionist", "callQueue", "commonArea" — The type of extension: * `user` * `autoReceptionist` * `callQueue`

          • id

            string — The ID of the extension for `user`, `autoReceptionist`, `device`, or `callQueue`.

          • phone_number

            string — The extension's phone number or forward to an external number, in [E.164 format](https://en.wikipedia.org/wiki/E.164) format. This field is only available in the following scenarios: * Secnario 1: When `action` in the `busy_routing` section is set to `10` (Forward to Phone number/External number) for the user busy on another call, this field is used to display the specific Phone number/External number to which the call will be forwarded. This scenario applies to `User`.

          • voicemail_greeting

            object — The voicemail greeting prompt. It returns only when the `action` in the `busy_routing` section is set to `1` (Forward to a voicemail) for the `Call Queue` or `Auto Receptionist` `call_handling` sub-setting.

            • id

              string — The voicemail greeting audio prompt ID. Options: empty char - default

            • name

              string — The voicemail greeting audio prompt name.

        • message_greeting

          object — The message greeting prompt. This field is only available in the following scenarios: * Secnario 1: The the `action` in the `busy_routing` section is set to `12` (Play a message, then disconnect). Applicable to the extension as shown below: * `User` * `Auto Receptionist` * `Call Queue` * `Shared Line Group`

          • id

            string — The message greeting prompt ID. Options: empty char - default

          • name

            string — The message greeting prompt name.

        • operator

          object — The the operator to whom the call is being forwarded. This field is only available in the following scenarios: * Secnario 1: The `action` in the `busy_routing` section is set to `1` (Forward to a voicemail) and the `connect_to_operator` is `true`. Applicable to the extension as shown below: * `User`

          • display_name

            string — The extension's name.

          • extension_id

            string — The extension ID.

          • extension_number

            integer, format: int64 — The extension number.

          • extension_type

            string, possible values: "user", "commonArea", "sharedLineGroup", "callQueue" — The type of extension: * `user` * `commonArea` * `sharedLineGroup` * `callQueue`

          • id

            string — The ID of the extension for `user`, `commonArea`, `sharedLineGroup`, `device`, or `callQueue`.

        • overflow_play_callee_voicemail_greeting

          boolean — `Note: This field is invalid and part of incorrect documentation. It is only included in the `routing` section.` Whether to play the callee's voicemail greeting when the caller reaches the end of forwarding sequence. It displays when `call_not_answer_action` is set to `2` - Forward to the user, `4` - Forward to the common area, `6` - Forward to the auto receptionist, `7` - Forward to a call queue, `8` - Forward to a shared line group, `9` - Forward to an external contact, `10` - Forward to an external number.

        • play_callee_voicemail_greeting

          boolean — Whether to play callee's voicemail greeting when the caller reaches the end of the forwarding sequence. This field is only available in the following scenarios: * Secnario 1: The `action` in the `busy_routing` section is set to `1` (Forward to a voicemail) and the `connect_to_operator` is `true`. Applicable to the extension as shown below: * `User`

        • require_press_1_before_connecting

          boolean — When a call is forwarded to a personal phone number, whether the user must press &quot;1&quot; before the call connects. This field helps to ensure that missed calls do not reach to your personal voicemail. It returns for the `Forward to an external number` and `Forward to External Contacts` options.

        • voicemail_greeting

          object — The voicemail greeting audio prompt Returns only for the `user` and `call_handling` subsetting options. It displays when the `action` in the `busy_routing` section is set to `1` - Forward to a voicemail.

          • id

            string — The voicemail greeting audio prompt ID. Options: empty char - default

          • name

            string — The voicemail greeting audio prompt name.

        • voicemail_leaving_instruction

          object — The voicemail leaving instruction prompt. This field is only available in the following scenarios: * Secnario 1: The the `action` in the `busy_routing` section is set to `1` (Forward to a voicemail), and either `connect_to_operator` or `allow_callers_check_voicemail` is set to `true`. Applicable to the extension as shown below: * `User`

          • id

            string — The voicemail leaving instruction prompt ID. Options: empty char - default

          • name

            string — The voicemail leaving instruction prompt name.

      • call_distribution

        object — This option distributes incoming calls. If `Sequential` or `Rotating` is selected, calls ring for a specific time before trying the next available queue member. Returned only for the `call_handling` sub-setting.

        • handle_multiple_calls

          boolean — The maximum number of calls that can be handled simultaneously is less than half of the total amount of available call queue members. Note that the first incoming call might not be answered first. Returned only except `simultaneous` ring mode.

        • ring_duration

          integer, possible values: 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60 — The ringing duration for each member: * `10` * `15` * `20` * `25` * `30` * `35` * `40` * `45` * `50` * `55` * `60` Returned only except `simultaneous` ring mode.

        • ring_mode

          string, possible values: "simultaneous", "sequential", "rotating", "longest_idle" — The call distribution ring mode: * `simultaneous` * `sequential` * `rotating` * `longest_idle`

        • skip_offline_device_phone_number

          boolean — 1. Devices with Zoom app or client not launched and mobile phone with screen locked will be skipped. 2. Phone numbers added to user's call handling settings are skipped. Returned only except `simultaneous` ring mode.

      • call_forwarding_settings

        array — The call forwarding settings. It returns only for the `call_forwarding` sub-setting.

        Items:

        • description

          string — The external phone number's description.

        • enable

          boolean — Whether to receive a call.

        • external_contact

          object

          • email

            string — The external contact's email address.

          • external_contact_id

            string — The external contact's ID.

          • name

            string — The external contact's username or extension display name.

          • phone_numbers

            array — The external contact's phone numbers.

            Items:

            string

        • id

          string — The call forwarding's ID.

        • phone_number

          string — The external phone number in E164 format.

      • call_not_answer_action

        integer, possible values: 1, 2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14 — `Note: This field is invalid and part of incorrect documentation. It is not included in the actual response.` The action to take when a call is not answered: * `1` &mdash; Forward to a voicemail. * `2` &mdash; Forward to the user. * `4` &mdash; Forward to the common area. * `6` &mdash; Forward to the auto receptionist. * `7` &mdash; Forward to a call queue. * `8` &mdash; Forward to a shared line group. * `9` &mdash; Forward to an external contact. * `10` - Forward to a phone number. * `11` &mdash; Disconnect. * `12` &mdash; Play a message, then disconnect. * `13` - Forward to message. * `14` - Forward to interactive voice response (IVR). Returned only for the `call_handling` sub-setting.

      • connect_to_operator

        boolean — `Note: This field is invalid and part of incorrect documentation. It is not included in the actual response.` Whether to allow callers to reach an operator. Returns only when `call_not_answer_action` is set to `1` (Forward to a voicemail).

      • custom_hours_settings

        array — The custom hours settings. It returns only for the `custom_hours` sub-setting.

        Items:

        • from

          string — The custom hours start time and `HH:mm` format.

        • to

          string — The custom hours end time in `HH:mm` format.

        • type

          integer, possible values: 0, 1, 2 — The type of custom hours: * `0` &mdash; Disabled. * `1` &mdash; 24 hours. * `2` &mdash; Customized hours.

        • weekday

          integer, possible values: 1, 2, 3, 4, 5, 6, 7 — The day of the week: * `1` &mdash; Sunday * `2` &mdash; Monday * `3` &mdash; Tuesday * `4` &mdash; Wednesday * `5` &mdash; Thursday * `6` &mdash; Friday * `7` &mdash; Saturday

      • greeting_prompt

        object — The greeting audio prompt Returns only for the `Call Queue` or `Auto Receptionist` `call_handling` sub-setting.

      • max_call_in_queue

        integer — The maximum number of calls in queue. Specify the maximum number of callers to place in the queue. When this number is exceeded, callers will be routed based on the overflow option. Up to 60. Returned only for the `Call Queue` `call_handling` sub-setting.

      • max_wait_time

        integer, possible values: 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 120, 180, 240, 300, 600, 900, 1200, 1500, 1800 — The maximum wait time, in seconds, for `simultaneous` ring mode or the ring duration for each device for `sequential` ring mode: * `10` * `15` * `20` * `25` * `30` * `35` * `40` * `45` * `50` * `55` * `60` Specify how long a caller waits in the queue. Once the wait time is exceeded, the caller is rerouted based on the overflow option for call queue`: * `10` * `15` * `20` * `25` * `30` * `35` * `40` * `45` * `50` * `55` * `60` * `120` * `180` * `240` * `300` * `600` * `900` * `1200` * `1500` * `1800` Returned only for the `call_handling` sub-setting.

      • music_on_hold

        object — The music on hold prompt. This field is an option to choose music for inbound callers when they're placed on hold by a call queue member. empty char - default and `0` - disable. Returned only for the `Call Queue` `call_handling` sub-setting.

      • receive_call

        boolean — This field enables calls to be received during a current call. When enabled, call queue members can receive new incoming calls notification even on the call. Returned only for the `Call Queue` `call_handling` sub-setting.

      • require_press_1_before_connecting

        boolean — When a call is forwarded to a personal phone number, whether the user must press &quot;1&quot; before the call connects. This field helps to ensure missed calls do not reach to your personal voicemail. This field returns only for the `call_forwarding` sub-setting.

      • ring_mode

        string, possible values: "simultaneous", "sequential" — The call handling ring mode: * `simultaneous` * `sequential` Returned only for the `call_handling` sub-setting.

      • routing

        object — The extension's forwarding or overflow information when a call is not answered during Business Hours. Applicable to the extension as shown below: * `User` * `Auto Receptionist` * `Call Queue` * `Shared Line Group`.

        • action

          integer, possible values: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 18, 19 — The action to take when a call is not answered during Business Hours: * `1` &mdash; Forward to a Voicemail. Applicable to `User`, `Call Queue`, `Auto Receptionist`, or `Shared Line Group`. * `2` &mdash; Forward to the User. Applicable to `User`, `Call Queue`, `Auto Receptionist`, or `Shared Line Group`. * `3` &mdash; Forward to the Zoom Room. Applicable to `User`, `Call Queue`, `Auto Receptionist`, or `Shared Line Group`. * `4` &mdash; Forward to the Common Area. Applicable to `User`, `Call Queue`, `Auto Receptionist`, or `Shared Line Group`. * `5` &mdash; Forward to the Cisco/Polycom Room. Applicable to `User`, `Call Queue`, `Auto Receptionist`, or `Shared Line Group`. * `6` &mdash; Forward to the Auto Receptionist. Applicable to `User`, `Call Queue`, `Auto Receptionist`, or `Shared Line Group`. * `7` &mdash; Forward to a Call Queue. Applicable to `User`, `Call Queue`, `Auto Receptionist`, or `Shared Line Group`. * `8` &mdash; Forward to a Shared Line Group. Applicable to `User`, `Call Queue`, `Auto Receptionist`, or `Shared Line Group`. * `9` &mdash; Forward to an External Contact. Applicable to `User`, `Call Queue`, `Auto Receptionist`, or `Shared Line Group`. * `10` - Forward to a Phone Number. Applicable to `User`, `Call Queue`, `Auto Receptionist`, or `Shared Line Group`. * `11` &mdash; Disconnect. Applicable to `User`, `Call Queue`, or `Shared Line Group`. * `12` &mdash; Play a message, then disconnect. Applicable to `User`, `Call Queue`, `Auto Receptionist`, or `Shared Line Group` * `14` - Forward to an Interactive Voice Response (IVR). Applicable to `Auto Receptionist`. * `15` &mdash; Forward to a Partner Contact Center. Applicable to `Auto Receptionist`. * `18` &mdash; Forward to Microsoft Teams Resource Account. Required the license of Zoom Phone for Microsoft Teams. Applicable to `Call queue`, `Auto Receptionist`, or `Shared Line group`. * `19` &mdash; Forward to a Zoom Contact Center. Required Zoom Contact Center license. Applicable to `Call Queue`, `Auto Receptionist`, or `Shared Line Group`.

        • allow_callers_check_voicemail

          boolean — Whether to allow the callers to check voicemails over a phone. This field is only available in the following scenarios: * Secnario 1: The `action` in the `routing` section is set to `1` (Forward to a voicemail). Applicable to the extension as shown below: * `User` * `Shared Line Group`

        • busy_play_callee_voicemail_greeting

          boolean — `Note: This field is invalid and part of incorrect documentation. It is only included in `busy_routing` section.` Whether to play the callee's voicemail greeting when the caller reaches the end of the forwarding sequence. It displays when `busy_routing` action is set to `2` - Forward to the user, `4` - Forward to the common area, `6` - Forward to the auto receptionist, `7` - Forward to a call queue, `8` - Forward to a shared line group, `9` - Forward to an external contact, `10` - Forward to an external number.

        • connect_to_operator

          boolean — Whether to allow callers to reach an operator. This field is only available in the following scenarios: * Secnario 1: The `action` in the `routing` section is set to `1` (Forward to a voicemail). Applicable to the extension as shown below: * `User` * `Call Queue` * `Shared Line Group`

        • forward_to

          object — The information about the call forwarding target. This field is only available in the following scenarios: * Secnario 1: When `action` in the `routing` section is set to `1` (Forward to voicemail) for unanswered calls, this field is used to display the specific extension to which voicemails are forwarded. This scenario applies to `Auto Receptionist` and `Call Queue`. * Secnario 2: when `action` in the `routing` section is set to: `2`(Forward to the User), `3`(Forward to the Zoom Room), `4`(Forward to the Common Area), `5`(Forward to the Cisco/Polycom Room), `6`(Forward to the Auto Receptionist), `7`(Forward to a Call Queue), `8`(Forward to a Shared Line Group) or `9`(forward to an External Contact) for unanswered calls, this field is used to display the extension to which the call will be forwarded. This scenario applies to `User`, `Auto Receptionist`, `Call Queue` and `Shared Line Group`. * Secnario 3: When `action` in the `routing` section is set to `19` (Forward to a Zoom Contact Center) for unanswered calls, this field is used to display the specific Zoom Contact Center to which the call will be forwarded. This scenario applies to `Auto Receptionist`, `Call Queue` and `Shared Line Group`. * Secnario 4: When `action` in the `routing` section is set to `15` (Forward to a Partner Contact Center) for unanswered calls, this field is used to display the specific Partner Contact Center to which the call will be forwarded. This scenario applies to `Auto Receptionist`. * Secnario 5: When `action` in the `routing` section is set to `10` (Forward to Phone number/External number) for unanswered calls, this field is used to display the specific Phone number/External number to which the call will be forwarded. This scenario applies to `User`, `Auto Receptionist`, `Call Queue` and `Shared Line Group`. * Secnario 6: When `action` in the `routing` section is set to `18` (Forward to Microsoft Teams Resource Account) for unanswered calls, this field is used to display the specific Microsoft Teams Voice App to which the call will be forwarded. This scenario applies to `Auto Receptionist`, `Call Queue` and `Shared Line Group`.

          • description

            string — This field forwards to an external number description. This field is only available in the following scenarios: * Secnario 1: When `action` in the `routing` section is set to `10` (Forward to Phone number/External number) for unanswered calls, this field is used to display the specific Phone number/External number to which the call will be forwarded. This scenario applies to `User`, `Auto Receptionist`, `Call Queue` and `Shared Line Group`.

          • display_name

            string — The extension's name.

          • extension_id

            string — The extension ID.

          • extension_number

            integer, format: int64 — The extension number.

          • extension_type

            string, possible values: "user", "autoReceptionist", "callQueue", "commonArea" — The type of extension: * `user` * `autoReceptionist` * `callQueue`

          • id

            string — The ID of the extension for `user`, `autoReceptionist`, `device`, or `callQueue`.

          • partner_contact_center_id

            string — The ID of the Partner Contact Center to which the call is forwarded. This field is only available in the following scenarios: * Secnario 1: When `action` in the `routing` section is set to `15` (Forward to a Partner Contact Center) for unanswered calls, this field is used to display the specific Partner Contact Center to which the call will be forwarded. This scenario applies to `Auto Receptionist`.

          • pcc_phone_number_display_name

            string — The display name of the Partner Contact Center to which the call is forwarded. This field is only available in the following scenarios: * Secnario 1: When `action` in the `routing` section is set to `15` (Forward to a Partner Contact Center) for unanswered calls, this field is used to display the specific Partner Contact Center to which the call will be forwarded. This scenario applies to `Auto Receptionist`.

          • phone_number

            string — The extension's phone number or forward to an external number, in [E.164 format](https://en.wikipedia.org/wiki/E.164) format. This field is only available in the following scenarios: * Secnario 1: When `action` in the `routing` section is set to `10` (Forward to Phone number/External number) for unanswered calls, this field is used to display the specific Phone number/External number to which the call will be forwarded. This scenario applies to `User`, `Auto Receptionist`, `Call Queue` and `Shared Line Group`.

          • teams_app_id

            string — The ID of the Microsoft Teams Voice App to which the call is forwarded. This field is only available in the following scenarios: * Secnario 1: When `action` in the `routing` section is set to `18` (Forward to Microsoft Teams Resource Account) for unanswered calls, this field is used to display the specific Microsoft Teams Voice App to which the call will be forwarded. This scenario applies to `Auto Receptionist`, `Call Queue` and `Shared Line Group`.

          • teams_voice_app_name

            string — The display name of the Microsoft Teams Voice App to which the call is forwarded. This field is only available in the following scenarios: * Secnario 1: When `action` in the `routing` section is set to `18` (Forward to Microsoft Teams Resource Account) for unanswered calls, this field is used to display the specific Microsoft Teams Voice App to which the call will be forwarded. This scenario applies to `Auto Receptionist`, `Call Queue` and `Shared Line Group`.

          • voicemail_greeting

            object — The voicemail greeting prompt. It returns only when the `action` in the `routing` section is set to `1` (Forward to a voicemail) for the `Call Queue` or `Auto Receptionist` `call_handling` sub-setting.

            • id

              string — The voicemail greeting audio prompt ID. Options: empty char - default

            • name

              string — The voicemail greeting audio prompt name.

          • zcc_phone_number

            string — The Zoom Contact Center phone number to which the call is forwarded. This field is only available in the following scenarios: * Secnario 1: When `action` in the `routing` section is set to `19` (Forward to a Zoom Contact Center) for unanswered calls, this field is used to display the specific Zoom Contact Center to which the call will be forwarded. This scenario applies to `Auto Receptionist`, `Call Queue` and `Shared Line Group`.

          • zcc_phone_number_display_name

            string — The display name of the Zoom Contact Center phone number to which the call is forwarded. This field is only available in the following scenarios: * Secnario 1: When `action` in the `routing` section is set to `19` (Forward to a Zoom Contact Center) for unanswered calls, this field is used to display the specific Zoom Contact Center to which the call will be forwarded. This scenario applies to `Auto Receptionist`, `Call Queue` and `Shared Line Group`.

        • message_greeting

          object — The message greeting prompt. This field is only available in the following scenarios: * Secnario 1: The the `action` in the `routing` section is set to `12` (Play a message, then disconnect). Applicable to the extension as shown below: * `User` * `Auto Receptionist` * `Call Queue` * `Shared Line Group`

          • id

            string — The message greeting prompt ID. Options: empty char - default

          • name

            string — The message greeting prompt name.

        • operator

          object — The the operator to whom the call is being forwarded. This field is only available in the following scenarios: * Secnario 1: The `action` in the `routing` section is set to `1` (Forward to a voicemail) and the `connect_to_operator` is `true`. Applicable to the extension as shown below: * `User` * `Call Queue` * `Shared Line Group`

          • display_name

            string — The extension's name.

          • extension_id

            string — The extension ID.

          • extension_number

            integer, format: int64 — The extension number.

          • extension_type

            string, possible values: "user", "commonArea", "sharedLineGroup", "callQueue" — The type of extension: * `user` * `commonArea` * `sharedLineGroup` * `callQueue`

          • id

            string — The ID of the extension for `user`, `commonArea`, `sharedLineGroup`, `device`, or `callQueue`.

        • overflow_play_callee_voicemail_greeting

          boolean — Whether to play callee's voicemail greeting when the caller reaches the end of the forwarding sequence. This field is only available in the following scenarios: * Secnario 1: The `action` in the `routing` section is set to: `2`(Forward to the User), `3`(Forward to the Zoom Room), `4`(Forward to the Common Area), `5`(Forward to the Cisco/Polycom Room), `6`(Forward to the Auto Receptionist), `7`(Forward to a Call Queue) or `8`(Forward to a Shared Line Group). Applicable to the extension as shown below: * `User`

        • play_callee_voicemail_greeting

          boolean — Whether to play callee's voicemail greeting when the caller reaches the end of the forwarding sequence. This field is only available in the following scenarios: * Secnario 1: The `action` in the `routing` section is set to `1` (Forward to a voicemail) and the `connect_to_operator` is `true`. Applicable to the extension as shown below: * `User`

        • require_press_1_before_connecting

          boolean — When a call is forwarded to a personal phone number, whether the user must press &quot;1&quot; before the call connects. It helps to ensure that missed calls do not reach to your personal voicemail. It returns for the `Forward to an external number` and `Forward to External Contacts` options.

        • voicemail_greeting

          object — The voicemail greeting audio prompt Returns only for the `user` and `call_handling` subsetting. It displays when the `action` in the `routing` section is set to `1` - Forward to a voicemail.

          • id

            string — The voicemail greeting audio prompt ID. Options: empty char - default

          • name

            string — The voicemail greeting audio prompt name.

        • voicemail_leaving_instruction

          object — The voicemail leaving instruction prompt. This field is only available in the following scenarios: * Secnario 1: The the `action` in the `routing` section is set to `1` (Forward to a voicemail), and either `connect_to_operator` or `allow_callers_check_voicemail` is set to `true`. Applicable to the extension as shown below: * `User` * `Call Queue` * `Shared Line Group`

          • id

            string — The voicemail leaving instruction prompt ID. Options: empty char - default

          • name

            string — The voicemail leaving instruction prompt name.

      • type

        integer, possible values: 1, 2 — The type of custom hours: * `1` &mdash; 24 hours, 7 days a week. * `2` &mdash; Custom hours. Returns only for the `custom_hours` sub-setting.

      • wrap_up_time

        integer, possible values: 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 120, 180, 240, 300 — The wrap up time in seconds. Specify the duration before the next queue call is routed to a member in call queue: * `0` * `10` * `15` * `20` * `25` * `30` * `35` * `40` * `45` * `50` * `55` * `60` * `120` * `180` * `240` * `300` Returns only for the `call_handling` sub-setting option.

    • sub_setting_type

      string, possible values: "call_forwarding", "custom_hours", "call_handling" — The type of sub-setting: * `call_forwarding` * `custom_hours` * `call_handling`

  • closed_hours

    array — The information about the closed hours settings.

    Items:

    • settings

      object — The closed hours settings.

      • allow_callers_check_voicemail

        boolean — `Note: This field is invalid and part of incorrect documentation. It is not included in the actual response.` Whether to allow the callers to check voicemails over a phone. It's required only when the `call_not_answer_action` setting is set to `1` (Forward to a voicemail).

      • busy_routing

        object — The extension's forwarding or overflow information when the user is busy on another call during Closed Hours. Applicable to the extension as shown below: * `User`.

        • action

          integer — The action to take when the user is busy on another call during Closed Hours: * `21` - Call waiting. * `22` - Play a busy signal. * `1` &mdash; Forward to a voicemail/videomail. * `2` - Forward to the user. * `4` - Forward to the common area. * `6` - Forward to the auto receptionist. * `7` - Forward to a call queue. * `8` - Forward to a shared line group. * `9` - Forward to an external contact. * `10` - Forward to an external number. * `12` &mdash; Play a message, then disconnect.

        • allow_callers_check_voicemail

          boolean — Whether to allow the callers to check voicemails over a phone. This field is only available in the following scenarios: * Secnario 1: The `action` in the `busy_routing` section is set to `1` (Forward to a voicemail). Applicable to the extension as shown below: * `User`

        • busy_play_callee_voicemail_greeting

          boolean — Whether to play callee's voicemail greeting when the caller reaches the end of the forwarding sequence. This field is only available in the following scenarios: * Secnario 1: The `action` in the `busy_routing` section is set to: `2`(Forward to the User), `3`(Forward to the Zoom Room), `4`(Forward to the Common Area), `5`(Forward to the Cisco/Polycom Room), `6`(Forward to the Auto Receptionist), `7`(Forward to a Call Queue) or `8`(Forward to a Shared Line Group). Applicable to the extension as shown below: * `User`

        • connect_to_operator

          boolean — Whether to allow callers to reach an operator. This field is only available in the following scenarios: * Secnario 1: The `action` in the `busy_routing` section is set to `1` (Forward to a voicemail). Applicable to the extension as shown below: * `User`

        • forward_to

          object — The information about the call forwarding target: This field is only available in the following scenarios: * Secnario 1: when `action` in the `busy_routing` section is set to: `2`(Forward to the User), `3`(Forward to the Zoom Room), `4`(Forward to the Common Area), `5`(Forward to the Cisco/Polycom Room), `6`(Forward to the Auto Receptionist), `7`(Forward to a Call Queue), `8`(Forward to a Shared Line Group) or `9`(forward to an External Contact) for the user busy on another call, this field is used to display the extension to which the call will be forwarded. This scenario applies to `User`. * Secnario 2: When `action` in the `busy_routing` section is set to `10` (Forward to Phone number/External number) for the user busy on another call, this field is used to display the specific Phone number/External number to which the call will be forwarded. This scenario applies to `User`.

          • description

            string — This field forwards to an external number description. This field is only available in the following scenarios: * Secnario 1: When `action` in the `busy_routing` section is set to `10` (Forward to Phone number/External number) for the user busy on another call, this field is used to display the specific Phone number/External number to which the call will be forwarded. This scenario applies to `User`.

          • display_name

            string — The extension's name.

          • extension_id

            string — The extension ID.

          • extension_number

            integer, format: int64 — The extension number.

          • extension_type

            string, possible values: "user", "autoReceptionist", "callQueue", "commonArea" — The type of extension: * `user` * `autoReceptionist` * `callQueue`

          • id

            string — The ID of the extension for `user`, `autoReceptionist`, `device`, or `callQueue`.

          • phone_number

            string — The extension's phone number or forward to an external number, in [E.164 format](https://en.wikipedia.org/wiki/E.164) format. This field is only available in the following scenarios: * Secnario 1: When `action` in the `busy_routing` section is set to `10` (Forward to Phone number/External number) for the user busy on another call, this field is used to display the specific Phone number/External number to which the call will be forwarded. This scenario applies to `User`.

          • voicemail_greeting

            object — The voicemail greeting prompt. It returns only when the `action` in the `busy_routing` section is set to `1` (Forward to a voicemail) for the `Call Queue` or `Auto Receptionist` `call_handling` sub-setting.

            • id

              string — The voicemail greeting audio prompt ID. Options: empty char - default

            • name

              string — The voicemail greeting audio prompt name.

        • message_greeting

          object — The message greeting prompt. This field is only available in the following scenarios: * Secnario 1: The the `action` in the `busy_routing` section is set to `12` (Play a message, then disconnect). Applicable to the extension as shown below: * `User` * `Auto Receptionist` * `Call Queue` * `Shared Line Group`

          • id

            string — The message greeting prompt ID. Options: empty char - default

          • name

            string — The message greeting prompt name.

        • operator

          object — The the operator to whom the call is being forwarded. This field is only available in the following scenarios: * Secnario 1: The `action` in the `busy_routing` section is set to `1` (Forward to a voicemail) and the `connect_to_operator` is `true`. Applicable to the extension as shown below: * `User`

          • display_name

            string — The extension's name.

          • extension_id

            string — The extension ID.

          • extension_number

            integer, format: int64 — The extension number.

          • extension_type

            string, possible values: "user", "commonArea", "sharedLineGroup", "callQueue" — The type of extension: * `user` * `commonArea` * `sharedLineGroup` * `callQueue`

          • id

            string — The ID of the extension for `user`, `commonArea`, `sharedLineGroup`, `device`, or `callQueue`.

        • overflow_play_callee_voicemail_greeting

          boolean — `Note: This field is invalid and part of incorrect documentation. It is only included in the `routing` section.` Whether to play the callee's voicemail greeting when the caller reaches the end of the forwarding sequence. It displays when `call_not_answer_action` is set to `2` - Forward to the user, `4` - Forward to the common area, `6` - Forward to the auto receptionist, `7` - Forward to a call queue, `8` - Forward to a shared line group, `9` - Forward to an external contact, `10` - Forward to an external number.

        • play_callee_voicemail_greeting

          boolean — Whether to play callee's voicemail greeting when the caller reaches the end of the forwarding sequence. This field is only available in the following scenarios: * Secnario 1: The `action` in the `busy_routing` section is set to `1` (Forward to a voicemail) and the `connect_to_operator` is `true`. Applicable to the extension as shown below: * `User`

        • require_press_1_before_connecting

          boolean — When a call is forwarded to a personal phone number, whether the user must press &quot;1&quot; before the call connects. This field helps to ensure that missed calls do not reach to your personal voicemail. Returned for the `Forward to an external number` and `Forward to External Contacts` options.

        • voicemail_greeting

          object — The voicemail greeting audio prompt Returns only for the `user` and `call_handling` subsetting options. It displays when the `action` in the `busy_routing` section is set to `1` - Forward to a voicemail.

          • id

            string — The voicemail greeting audio prompt ID. Options: empty char - default

          • name

            string — The voicemail greeting audio prompt name.

        • voicemail_leaving_instruction

          object — The voicemail leaving instruction prompt. This field is only available in the following scenarios: * Secnario 1: The the `action` in the `busy_routing` section is set to `1` (Forward to a voicemail), and either `connect_to_operator` or `allow_callers_check_voicemail` is set to `true`. Applicable to the extension as shown below: * `User`

          • id

            string — The voicemail leaving instruction prompt ID. Options: empty char - default

          • name

            string — The voicemail leaving instruction prompt name.

      • call_forwarding_settings

        array — The call forwarding settings. It returns only for the `call_forwarding` sub-setting options.

        Items:

        • description

          string — The external phone number description.

        • enable

          boolean — Whether to receive a call.

        • external_contact

          object

          • email

            string — The external contact's email address.

          • external_contact_id

            string — The external contact's ID.

          • name

            string — The external contact's username or extension display name.

          • phone_numbers

            array — The external contact's phone numbers.

            Items:

            string

        • id

          string — The call forwarding ID.

        • phone_number

          string — The external phone number, in [E.164 format](https://en.wikipedia.org/wiki/E.164) format.

      • call_not_answer_action

        integer, possible values: 1, 2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14 — `Note: This field is invalid and part of incorrect documentation. It is not included in the actual response.` The action to take when a call is not answered: * `1` &mdash; Forward to a voicemail. * `2` &mdash; Forward to the user. * `4` &mdash; Forward to the common area. * `6` &mdash; Forward to the auto receptionist. * `7` &mdash; Forward to a call queue. * `8` &mdash; Forward to a shared line group. * `9` &mdash; Forward to an external contact. * `10` - Forward to a phone number. * `11` &mdash; Disconnect. * `12` &mdash; Play a message, then disconnect. * `13` - Forward to message. * `14` - Forward to interactive voice response (IVR). Returns only for the `call_handling` sub-setting option.

      • connect_to_operator

        boolean — `Note: This field is invalid and part of incorrect documentation. It is not included in the actual response.` Whether to allow callers to reach an operator. It returns only when the `call_not_answer_action` setting is set to `1` (Forward to a voicemail).

      • max_wait_time

        integer, possible values: 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60 — The maximum wait time, in seconds, for `simultaneous` ring mode or the ring duration for each device for `sequential` ring mode: * `10` * `15` * `20` * `25` * `30` * `35` * `40` * `45` * `50` * `55` * `60` Returns only for the `call_handling` sub-setting option.

      • require_press_1_before_connecting

        boolean — When a call is forwarded to a personal phone number, whether the user must press &quot;1&quot; before the call connects. It helps to ensure that missed calls do not reach to your personal voicemail. It returns only for the `call_forwarding` sub-setting option.

      • ring_mode

        string, possible values: "simultaneous", "sequential" — The call handling's ring mode setting: * `simultaneous` * `sequential` Returns only for the `call_handling` sub-setting option.

      • routing

        object — The extension's forwarding or overflow information when a call is not answered during Closed Hours. Applicable to the extension as shown below: * `User` * `Auto Receptionist` * `Call Queue` * `Shared Line Group`.

        • action

          integer, possible values: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 18, 19 — The action to take when a call is not answered during Closed Hours: * `1` &mdash; Forward to a Voicemail. Applicable to `User`, `Call Queue`, `Auto Receptionist`, or `Shared Line Group`. * `2` &mdash; Forward to the User. Applicable to `User`, `Call Queue`, `Auto Receptionist`, or `Shared Line Group`. * `3` &mdash; Forward to the Zoom Room. Applicable to `User`, `Call Queue`, `Auto Receptionist`, or `Shared Line Group`. * `4` &mdash; Forward to the Common Area. Applicable to `User`, `Call Queue`, `Auto Receptionist`, or `Shared Line Group`. * `5` &mdash; Forward to the Cisco/Polycom Room. Applicable to `User`, `Call Queue`, `Auto Receptionist`, or `Shared Line Group`. * `6` &mdash; Forward to the Auto Receptionist. Applicable to `User`, `Call Queue`, `Auto Receptionist`, or `Shared Line Group`. * `7` &mdash; Forward to a Call Queue. Applicable to `User`, `Call Queue`, `Auto Receptionist`, or `Shared Line Group`. * `8` &mdash; Forward to a Shared Line Group. Applicable to `User`, `Call Queue`, `Auto Receptionist`, or `Shared Line Group`. * `9` &mdash; Forward to an External Contact. Applicable to `User`, `Call Queue`, `Auto Receptionist`, or `Shared Line Group`. * `10` - Forward to a Phone Number. Applicable to `User`, `Call Queue`, `Auto Receptionist`, or `Shared Line Group`. * `11` &mdash; Disconnect. Applicable to `User`, `Call Queue`, or `Shared Line Group`. * `12` &mdash; Play a message, then disconnect. Applicable to `User`, `Call Queue`, `Auto Receptionist`, or `Shared Line Group` * `14` - Forward to an Interactive Voice Response (IVR). Applicable to `Auto Receptionist`. * `15` &mdash; Forward to a Partner Contact Center. Applicable to `Auto Receptionist`. * `18` &mdash; Forward to Microsoft Teams Resource Account. Required the license of Zoom Phone for Microsoft Teams. Applicable to `Call queue`, `Auto Receptionist`, or `Shared Line group`. * `19` &mdash; Forward to a Zoom Contact Center. Required Zoom Contact Center license. Applicable to `Call Queue`, `Auto Receptionist`, or `Shared Line Group`.

        • allow_callers_check_voicemail

          boolean — Whether to allow the callers to check voicemails over a phone. This field is only available in the following scenarios: * Secnario 1: The `action` in the `routing` section is set to `1` (Forward to a voicemail). Applicable to the extension as shown below: * `User` * `Shared Line Group`

        • busy_play_callee_voicemail_greeting

          boolean — `Note: This field is invalid and part of incorrect documentation. It is only included in the `busy_routing` section.` Whether to play callee's voicemail greeting when caller reaches end of forwarding sequence. It displays when `busy_routing` action is set to `2` - Forward to the user, `4` - Forward to the common area, `6` - Forward to the auto receptionist, `7` - Forward to a call queue, `8` - Forward to a shared line group, `9` - Forward to an external contact, `10` - Forward to an external number.

        • connect_to_operator

          boolean — Whether to allow callers to reach an operator. This field is only available in the following scenarios: * Secnario 1: The `action` in the `routing` section is set to `1` (Forward to a voicemail). Applicable to the extension as shown below: * `User` * `Call Queue` * `Shared Line Group`

        • forward_to

          object — The information about the call forwarding target: This field is only available in the following scenarios: * Secnario 1: When `action` in the `routing` section is set to `1` (Forward to voicemail) for unanswered calls, this field is used to display the specific extension to which voicemails are forwarded. This scenario applies to `Auto Receptionist` and `Call Queue`. * Secnario 2: when `action` in the `routing` section is set to: `2`(Forward to the User), `3`(Forward to the Zoom Room), `4`(Forward to the Common Area), `5`(Forward to the Cisco/Polycom Room), `6`(Forward to the Auto Receptionist), `7`(Forward to a Call Queue), `8`(Forward to a Shared Line Group) or `9`(forward to an External Contact) for unanswered calls, this field is used to display the extension to which the call will be forwarded. This scenario applies to `User`, `Auto Receptionist`, `Call Queue` and `Shared Line Group`. * Secnario 3: When `action` in the `routing` section is set to `19` (Forward to a Zoom Contact Center) for unanswered calls, this field is used to display the specific Zoom Contact Center to which the call will be forwarded. This scenario applies to `Auto Receptionist`, `Call Queue` and `Shared Line Group`. * Secnario 4: When `action` in the `routing` section is set to `15` (Forward to a Partner Contact Center) for unanswered calls, this field is used to display the specific Partner Contact Center to which the call will be forwarded. This scenario applies to `Auto Receptionist`. * Secnario 5: When `action` in the `routing` section is set to `10` (Forward to Phone number/External number) for unanswered calls, this field is used to display the specific Phone number/External number to which the call will be forwarded. This scenario applies to `User`, `Auto Receptionist`, `Call Queue` and `Shared Line Group`. * Secnario 6: When `action` in the `routing` section is set to `18` (Forward to Microsoft Teams Resource Account) for unanswered calls, this field is used to display the specific Microsoft Teams Voice App to which the call will be forwarded. This scenario applies to `Auto Receptionist`, `Call Queue` and `Shared Line Group`.

          • description

            string — This field forwards to an external number description. This field is only available in the following scenarios: * Secnario 1: When `action` in the `routing` section is set to `10` (Forward to Phone number/External number) for unanswered calls, this field is used to display the specific Phone number/External number to which the call will be forwarded. This scenario applies to `User`, `Auto Receptionist`, `Call Queue` and `Shared Line Group`.

          • display_name

            string — The extension's name.

          • extension_id

            string — The extension ID.

          • extension_number

            integer, format: int64 — The extension number.

          • extension_type

            string, possible values: "user", "autoReceptionist", "callQueue", "commonArea" — The type of extension: * `user` * `autoReceptionist` * `callQueue`

          • id

            string — The ID of the extension for `user`, `autoReceptionist`, `device`, or `callQueue`.

          • partner_contact_center_id

            string — The ID of the Partner Contact Center to which the call is forwarded. This field is only available in the following scenarios: * Secnario 1: When `action` in the `routing` section is set to `15` (Forward to a Partner Contact Center) for unanswered calls, this field is used to display the specific Partner Contact Center to which the call will be forwarded. This scenario applies to `Auto Receptionist`.

          • pcc_phone_number_display_name

            string — The display name of the Partner Contact Center to which the call is forwarded. This field is only available in the following scenarios: * Secnario 1: When `action` in the `routing` section is set to `15` (Forward to a Partner Contact Center) for unanswered calls, this field is used to display the specific Partner Contact Center to which the call will be forwarded. This scenario applies to `Auto Receptionist`.

          • phone_number

            string — The extension's phone number or forward to an external number, in [E.164 format](https://en.wikipedia.org/wiki/E.164) format. This field is only available in the following scenarios: * Secnario 1: When `action` in the `routing` section is set to `10` (Forward to Phone number/External number) for unanswered calls, this field is used to display the specific Phone number/External number to which the call will be forwarded. This scenario applies to `User`, `Auto Receptionist`, `Call Queue` and `Shared Line Group`.

          • teams_app_id

            string — The ID of the Microsoft Teams Voice App to which the call is forwarded. This field is only available in the following scenarios: * Secnario 1: When `action` in the `routing` section is set to `18` (Forward to Microsoft Teams Resource Account) for unanswered calls, this field is used to display the specific Microsoft Teams Voice App to which the call will be forwarded. This scenario applies to `Auto Receptionist`, `Call Queue` and `Shared Line Group`.

          • teams_voice_app_name

            string — The display name of the Microsoft Teams Voice App to which the call is forwarded. This field is only available in the following scenarios: * Secnario 1: When `action` in the `routing` section is set to `18` (Forward to Microsoft Teams Resource Account) for unanswered calls, this field is used to display the specific Microsoft Teams Voice App to which the call will be forwarded. This scenario applies to `Auto Receptionist`, `Call Queue` and `Shared Line Group`.

          • voicemail_greeting

            object — The voicemail greeting prompt. It returns only when the `action` in the `routing` section is set to `1` (Forward to a voicemail) for the `Call Queue` or `Auto Receptionist` `call_handling` sub-setting.

            • id

              string — The voicemail greeting audio prompt ID. Options: empty char - default

            • name

              string — The voicemail greeting audio prompt name.

          • zcc_phone_number

            string — The Zoom Contact Center phone number to which the call is forwarded. This field is only available in the following scenarios: * Secnario 1: When `action` in the `routing` section is set to `19` (Forward to a Zoom Contact Center) for unanswered calls, this field is used to display the specific Zoom Contact Center to which the call will be forwarded. This scenario applies to `Auto Receptionist`, `Call Queue` and `Shared Line Group`.

          • zcc_phone_number_display_name

            string — The display name of the Zoom Contact Center phone number to which the call is forwarded. This field is only available in the following scenarios: * Secnario 1: When `action` in the `routing` section is set to `19` (Forward to a Zoom Contact Center) for unanswered calls, this field is used to display the specific Zoom Contact Center to which the call will be forwarded. This scenario applies to `Auto Receptionist`, `Call Queue` and `Shared Line Group`.

        • message_greeting

          object — The message greeting prompt. This field is only available in the following scenarios: * Secnario 1: The the `action` in the `routing` section is set to `12` (Play a message, then disconnect). Applicable to the extension as shown below: * `User` * `Auto Receptionist` * `Call Queue` * `Shared Line Group`

          • id

            string — The message greeting prompt ID. Options: empty char - default

          • name

            string — The message greeting prompt name.

        • operator

          object — The the operator to whom the call is being forwarded. This field is only available in the following scenarios: * Secnario 1: The `action` in the `routing` section is set to `1` (Forward to a voicemail) and the `connect_to_operator` is `true`. Applicable to the extension as shown below: * `User` * `Call Queue` * `Shared Line Group`

          • display_name

            string — The extension name.

          • extension_id

            string — The extension ID.

          • extension_number

            integer, format: int64 — The extension number.

          • extension_type

            string, possible values: "user", "commonArea", "sharedLineGroup", "callQueue" — The type of extension: * `user` * `commonArea` * `sharedLineGroup` * `callQueue`

          • id

            string — The ID of the extension for `user`, `commonArea`, `sharedLineGroup`, `device`, or `callQueue`.

        • overflow_play_callee_voicemail_greeting

          boolean — Whether to play callee's voicemail greeting when the caller reaches the end of the forwarding sequence. This field is only available in the following scenarios: * Secnario 1: The `action` in the `routing` section is set to: `2`(Forward to the User), `3`(Forward to the Zoom Room), `4`(Forward to the Common Area), `5`(Forward to the Cisco/Polycom Room), `6`(Forward to the Auto Receptionist), `7`(Forward to a Call Queue) or `8`(Forward to a Shared Line Group). Applicable to the extension as shown below: * `User`

        • play_callee_voicemail_greeting

          boolean — Whether to play callee's voicemail greeting when the caller reaches the end of the forwarding sequence. This field is only available in the following scenarios: * Secnario 1: The `action` in the `routing` section is set to `1` (Forward to a voicemail) and the `connect_to_operator` is `true`. Applicable to the extension as shown below: * `User`

        • require_press_1_before_connecting

          boolean — When a call is forwarded to a personal phone number, whether the user must press &quot;1&quot; before the call connects. This field helps to ensure that missed calls do not reach to your personal voicemail. It returns for the `Forward to an external number` and `Forward to External Contacts` options.

        • voicemail_greeting

          object — The voicemail greeting audio prompt Returns only for the `user` and `call_handling` subsetting options. It displays when the `action` in the `routing` section is set to `1` - Forward to a voicemail.

          • id

            string — The voicemail greeting audio prompt ID. Options: empty char - default

          • name

            string — The voicemail greeting audio prompt name.

        • voicemail_leaving_instruction

          object — The voicemail leaving instruction prompt. This field is only available in the following scenarios: * Secnario 1: The the `action` in the `routing` section is set to `1` (Forward to a voicemail), and either `connect_to_operator` or `allow_callers_check_voicemail` is set to `true`. Applicable to the extension as shown below: * `User` * `Call Queue` * `Shared Line Group`

          • id

            string — The voicemail leaving instruction prompt ID. Options: empty char - default

          • name

            string — The voicemail leaving instruction prompt name.

    • sub_setting_type

      string, possible values: "call_forwarding", "call_handling" — The type of sub-setting: * `call_forwarding` * `call_handling`

  • holiday_hours

    array — The information about the holiday hours settings.

    Items:

    • details

      array — The information about the holiday call handling.

      Items:

      • settings

        object — The sub-setting information.

        • allow_callers_check_voicemail

          boolean — Whether to allow the callers to check voicemails over a phone. It's required only when the `call_not_answer_action` setting is set to `1` (Forward to a voicemail).

        • call_forwarding_settings

          array — The call forwarding settings. It returns only for the `call_forwarding` sub-setting option.

          Items:

          • description

            string — The external phone number's description.

          • enable

            boolean — Whether to receive a call.

          • external_contact

            object

            • email

              string — The external contact's email address.

            • external_contact_id

              string — The external contact's ID.

            • name

              string — The external contact's username or extension display name.

            • phone_numbers

              array — The external contact's phone numbers.

              Items:

              string

          • id

            string — The call forwarding's ID.

          • phone_number

            string — The external phone number in [E.164 format](https://en.wikipedia.org/wiki/E.164) format.

        • call_not_answer_action

          integer, possible values: 1, 2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14 — The action to take when a call is not answered: * `1` &mdash; Forward to a voicemail. * `2` &mdash; Forward to the user. * `4` &mdash; Forward to the common area. * `6` &mdash; Forward to the auto receptionist. * `7` &mdash; Forward to a call queue. * `8` &mdash; Forward to a shared line group. * `9` &mdash; Forward to an external contact. * `10` - Forward to a phone number. * `11` &mdash; Disconnect. * `12` &mdash; Play a message, then disconnect. * `13` - Forward to message. * `14` - Forward to interactive voice response (IVR). Returned only for the `call_handling` sub-setting.

        • connect_to_operator

          boolean — Whether to allow callers to reach an operator. It returns only when the `call_not_answer_action` setting is set to `1` (Forward to a voicemail).

        • from

          string, format: date-time — The holiday start date and time, in `yyyy-MM-dd'T'HH:mm:ss'Z'` format. It returns only for the `holiday` sub-setting.

        • max_wait_time

          integer, possible values: 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60 — The maximum wait time, in seconds, for `simultaneous` ring mode or the ring duration for each device for `sequential` ring mode: * `10` * `15` * `15` * `20` * `25` * `30` * `35` * `40` * `45` * `50` * `55` * `60` Returned only for the `call_handling` sub-setting.

        • name

          string — The holiday name. It returns only for the `holiday` sub-setting.

        • require_press_1_before_connecting

          boolean — When a call is forwarded to a personal phone number, whether the user must press &quot;1&quot; before the call connects. It returns only for the `call_forwarding` sub-setting.

        • ring_mode

          string, possible values: "simultaneous", "sequential" — The call handling's ring mode setting: * `simultaneous` * `sequential` Returned only for the `call_handling` sub-setting.

        • routing

          object — The extension's forwarding or overflow information. It returns the response when `call_not_answer_action` or `busy_on_another_call_action` is set to `1` (Forward to a voicemail), `2` (Forward to the user), `4` (Forward to the common area), `6` (Forward to the auto receptionist), `7` (Forward to a call queue), `8` (Forward to a shared line group), `9` (Forward to an external contact), or `10` (Forward to an external number).

          • action

            integer — The extension's forwarding or overflow information. For `call_not_answered`: * `1` &mdash; Forward to a voicemail/videomail. * `2` - Forward to the user. * `4` - Forward to the common area. * `6` - Forward to the auto receptionist. * `7` - Forward to a call queue. * `8` - Forward to a shared line group. * `9` - Forward to an external contact. * `10` - Forward to an external number. * `11` &mdash; Disconnect. * `12` &mdash; Play a message, then disconnect. For `busy_on_another_call_action`: * `21` - Call waiting. * `22` - Play a busy signal. * `1` &mdash; Forward to a voicemail/videomail. * `2` - Forward to the user. * `4` - Forward to the common area. * `6` - Forward to the auto receptionist. * `7` - Forward to a call queue. * `8` - Forward to a shared line group. * `9` - Forward to an external contact. * `10` - Forward to an external number. * `12` &mdash; Play a message, then disconnect.

          • allow_callers_check_voicemail

            boolean — Whether to allow the callers to check voicemails over a phone. It returns only for the `user` and `call_handling` subsetting. It displays when the `call_not_answer_action` setting or `busy_on_another_call_action` setting is set to `1` (Forward to a voicemail).

          • busy_play_callee_voicemail_greeting

            boolean — Whether to play callee's voicemail greeting when caller reaches end of forwarding sequence. It displays when `busy_routing` action is set to `2` - Forward to the user, `4` - Forward to the common area, `6` - Forward to the auto receptionist, `7` - Forward to a call queue, `8` - Forward to a shared line group, `9` - Forward to an external contact, `10` - Forward to an external number.

          • connect_to_operator

            boolean — Whether to allow callers to reach an operator. It returns only for the `user` and `call_handling` subsetting. It displays when the `call_not_answer_action` setting or `busy_on_another_call_action` setting is set to `1` (Forward to a voicemail).

          • forward_to

            object — The extension's forwarding information. It returns the response when `call_not_answer_action` or `busy_on_another_call_action` is set to `2` (Forward to the user), `4` (Forward to the common area), `6` (Forward to the auto receptionist), `7` (Forward to a call queue), `8` (Forward to a shared line group), `9` (Forward to an external contact), or `10` (Forward to an external number).

            • description

              string — This field forwards to an external number description.

            • display_name

              string — The extension's name.

            • extension_id

              string — The extension ID.

            • extension_number

              integer, format: int64 — The extension number.

            • extension_type

              string, possible values: "user", "autoReceptionist", "callQueue", "commonArea" — The type of extension: * `user` * `autoReceptionist` * `callQueue`

            • id

              string — The ID of the extension for `user`, `autoReceptionist`, `device`, or `callQueue`.

            • phone_number

              string — The extension's phone number or forward to an external number, in [E.164 format](https://en.wikipedia.org/wiki/E.164) format.

            • voicemail_greeting

              object — The voicemail greeting prompt. It returns only when `call_not_answer_action` is set to `1` (Forward to a voicemail) for the `Call Queue` or `Auto Receptionist` `call_handling` sub-setting.

          • operator

            object — This field allows callers to reach an operator. Its a response returned when the `call_not_answer_action` or `busy_on_another_call_action` setting is set to `1` (Forward to a voicemail) and `connect_to_operator` setting is set to `true`.

            • display_name

              string — The extension's name.

            • extension_id

              string — The extension ID.

            • extension_number

              integer, format: int64 — The extension number.

            • extension_type

              string, possible values: "user", "commonArea", "sharedLineGroup", "callQueue" — The type of extension: * `user` * `commonArea` * `sharedLineGroup` * `callQueue`

            • id

              string — The ID of the extension for `user`, `commonArea`, `sharedLineGroup`, `device`, or `callQueue`.

          • overflow_play_callee_voicemail_greeting

            boolean — Whether to play callee's voicemail greeting when caller reaches end of forwarding sequence. It displays when `call_not_answer_action` is set to `2` - Forward to the user, `4` - Forward to the common area, `6` - Forward to the auto receptionist, `7` - Forward to a call queue, `8` - Forward to a shared line group, `9` - Forward to an external contact, `10` - Forward to an external number.

          • play_callee_voicemail_greeting

            boolean — Whether to play callee's voicemail greeting when caller reaches end of forwarding sequence. It displays when `busy_routing` action or `call_not_answer_action` is set to `1` - Forward to a voicemail.

          • require_press_1_before_connecting

            boolean — When a call is forwarded to a personal phone number, whether the user must press &quot;1&quot; before the call connects. This field helps to ensure that missed calls do not reach to your personal voicemail. Returned for the `Forward to an external number` and `Forward to External Contacts` options.

          • voicemail_greeting

            object — The voicemail greeting audio prompt Returned only for the `user` and `call_handling` subsetting. It displays when `busy_on_another_call_action` action or `call_not_answer_action` set to `1` - Forward to a voicemail.

            • id

              string — The voicemail greeting audio prompt ID. Options: empty char - default

            • name

              string — The voicemail greeting audio prompt name.

        • to

          string, format: date-time — The holiday end date and time, in `yyyy-MM-dd'T'HH:mm:ss'Z'` format. It returns only for the `holiday` sub-setting.

      • sub_setting_type

        string, possible values: "call_forwarding", "call_handling", "holiday" — The type of sub-setting: * `call_forwarding` * `call_handling` * `holiday`

    • holiday_id

      string — The holiday's ID.

Example:

{
  "business_hours": [
    {
      "settings": {
        "allow_members_to_reset": true,
        "audio_while_connecting": {
          "id": "qPwtDrrcSua8O0_n0bDRDg",
          "name": "Default"
        },
        "call_distribution": {
          "handle_multiple_calls": true,
          "ring_duration": 10,
          "ring_mode": "simultaneous",
          "skip_offline_device_phone_number": true
        },
        "call_forwarding_settings": [
          {
            "description": "testNumber",
            "enable": true,
            "id": "qPvrfrrcrf843cdfvbDRDg",
            "phone_number": "+12058945565",
            "external_contact": {
              "name": "Johnson",
              "email": "example@example.com",
              "external_contact_id": "OJGi5xOFQPmrJbKg68-iWg",
              "phone_numbers": [
                "+12058945656"
              ]
            }
          }
        ],
        "custom_hours_settings": [
          {
            "from": "09:00",
            "to": "18:00",
            "type": 1,
            "weekday": 5
          }
        ],
        "greeting_prompt": {
          "id": "0",
          "name": "test"
        },
        "max_call_in_queue": 5,
        "max_wait_time": 30,
        "music_on_hold": {
          "id": "fdsij3he89qj2-23uie",
          "name": "Default"
        },
        "receive_call": true,
        "require_press_1_before_connecting": true,
        "ring_mode": "simultaneous",
        "routing": {
          "action": 1,
          "forward_to": {
            "display_name": "api_ta_test",
            "extension_id": "jN9mb38lQTaMgxUq3Nd6ow",
            "extension_number": 101014,
            "extension_type": "user",
            "id": "DYHrdpjrS3uaOf7dPkkg8w",
            "phone_number": "+18889843519",
            "description": "forward to phone number +18889843519.",
            "voicemail_greeting": {
              "id": "b_fFF75hRgCtzG7Dw7wQgQ",
              "name": "Voicemail greeting"
            },
            "zcc_phone_number": "12055903036",
            "zcc_phone_number_display_name": "Display name - (205) 690-3036(American English)",
            "partner_contact_center_id": "0Qa7FFTfR0CgzpgwUrcxtQ",
            "pcc_phone_number_display_name": "Test contact center",
            "teams_app_id": "wgYRHE6ITJOZmV6DBvoyZw",
            "teams_voice_app_name": "Test Teams app"
          },
          "operator": {
            "display_name": "user A",
            "extension_id": "jN9mb38lQTaMgxUq3Nd6ow",
            "extension_number": 101014,
            "extension_type": "user",
            "id": "DYHrdpjrS3uaOf7dPkkg8w"
          },
          "connect_to_operator": true,
          "allow_callers_check_voicemail": true,
          "voicemail_greeting": {
            "id": "b_fFF75hRgCtzG7Dw7wQgQ",
            "name": "Greeting voicemail"
          },
          "voicemail_leaving_instruction": {
            "id": "LxC4hMD8TJeFpwRcB_QWkA",
            "name": "Voicemail greeting"
          },
          "message_greeting": {
            "id": "di936zivT46YBCt3dr15GQ",
            "name": "Message greeting"
          },
          "require_press_1_before_connecting": true,
          "overflow_play_callee_voicemail_greeting": true,
          "play_callee_voicemail_greeting": true
        },
        "busy_routing": {
          "action": 1,
          "forward_to": {
            "display_name": "api_ta_test",
            "extension_id": "jN9mb38lQTaMgxUq3Nd6ow",
            "extension_number": 101014,
            "extension_type": "user",
            "id": "DYHrdpjrS3uaOf7dPkkg8w",
            "phone_number": "+18889843519",
            "description": "forward to phone number +18889843519.",
            "voicemail_greeting": {
              "id": "b_fFF75hRgCtzG7Dw7wQgQ",
              "name": "Voicemail greeting"
            }
          },
          "operator": {
            "display_name": "user A",
            "extension_id": "jN9mb38lQTaMgxUq3Nd6ow",
            "extension_number": 101014,
            "extension_type": "user",
            "id": "DYHrdpjrS3uaOf7dPkkg8w"
          },
          "connect_to_operator": true,
          "allow_callers_check_voicemail": true,
          "voicemail_greeting": {
            "id": "b_fFF75hRgCtzG7Dw7wQgQ",
            "name": "Greeting voicemail"
          },
          "voicemail_leaving_instruction": {
            "id": "LxC4hMD8TJeFpwRcB_QWkA",
            "name": "Voicemail greeting"
          },
          "message_greeting": {
            "id": "di936zivT46YBCt3dr15GQ",
            "name": "Message greeting"
          },
          "require_press_1_before_connecting": true,
          "play_callee_voicemail_greeting": true,
          "busy_play_callee_voicemail_greeting": true
        },
        "type": 1,
        "wrap_up_time": 30
      },
      "sub_setting_type": "call_forwarding"
    }
  ],
  "closed_hours": [
    {
      "settings": {
        "call_forwarding_settings": [
          {
            "description": "testDescription",
            "enable": false,
            "id": "sd8683_fwh39_F3hfsd",
            "phone_number": "+12058945583",
            "external_contact": {
              "name": "Johnson",
              "email": "example@example.com",
              "external_contact_id": "OJGi5xOFQPmrJbKg68-iWg",
              "phone_numbers": [
                "+12058945656"
              ]
            }
          }
        ],
        "max_wait_time": 30,
        "require_press_1_before_connecting": true,
        "ring_mode": "simultaneous",
        "routing": {
          "action": 1,
          "forward_to": {
            "display_name": "api_ta_test",
            "extension_id": "jN9mb38lQTaMgxUq3Nd6ow",
            "extension_number": 101014,
            "extension_type": "user",
            "id": "DYHrdpjrS3uaOf7dPkkg8w",
            "phone_number": "+18889843519",
            "description": "forward to phone number +18889843519.",
            "voicemail_greeting": {
              "id": "b_fFF75hRgCtzG7Dw7wQgQ",
              "name": "Voicemail greeting"
            },
            "zcc_phone_number": "12055903036",
            "zcc_phone_number_display_name": "Display name - (205) 690-3036(American English)",
            "partner_contact_center_id": "0Qa7FFTfR0CgzpgwUrcxtQ",
            "pcc_phone_number_display_name": "Test contact center",
            "teams_app_id": "wgYRHE6ITJOZmV6DBvoyZw",
            "teams_voice_app_name": "Test Teams app"
          },
          "operator": {
            "display_name": "user A",
            "extension_id": "jN9mb38lQTaMgxUq3Nd6ow",
            "extension_number": 101014,
            "extension_type": "user",
            "id": "DYHrdpjrS3uaOf7dPkkg8w"
          },
          "connect_to_operator": true,
          "allow_callers_check_voicemail": true,
          "voicemail_greeting": {
            "id": "b_fFF75hRgCtzG7Dw7wQgQ",
            "name": "Greeting voicemail"
          },
          "voicemail_leaving_instruction": {
            "id": "LxC4hMD8TJeFpwRcB_QWkA",
            "name": "Voicemail greeting"
          },
          "message_greeting": {
            "id": "di936zivT46YBCt3dr15GQ",
            "name": "Message greeting"
          },
          "require_press_1_before_connecting": true,
          "overflow_play_callee_voicemail_greeting": true,
          "play_callee_voicemail_greeting": true
        },
        "busy_routing": {
          "action": 1,
          "forward_to": {
            "display_name": "api_ta_test",
            "extension_id": "jN9mb38lQTaMgxUq3Nd6ow",
            "extension_number": 101014,
            "extension_type": "user",
            "id": "DYHrdpjrS3uaOf7dPkkg8w",
            "phone_number": "+18889843519",
            "description": "forward to phone number +18889843519.",
            "voicemail_greeting": {
              "id": "b_fFF75hRgCtzG7Dw7wQgQ",
              "name": "Voicemail greeting"
            }
          },
          "operator": {
            "display_name": "user A",
            "extension_id": "jN9mb38lQTaMgxUq3Nd6ow",
            "extension_number": 101014,
            "extension_type": "user",
            "id": "DYHrdpjrS3uaOf7dPkkg8w"
          },
          "connect_to_operator": true,
          "allow_callers_check_voicemail": true,
          "voicemail_greeting": {
            "id": "b_fFF75hRgCtzG7Dw7wQgQ",
            "name": "Greeting voicemail"
          },
          "voicemail_leaving_instruction": {
            "id": "LxC4hMD8TJeFpwRcB_QWkA",
            "name": "Voicemail greeting"
          },
          "message_greeting": {
            "id": "di936zivT46YBCt3dr15GQ",
            "name": "Message greeting"
          },
          "require_press_1_before_connecting": true,
          "play_callee_voicemail_greeting": true,
          "busy_play_callee_voicemail_greeting": true
        }
      },
      "sub_setting_type": "call_forwarding"
    }
  ],
  "holiday_hours": [
    {
      "details": [
        {
          "settings": {
            "allow_callers_check_voicemail": true,
            "call_forwarding_settings": [
              {
                "description": "testDescription",
                "enable": false,
                "id": "dash32943QWfjiofejd",
                "phone_number": "+12058945583",
                "external_contact": {
                  "name": "Johnson",
                  "email": "example@example.com",
                  "external_contact_id": "OJGi5xOFQPmrJbKg68-iWg",
                  "phone_numbers": [
                    "+12058945656"
                  ]
                }
              }
            ],
            "call_not_answer_action": 2,
            "connect_to_operator": false,
            "from": "2022-05-01T00:00:00Z",
            "max_wait_time": 60,
            "name": "Labor Day",
            "require_press_1_before_connecting": true,
            "ring_mode": "sequential",
            "routing": {
              "action": 1,
              "forward_to": {
                "display_name": "api_ta_test",
                "extension_id": "jN9mb38lQTaMgxUq3Nd6ow",
                "extension_number": 101014,
                "extension_type": "user",
                "id": "DYHrdpjrS3uaOf7dPkkg8w",
                "phone_number": "+18889843519",
                "description": "forward to phone number +18889843519.",
                "voicemail_greeting": {}
              },
              "operator": {
                "display_name": "user A",
                "extension_id": "jN9mb38lQTaMgxUq3Nd6ow",
                "extension_number": 101014,
                "extension_type": "user",
                "id": "DYHrdpjrS3uaOf7dPkkg8w"
              },
              "connect_to_operator": true,
              "allow_callers_check_voicemail": true,
              "voicemail_greeting": {
                "id": "0",
                "name": "test"
              },
              "require_press_1_before_connecting": true,
              "overflow_play_callee_voicemail_greeting": true,
              "play_callee_voicemail_greeting": true,
              "busy_play_callee_voicemail_greeting": true
            },
            "to": "2022-05-05T00:00:00Z"
          },
          "sub_setting_type": "call_forwarding"
        }
      ],
      "holiday_id": "ewhu3i9-f3f3-fiohed"
    }
  ]
}
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `404` <br> Extension does not exist: {0} <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Add a call handling setting

  • Method: POST
  • Path: /phone/extension/{extensionId}/call_handling/settings/{settingType}
  • Tags: Call Handling

Adds Zoom Phone call handling subsettings for your phone system. Call handling settings allow you to control how your system routes calls during business, closed, or holiday hours. For more information, see our API guide or Zoom support article Customizing call handling settings.

Applicable to user, call queue, auto receptionist, or shared line group call handling at this time.

Prerequisites:

  • A Pro or a higher account with Zoom Phone enabled

Scopes: phone:write:admin

Granular Scopes: phone:write:call_handling_setting:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json

One of:

  • settings

    object

    • description

      string — The external phone number's description. This field is only required for the `call_forwarding` sub-setting.

    • holiday_id

      string — The holiday's ID. This field is only required for the `call_forwarding` sub-setting.

    • phone_number

      string — The external phone number, in [E.164 format](https://en.wikipedia.org/wiki/E.164). This field is only required for the `call_forwarding` sub-setting.

  • sub_setting_type

    string, possible values: "call_forwarding" — The type of sub-setting: * `call_forwarding`

  • settings

    object

    • from

      string, format: date-time — The holiday's start date and time, in `yyyy-MM-dd'T'HH:mm:ss'Z'` format. This field is only required for the `holiday` sub-setting.

    • name

      string — The name of the holiday. This field is only required for the `holiday` sub-setting.

    • to

      string, format: date-time — The holiday's end date and time in `yyyy-MM-dd'T'HH:mm:ss'Z'` format. It's only required for the `holiday` sub-setting.

  • sub_setting_type

    string, possible values: "holiday" — The type of sub-setting: * `holiday`

Example:

{
  "settings": {
    "holiday_id": "qPvrfrrcrf843cdfvbDRDg",
    "description": "testDescription",
    "phone_number": "+12058945795"
  },
  "sub_setting_type": "call_forwarding"
}

Responses

Status: 201 **HTTP Status Codes** `201` Created.
Content-Type: application/json

One of:

  • call_forwarding_id

    string — The call forwarding's ID. The response only returns this value when you create a `call_forwarding` sub-setting.

  • holiday_id

    string — The holiday's ID. The response only returns this value when you create a `holiday` sub-setting.

Example:

{
  "call_forwarding_id": "qPvrfrrcrf843cdfvbDRDg"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> This operation is not supported.<br>Request failed because the **Call Forwarding to External Numbers** feature is not enabled. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `404` <br> Extension does not exist: {extensionId}<br>Holiday does not exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Delete a call handling setting

  • Method: DELETE
  • Path: /phone/extension/{extensionId}/call_handling/settings/{settingType}
  • Tags: Call Handling

Deletes a Zoom Phone's call handling settings. Call handling settings let you control how your system routes calls during business, closed, or holiday hours. For more information, read our API guide or Zoom support article Customizing call handling settings.

Applicable to user, call queue, auto receptionist, or shared line group call handling at this time.

Prerequisites:

  • Pro or a higher account with Zoom Phone enabled

Scopes: phone:write:admin

Granular Scopes: phone:delete:call_handling_setting:admin

Rate Limit Label: LIGHT

Responses

Status: 204 **HTTP Status Codes** `204` Call handling setting successfully deleted.
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `404` <br> Call forwarding does not exist: {callForwardingId}.<br>Holiday does not exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update a call handling setting

  • Method: PATCH
  • Path: /phone/extension/{extensionId}/call_handling/settings/{settingType}
  • Tags: Call Handling

Updates a Zoom Phone's call handling setting.

Call handling settings allow you to control how your system routes calls during business, closed, or holiday hours. For more information, read our Call Handling API guide or Zoom support article Customizing call handling settings.

Applicable to user, call queue, auto receptionist, or shared line group call handling at this time.

Prerequisites:

  • Pro or a higher account with Zoom Phone enabled

Scopes: phone:write:admin

Granular Scopes: phone:update:call_handling_setting:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json

One of:

  • settings

    object

    • call_forwarding_settings

      array — The call forwarding settings. It's only required for the `call_forwarding` sub-setting.

      Items:

      • description

        string — The external phone number's description.

      • enable

        boolean — Whether to receive a call.

      • external_contact

        object

        • external_contact_id

          string — The external contact's ID. It updates the external contact's `call_forwarding` sub-setting to where the call will be forwarded.

      • id

        string — The call forwarding's ID.

      • phone_number

        string — The external phone number in [E.164 format](https://en.wikipedia.org/wiki/E.164) format.

    • require_press_1_before_connecting

      boolean — When a call is forwarded to a personal phone number, whether the user must press &quot;1&quot; before the call connects. Enable this option to ensure missed calls do not reach to your personal voicemail. It's required for the `call_forwarding` sub-setting. Press 1 is always enabled and is required for `callQueue` type extension calls.

  • sub_setting_type

    string, possible values: "call_forwarding" — The type of sub-setting: * `call_forwarding`

  • settings

    object

    • from

      string, format: date-time — The holiday's start date and time in `yyyy-MM-dd'T'HH:mm:ss'Z'` format. It's required for the `holiday` sub-setting.

    • holiday_id

      string — The holiday's ID. It's required for the `holiday` sub-setting.

    • name

      string — The name of the holiday. It's required for the `holiday` sub-setting.

    • to

      string, format: date-time — The holiday's end date and time in `yyyy-MM-dd'T'HH:mm:ss'Z'` format. It's required for the `holiday` sub-setting.

  • sub_setting_type

    string, possible values: "holiday" — The type of sub-setting: * `holiday`

  • settings

    object

    • allow_members_to_reset

      boolean — This field allows queue members to set their own business hours. This field allows queue members' business hours to override the default hours of the call queue. Only required for `Call Queue custom_hours` sub-setting.

    • custom_hours_settings

      array — The custom hours settings. It's only required for the `custom_hours` sub-setting.

      Items:

      • from

        string — The custom hours start time `HH:mm` format.

      • to

        string — The custom hours end time in `HH:mm` format.

      • type

        integer, possible values: 0, 1, 2 — The type of custom hours: * `0` &mdash; Disabled. * `1` &mdash; 24 hours. * `2` &mdash; Customized hours.

      • weekday

        integer, possible values: 1, 2, 3, 4, 5, 6, 7 — The day of the week: * `1` &mdash; Sunday * `2` &mdash; Monday * `3` &mdash; Tuesday * `4` &mdash; Wednesday * `5` &mdash; Thursday * `6` &mdash; Friday * `7` &mdash; Saturday

    • type

      integer, possible values: 1, 2 — The type of custom hours: * `1` &mdash; 24 hours, 7 days a week. * `2` &mdash; Custom hours. This is only required for the `custom_hours` sub-setting.

  • sub_setting_type

    string, possible values: "custom_hours" — The type of sub-setting: * `custom_hours`

  • settings

    object

    • allow_callers_check_voicemail

      boolean — Whether to allow the callers to check voicemails. This field is only available in the following scenarios: * Secnario 1: The `call_not_answer_action` is set to `1` (Forward to a voicemail). * Secnario 2: The `busy_on_another_call_action` is set to `1` (Forward to a voicemail).(Only applicable to the `User`) Applicable to the extension as shown below: * `User` * `Shared Line Group`

    • allow_members_to_reset

      boolean — This field allows queue members to set their own business hours. This field allows queue members' business Hours to override the default hours of the call queue. Only required for `Call Queue custom_hours` sub-setting.

    • audio_while_connecting_id

      string — The audio while connecting the prompt ID. This option can select the audio played for the inbound callers when they are waiting to be routed to the next available call queue member. Options: * empty char - default * `ring_tone` - "Ring Tone" option * `0` - disable This is only required for the `Call Queue` `call_handling` sub-setting.

    • busy_description

      string — This field forwards to an external number description (optional). It sets when `busy_on_another_call_action` action is set to `10` - Forward to an external number.

    • busy_forward_to_extension_id

      string — The forwarding extension ID that's required only when busy_on_another_call_action setting is set to: 2 - Forward to the user. 4 - Forward to the common area. 6 - Forward to the auto receptionist. 7 - Forward to a call queue. 8 - Forward to a shared line group. or 9 - forward to an external contact.

    • busy_on_another_call_action

      integer, possible values: 1, 2, 4, 6, 7, 8, 9, 10, 12, 21, 22 — The action to take when the user is busy on another call: * `1` &mdash; Forward to a voicemail. * `2` &mdash; Forward to the user. * `4` &mdash; Forward to the common area. * `6` &mdash; Forward to the auto receptionist. * `7` &mdash; Forward to a call queue. * `8` &mdash; Forward to a shared line group. * `9` &mdash; Forward to an external contact. * `10` - Forward to a phone number. * `12` &mdash; Play a message, then disconnect. * `21` &mdash; Call waiting. * `22` &mdash; Play a busy signal. Only required for the `call_handling` sub-setting and only the `User` supports it.

    • busy_phone_number

      string — The extension's phone number or forward to an external number in [E.164 format](https://en.wikipedia.org/wiki/E.164) format. It sets when `busy_on_another_call_action` action is set to `10` - Forward to an external number.

    • busy_play_callee_voicemail_greeting

      boolean — Whether to play callee's voicemail greeting when the caller reaches the end of the forwarding sequence. It displays when `busy_on_another_call_action` action is set to `2` - Forward to the user, `4` - Forward to the common area, `6` - Forward to the auto receptionist, `7` - Forward to a call queue, `8` - Forward to a shared line group, `9` - Forward to an external contact, `10` - Forward to an external number.

    • busy_require_press_1_before_connecting

      boolean — When one is busy on another call, the receiver needs to press 1 before connecting the call for it to be forwarded to an external contact or a number. This option ensures that forwarded calls won't reach the voicemail box for the external contact or a number.

    • call_distribution

      object — This option distributes incoming calls. If `Sequential` or `Rotating` is selected, calls will ring for a specific time before trying the next available queue member. This is only required for the `call_handling` sub-setting.

      • handle_multiple_calls

        boolean — The maximum number of calls that can be handled simultaneously is less than half of the total amount of available call queue members. Note that the first incoming call may not be answered first. Required except for `simultaneous` ring mode.

      • ring_duration

        integer, possible values: 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60 — The ringing duration for each member: * `10` * `15` * `20` * `25` * `30` * `35` * `40` * `45` * `50` * `55` * `60` Required except for `simultaneous` ring mode.

      • ring_mode

        string, possible values: "simultaneous", "sequential", "rotating", "longest_idle" — The call distribution ring mode: * `simultaneous` * `sequential` * `rotating` * `longest_idle`.

      • skip_offline_device_phone_number

        boolean — 1. Devices with Zoom app or client not launched and mobile phone with screen locked will be skipped. 2. Phone numbers added to user's call handling settings will be skipped. Required except for `simultaneous` ring mode.

    • call_not_answer_action

      integer, possible values: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 18, 19 — The action to take when a call is not answered: * `1` &mdash; Forward to a Voicemail. Applicable to `User`, `Call Queue`, `Auto Receptionist`, or `Shared Line Group`. * `2` &mdash; Forward to the User. Applicable to `User`, `Call Queue`, `Auto Receptionist`, or `Shared Line Group`. * `3` &mdash; Forward to the Zoom Room. Applicable to `User`, `Call Queue`, `Auto Receptionist`, or `Shared Line Group`. * `4` &mdash; Forward to the Common Area. Applicable to `User`, `Call Queue`, `Auto Receptionist`, or `Shared Line Group`. * `5` &mdash; Forward to the Cisco/Polycom Room. Applicable to `User`, `Call Queue`, `Auto Receptionist`, or `Shared Line Group`. * `6` &mdash; Forward to the Auto Receptionist. Applicable to `User`, `Call Queue`, `Auto Receptionist`, or `Shared Line Group`. * `7` &mdash; Forward to a Call Queue. Applicable to `User`, `Call Queue`, `Auto Receptionist`, or `Shared Line Group`. * `8` &mdash; Forward to a Shared Line Group. Applicable to `User`, `Call Queue`, `Auto Receptionist`, or `Shared Line Group`. * `9` &mdash; Forward to an External Contact. Applicable to `User`, `Call Queue`, `Auto Receptionist`, or `Shared Line Group`. * `10` - Forward to a Phone Number. Applicable to `User`, `Call Queue`, `Auto Receptionist`, or `Shared Line Group`. * `11` &mdash; Disconnect. Applicable to `User`, `Call Queue`, or `Shared Line Group`. * `12` &mdash; Play a message, then disconnect. Applicable to `User`, `Call Queue`, `Auto Receptionist`, or `Shared Line Group` * `14` - Forward to an Interactive Voice Response (IVR). Applicable to `Auto Receptionist`. * `15` &mdash; Forward to a Partner Contact Center. Applicable to `Auto Receptionist`. * `18` &mdash; Forward to Microsoft Teams Resource Account. Required the license of Zoom Phone for Microsoft Teams. Applicable to `Call queue`, `Auto Receptionist`, or `Shared Line group`. * `19` &mdash; Forward to a Zoom Contact Center. Required Zoom Contact Center license. Applicable to `Call Queue`, `Auto Receptionist`, or `Shared Line Group`. This is only required for the `call_handling` sub-setting.

    • connect_to_operator

      boolean — Whether to allow callers to reach an operator. This field is only available in the following scenarios: * Secnario 1: The `call_not_answer_action` is set to `1` (Forward to a voicemail). * Secnario 2: The `busy_on_another_call_action` is set to `1` (Forward to a voicemail). Applicable to the extension as shown below: * `User` * `Call Queue` * `Shared Line Group`

    • description

      string — This field describes the phone number to which the call is forwarded. This field is only available in the following scenarios: * Secnario 1: The `call_not_answer_action` is set to `10` (Forward to a Phone Number). Applicable to the extension as shown below: * `User`

    • forward_to_extension_id

      string — The forwarding extension ID: This field is only available in the following scenarios: * Secnario 1: When `call_not_answer_action` is set to `1` (Forward to voicemail) for unanswered calls, this field is used to set the specific extension to which voicemails are forwarded. This scenario applies to `Auto Receptionist` and `Call Queue`. * Secnario 2: when `call_not_answer_action` setting is set to: `2`(Forward to the User), `3`(Forward to the Zoom Room), `4`(Forward to the Common Area), `5`(Forward to the Cisco/Polycom Room), `6`(Forward to the Auto Receptionist), `7`(Forward to a Call Queue), `8`(Forward to a Shared Line Group) or `9`(forward to an External Contact) for unanswered calls, this field specifies the extension to which the call will be forwarded. This scenario applies to `User`, `Auto Receptionist`, `Call Queue` and `Shared Line Group`

    • forward_to_partner_contact_center_id

      string — The Partner Contact Center Setting ID to which the call is forwarded. This field is only available in the following scenarios: * Secnario 1: The `call_not_answer_action` is set to `15` (Forward to a Partner Contact Center). Applicable to the extension as shown below: * `Auto Receptionist`

    • forward_to_teams_id

      string — The Microsoft Teams Voice App ID to which the call is forwarded. This field is only available in the following scenarios: * Secnario 1: The `call_not_answer_action` is set to `18` (Forward to Microsoft Teams Resource Account). Applicable to the extension as shown below: * `Auto Receptionist` * `Call Queue` * `Shared Line Group`

    • forward_to_zcc_phone_number

      string — The Zoom Contact Center phone number, in [E.164 format](https://en.wikipedia.org/wiki/E.164) format, to which the call is forwarded. This field is only available in the following scenarios: * Secnario 1: The `call_not_answer_action` is set to `19` (Forward to a Zoom Contact Center). Applicable to the extension as shown below: * `Auto Receptionist` * `Call Queue` * `Shared Line Group`

    • greeting_prompt_id

      string — The greeting audio prompt ID. Options: empty char - default and `0` - disable This is only required for the `Call Queue` or `Auto Receptionist` `call_handling` sub-setting.

    • max_call_in_queue

      integer — The maximum number of calls in queue. Specify the maximum number of callers to place in the queue. When this number is exceeded, callers will be routed based on the overflow option. Up to 60. It's required for the `Call Queue` `call_handling` sub-setting.

    • max_wait_time

      integer, possible values: 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 120, 180, 240, 300, 600, 900, 1200, 1500, 1800 — The maximum wait time, in seconds, for `simultaneous` ring mode or the ring duration for each device for `sequential` ring mode: * `10` * `15` * `20` * `25` * `30` * `35` * `40` * `45` * `50` * `55` * `60` Specify how long a caller will wait in the queue. Once the wait time is exceeded, the caller will be rerouted based on the overflow option for `Call Queue`: * `10` * `15` * `20` * `25` * `30` * `35` * `40` * `45` * `50` * `55` * `60` * `120` * `180` * `240` * `300` * `600` * `900` * `1200` * `1500` * `1800` This is only required for the `call_handling` sub-setting.

    • message_greeting_id

      string — The message greeting prompt ID. This field is only available in the following scenarios: * Secnario 1: The `call_not_answer_action` is set to `12` (Play a message, then disconnect). Applicable to the extension as shown below: * `User` * `Auto Receptionist` * `Call Queue` * `Shared Line Group`

    • music_on_hold_id

      string — The music on hold prompt ID. This field is an option to choose music for inbound callers when they're placed on hold by a call queue member. Options: empty char - default and `0` - disable Only required for the `Call Queue` `call_handling` sub-setting.

    • operator_extension_id

      string — The extension ID of the operator to whom the call is being forwarded. This field is only available in the following scenarios: * Secnario 1: The `call_not_answer_action` is set to `1` (Forward to a voicemail) and the `connect_to_operator` is `true`. * Secnario 2: The `busy_on_another_call_action` is set to `1` (Forward to a voicemail) and the `connect_to_operator` is `true`.(Only applicable to the `User`) Applicable to the extension as shown below: * `User` * `Call Queue` * `Shared Line Group`

    • overflow_play_callee_voicemail_greeting

      boolean — Whether to play callee's voicemail greeting when the caller reaches the end of the forwarding sequence. This field is only available in the following scenarios: * Secnario 1: The `call_not_answer_action` setting is set to: `2`(Forward to the User), `3`(Forward to the Zoom Room), `4`(Forward to the Common Area), `5`(Forward to the Cisco/Polycom Room), `6`(Forward to the Auto Receptionist), `7`(Forward to a Call Queue) or `8`(Forward to a Shared Line Group). Applicable to the extension as shown below: * `User`

    • phone_number

      string — The extension's phone number or forward to an external number in [E.164 format](https://en.wikipedia.org/wiki/E.164) format. This field is only available in the following scenarios: * Secnario 1: The `call_not_answer_action` is set to `10` (Forward to a Phone Number). Applicable to the extension as shown below: * `User` * `Auto Receptionist` * `Call Queue` * `Shared Line Group`

    • play_callee_voicemail_greeting

      boolean — Whether to play callee's voicemail greeting when the caller reaches the end of forwarding sequence. This field is only available in the following scenarios: * Secnario 1: The `call_not_answer_action` is set to `1` (Forward to a voicemail) and the `connect_to_operator` is `true`. * Secnario 2: The `busy_on_another_call_action` is set to `1` (Forward to a voicemail) and the `connect_to_operator` is `true`.(Only applicable to the `User`) Applicable to the extension as shown below: * `User`

    • receive_call

      boolean — This field receives calls while on a call. When enabled, call queue members can receive new incoming calls notification even on the call. It's required for the `Call Queue call handling` sub-setting.

    • ring_mode

      string, possible values: "simultaneous", "sequential" — The call handling ring mode: * `simultaneous` * `sequential`. For user business hours, `ring_mode` needs to be set with `max_wait_time`.

    • un_answered_require_press_1_before_connecting

      boolean — When a call is unanswered, press 1 before connecting the call to forward to an external contact or a number. This option ensures that forwarded calls won't reach the voicemail box for the external contact or a number. This field is only available in the following scenarios: * Secnario 1: The `call_not_answer_action` is set to `9`(Forward to an External Contact) or `10`(Forward to a Phone Number). Applicable to the extension as shown below: * `User`

    • voicemail_greeting_id

      string — The voicemail greeting prompt ID. This field is only available in the following scenarios: * Secnario 1: The `call_not_answer_action` is set to `1` (Forward to a voicemail). * Secnario 2: The `busy_on_another_call_action` is set to `1` (Forward to a voicemail).(Only applicable to the `User`) Applicable to the extension as shown below: * `User` * `Auto Receptionist` * `Call Queue` * `Shared Line Group`

    • voicemail_leaving_instruction_id

      string — The voicemail leaving instruction prompt ID. This field is only available in the following scenarios: * Secnario 1: The `call_not_answer_action` is set to `1` (Forward to a voicemail), and either `connect_to_operator` or `allow_callers_check_voicemail` is set to `true`. * Secnario 2: The `busy_on_another_call_action` is set to `1` (Forward to a voicemail).(Only applicable to the `User`), and either `connect_to_operator` or `allow_callers_check_voicemail` is set to `true`. Applicable to the extension as shown below: * `User` * `Call Queue` * `Shared Line Group`

    • wrap_up_time

      integer, possible values: 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 120, 180, 240, 300 — The wrap up time in seconds. Specify the duration before the next queue call is routed to a member in call queue: * `0` * `10` * `15` * `20` * `25` * `30` * `35` * `40` * `45` * `50` * `55` * `60` * `120` * `180` * `240` * `300` This is only required for the `call_handling` sub-setting.

  • sub_setting_type

    string, possible values: "call_handling" — The type of sub-setting: * `call_handling`

Example:

{
  "settings": {
    "call_forwarding_settings": [
      {
        "description": "testDescription",
        "enable": true,
        "id": "qPvrfrrcrf843cdfvbDRDg",
        "phone_number": "+12058945527",
        "external_contact": {
          "external_contact_id": "OJGi5xOFQPmrJbKg68-iWg"
        }
      }
    ],
    "require_press_1_before_connecting": true
  },
  "sub_setting_type": "call_forwarding"
}

Responses

Status: 204 **HTTP Status Codes** `204` Call handling settings successfully updated.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Since 'Allow callers to reach an operator' and 'Allow callers to check voicemail' are disabled, you can't update the voicemail leaving instruction. <br> **Error Code:** `400` <br> The forwarding of busy on another call and the forwarding of unanswered calls both are not 'Forward to voicemail/videomail', so you can't update the voicemail leaving instruction. <br> **Error Code:** `400` <br> Invalid customer hours from/to time for weekday: {weekday}. <br> **Error Code:** `400` <br> Invalid holiday from/to time. <br> **Error Code:** `400` <br> Failed to overflow to external contact since user overflow policy is restricted. <br> **Error Code:** `400` <br> Failed to overflow to external number since user overflow policy is restricted. <br> **Error Code:** `400` <br> Failed to overflow to internal extension without inbound Automatic Call Recording since user overflow policy is restricted. <br> **Error Code:** `400` <br> Failed to overflow to extension since user overflow policy is disabled. <br> **Error Code:** `400` <br> Extension's voicemail policy is disabled. <br> **Error Code:** `400` <br> You cannot assign yourself as the operator. <br> **Error Code:** `400` <br> The user business hours ring mode and max wait time need to be set together. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `404` <br> Call forwarding does not exist: {callForwardingId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get call element

  • Method: GET
  • Path: /phone/call_element/{callElementId}
  • Tags: Call Logs

Returns the call element for a given call element ID.

Prerequisites

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone_call_log:read,phone_call_log:read:admin,phone:read

Granular Scopes: phone:read:call_log:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status code:** `200` Call element returned.
Content-Type: application/json
  • answer_time

    string — The call answer time in GMT `date-time` format.

  • call_element_id

    string — The ID of the call element.

  • call_history_uuid

    string — The call history ID of the call.

  • call_id

    string — The ID of the phone call.

  • call_type

    string, possible values: "general", "emergency" — The type of call.

  • callee_account_code

    string — The callee's account code. To dial between accounts, use the format: [Account code] - [extension number].

  • callee_country_code

    string — The callee's country code.

  • callee_country_iso_code

    string — The callee's country ISO code.

  • callee_device_type

    string — The callee's device type.

  • callee_did_number

    string — The callee's DID number in e164 format.

  • callee_email

    string — The callee's email.

  • callee_ext_id

    string — The callee's extension ID.

  • callee_ext_number

    string — The callee's extension number.

  • callee_ext_type

    string, possible values: "user", "call_queue", "auto_receptionist", "common_area", "zoom_room", "cisco_room", "shared_line_group", "group_call_pickup", "external_contact" — The callee's extension type: * `user` * `call_queue` * `auto_receptionist` * `common_area` * `zoom_room` * `cisco_room` * `shared_line_group` * `group_call_pickup` * `external_contact`.

  • callee_name

    string — The callee's name.

  • callee_number_type

    string, possible values: "zoom_pstn", "zoom_toll_free_number", "external_pstn", "external_contact", "byoc", "byop", "3rd_party_contact_center", "zoom_service_number", "external_service_number", "zoom_contact_center", "meeting_phone_number", "meeting_id", "anonymous_number", "zra_phone_number" — The callee's number type.

  • caller_account_code

    string — The caller's account code. To dial between accounts, use the format: [Account code] - [extension number].

  • caller_country_code

    string — The caller's country code.

  • caller_country_iso_code

    string — The caller's country ISO code.

  • caller_device_type

    string — The caller's device type.

  • caller_did_number

    string — The caller's DID number in e164 format.

  • caller_email

    string — The caller's email.

  • caller_ext_id

    string — The caller's extension ID.

  • caller_ext_number

    string — The caller's extension number .

  • caller_ext_type

    string, possible values: "user", "call_queue", "auto_receptionist", "common_area", "zoom_room", "cisco_room", "shared_line_group", "group_call_pickup", "external_contact" — The caller's extension type: * `user` * `call_queue` * `auto_receptionist` * `common_area` * `zoom_room` * `cisco_room` * `shared_line_group` * `group_call_pickup` * `external_contact`.

  • caller_name

    string — The caller' name.

  • caller_number_type

    string, possible values: "zoom_pstn", "zoom_toll_free_number", "external_pstn", "external_contact", "byoc", "byop", "3rd_party_contact_center", "zoom_service_number", "external_service_number", "zoom_contact_center", "meeting_phone_number", "meeting_id", "anonymous_number", "zra_phone_number" — The caller's number type.

  • client_code

    string — The client code for the call.

  • connect_type

    string, possible values: "internal", "external" — The connect type of call.

  • cost_center

    string — The name of the cost center of which the user belongs.

  • department

    string — The name of the user's department.

  • device_private_ip

    string — The private IP of which the user belongs.

  • device_public_ip

    string — The public IP of which the user belongs.

  • direction

    string, possible values: "inbound", "outbound" — The direction of the call.

  • end_time

    string — The call end time in GMT `date-time` format.

  • end_to_end

    boolean — A flag to indicate the call is end to End-to-End Encryption or not.

  • event

    string, possible values: "incoming", "transfer_from_zoom_contact_center", "shared_line_incoming", "outgoing", "call_me_on", "outgoing_to_zoom_contact_center", "warm_transfer", "forward", "ring_to_member", "overflow", "direct_transfer", "barge", "monitor", "whisper", "listen", "takeover", "conference_barge", "park", "timeout", "park_pick_up", "merge", "shared" — An event within a call log.

  • group_id

    string — The primary group of which the user belongs.

  • hide_caller_id

    boolean — A flag to indicate the call is hide caller ID or not.

  • hold_time

    integer — The call hold time in seconds.

  • is_node

    integer — This indicates whether it is a node or not.

  • node

    integer — Within one segment, a sequential number to indicate the orders of the events that start from 0.

  • operator_ext_id

    string — The operator's extension ID.

  • operator_ext_number

    string — The operator's extension number.

  • operator_ext_type

    string, possible values: "user", "call_queue", "auto_receptionist", "common_area", "zoom_room", "cisco_room", "shared_line_group", "group_call_pickup", "external_contact" — The operator's extension type.

  • operator_name

    string — The operator's name.

  • press_key

    string — The key value associated with a press or input event.

  • recording_id

    string — The unique identifier of the call recording.

  • recording_type

    string, possible values: "ad-hoc", "automatic" — The type of call recording.

  • result

    string, possible values: "answered", "accepted", "picked_up", "connected", "succeeded", "voicemail", "hang_up", "canceled", "call_failed", "unconnected", "rejected", "busy", "ring_timeout", "overflowed", "no_answer", "invalid_key", "invalid_operation", "abandoned", "system_blocked", "service_unavailable" — The detailed results of an event for a call log.

  • result_reason

    string, possible values: "answered_by_other", "pickup_by_other", "call_out_by_other" — The cause or outcome of an event in a call log.

  • segment

    integer — A sequential number to indicate the orders of events that starts from 0.

  • site_id

    string — The name of the site ID of which the user belongs.

  • site_name

    string — The site name of which the user belongs.

  • start_time

    string — The call start time in GMT `date-time` format.

  • voicemail_id

    string — The ID of the call voicemail.

  • waiting_time

    integer — The call wait time in seconds.

Example:

{
  "call_element_id": "20211008-fe9c3900-5187-4254-9359-590afbc40bc9",
  "call_history_uuid": "20211008-48c1dfd4-91ce-4df5-8495-7c9e33d10869",
  "call_id": "7018317023722949162",
  "connect_type": "internal",
  "call_type": "general",
  "direction": "inbound",
  "hide_caller_id": true,
  "end_to_end": false,
  "caller_ext_id": "ATu63--9TjudZetpf4UuQg",
  "caller_name": "Caller name",
  "caller_email": "test@abc.com",
  "caller_did_number": "+12059300920",
  "caller_ext_number": "101229",
  "caller_ext_type": "user",
  "caller_number_type": "external_pstn",
  "caller_device_type": "MAC_Client(6.0.2.33403)",
  "caller_country_iso_code": "US",
  "caller_country_code": "1",
  "callee_ext_id": "ATu63--9TjudZetpf4UuQg",
  "callee_name": "Callee name",
  "callee_did_number": "+12059300920",
  "callee_ext_number": "101229",
  "callee_email": "test@abc.com",
  "callee_ext_type": "user",
  "callee_number_type": "external_pstn",
  "callee_device_type": "MAC_Client(6.0.2.33403)",
  "callee_country_iso_code": "US",
  "callee_country_code": "1",
  "client_code": "1234",
  "department": "web-api1",
  "cost_center": "cost-center1",
  "site_id": "BpCTBMRARBefUrprildVqw",
  "group_id": "California",
  "site_name": "site name",
  "start_time": "2021-10-08T16:12:04Z",
  "answer_time": "2021-10-08T16:12:04Z",
  "end_time": "2021-10-08T16:12:15Z",
  "event": "outgoing",
  "result": "answered",
  "result_reason": "answered_by_other",
  "device_private_ip": "",
  "device_public_ip": "",
  "operator_ext_number": "3456",
  "operator_ext_id": "NN9rA4fZSsScB2YiCqw7Ig",
  "operator_ext_type": "user",
  "operator_name": "operator name",
  "press_key": "3",
  "segment": 0,
  "node": 0,
  "is_node": 0,
  "recording_id": "c71b360f6e774e3aa101453117b7e1a7",
  "recording_type": "automatic",
  "hold_time": 20,
  "waiting_time": 20,
  "voicemail_id": "6cd2da01bcaa47f58e3250a575c5f2bf",
  "caller_account_code": "111",
  "callee_account_code": "222"
}
Status: 404 **HTTP Status Code:** `404` <br> Not Found
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get account's call history

  • Method: GET
  • Path: /phone/call_history
  • Tags: Call Logs

Returns an account's new edition of call logs.

Prerequisites

  • A Business or Enterprise account
  • A Zoom Phone license
  • Account owner or a role with Zoom Phone management

Scopes: phone:read:admin,phone_call_log:read:admin

Granular Scopes: phone:read:list_call_logs:admin

Rate Limit Label: HEAVY

Responses

Status: 200 **HTTP Status Code:** `200` Account's call logs returned.
Content-Type: application/json
  • call_history

    array — The call history.

    Items:

    • answer_time

      string — The call answer time in GMT date-time format.

    • call_history_uuid

      string — The call history ID of the call. Use this ID to retrieve the call history.

    • call_id

      string — The unique identifier of the phone call. One call id might contain multiple call log ID.

    • call_result

      string, possible values: "answered", "accepted", "picked_up", "connected", "succeeded", "voicemail", "hang_up", "canceled", "call_failed", "unconnected", "rejected", "busy", "ring_timeout", "overflowed", "no_answer", "invalid_key", "invalid_operation", "abandoned", "system_blocked", "service_unavailable" — The final call result of the call logs.

    • call_type

      string, possible values: "general", "emergency" — The type of call.

    • callee_account_code

      string — The callee's account code. To dial between accounts, use the format: [Account code] - [extension number].

    • callee_country_code

      string — The callee's country code.

    • callee_country_iso_code

      string — The callee's country ISO code.

    • callee_device_type

      string — The callee's device type.

    • callee_did_number

      string — The callee's DID number in e164 format.

    • callee_email

      string — The callee's email.

    • callee_ext_id

      string — The callee's extension ID.

    • callee_ext_number

      string — The callee's extension number.

    • callee_ext_type

      string, possible values: "user", "call_queue", "auto_receptionist", "common_area", "zoom_room", "cisco_room", "shared_line_group", "group_call_pickup", "external_contact" — The callee's extension type.

    • callee_name

      string — The callee's name.

    • callee_number_type

      string, possible values: "zoom_pstn", "zoom_toll_free_number", "external_pstn", "external_contact", "byoc", "byop", "3rd_party_contact_center", "zoom_service_number", "external_service_number", "zoom_contact_center", "meeting_phone_number", "meeting_id", "anonymous_number", "zoom_revenue_accelerator" — The callee's number type.

    • caller_account_code

      string — The caller's account code. To dial between accounts, use the format: [Account code] - [extension number].

    • caller_country_code

      string — The caller's country code.

    • caller_country_iso_code

      string — The caller's country ISO code.

    • caller_device_type

      string — The caller's device type.

    • caller_did_number

      string — The caller's DID number in e164 format.

    • caller_email

      string — The caller's email.

    • caller_ext_id

      string — The caller's extension ID.

    • caller_ext_number

      string — The caller's extension number.

    • caller_ext_type

      string, possible values: "user", "call_queue", "auto_receptionist", "common_area", "zoom_room", "cisco_room", "shared_line_group", "group_call_pickup", "external_contact" — The caller's extension type.

    • caller_name

      string — The caller's name.

    • caller_number_type

      string, possible values: "zoom_pstn", "zoom_toll_free_number", "external_pstn", "external_contact", "byoc", "byop", "3rd_party_contact_center", "zoom_service_number", "external_service_number", "zoom_contact_center", "meeting_phone_number", "meeting_id", "anonymous_number", "zoom_revenue_accelerator" — The caller's number type.

    • connect_type

      string, possible values: "internal", "external" — The connect type of the call logs.

    • cost_center

      string — The name of the cost center where the user belongs.

    • department

      string — The name of the department where the user belongs.

    • direction

      string, possible values: "inbound", "outbound" — The direction of the call.

    • duration

      integer — The duration of the call in seconds.

    • end_time

      string — The call end time in GMT date-time format.

    • end_to_end

      boolean — A flag to indicate the call is end to End-to-End Encryption or not.

    • group_id

      string — The primary group where the user belongs.

    • hide_caller_id

      boolean — A flag to indicate the call is hide caller ID or not.

    • international

      boolean, possible values: true, false — A flag to indicate the call is international or not.

    • recording_status

      string, possible values: "recorded", "non_recorded" — The recording status indicates whether the call has recording or not. Recorded means the call has at least one recording. Non_recorded means the call does not have any recordings.

    • sbc_id

      string — The SBC ID that the call goes through.

    • sbc_name

      string — The SBC name that the call goes through.

    • sip_group_id

      string — The SIP group ID that the call goes through.

    • sip_group_name

      string — The SIP group name that the call goes through.

    • site_id

      string — The name of the site ID of which the user belongs.

    • site_name

      string — The name of the site name where the user belongs.

    • spam

      string — The spam type of the call.

    • start_time

      string — The call start time in GMT date-time format.

  • call_logs

    array — The call log.

    Items:

    • answer_time

      string — The call answer time in GMT date-time format.

    • call_id

      string — The unique identifier of the phone call. One call id might contain multiple call log ID.

    • call_result

      string, possible values: "answered", "accepted", "picked_up", "connected", "succeeded", "voicemail", "hang_up", "canceled", "call_failed", "unconnected", "rejected", "busy", "ring_timeout", "overflowed", "no_answer", "invalid_key", "invalid_operation", "abandoned", "system_blocked", "service_unavailable" — The final call result of the call logs.

    • call_type

      string, possible values: "general", "emergency" — The type of call.

    • callee_account_code

      string — The callee's account code. To dial between accounts, use the format: [Account code] - [extension number].

    • callee_country_code

      string — The callee's country code.

    • callee_country_iso_code

      string — The callee's country ISO code.

    • callee_device_type

      string — The callee's device type.

    • callee_did_number

      string — The callee's DID number in e164 format.

    • callee_email

      string — The callee's email.

    • callee_ext_id

      string — The callee's extension ID.

    • callee_ext_number

      string — The callee's extension number.

    • callee_ext_type

      string, possible values: "user", "call_queue", "auto_receptionist", "common_area", "zoom_room", "cisco_room", "shared_line_group", "group_call_pickup", "external_contact" — The callee's extension type.

    • callee_name

      string — The callee's name.

    • callee_number_type

      string, possible values: "zoom_pstn", "zoom_toll_free_number", "external_pstn", "external_contact", "byoc", "byop", "3rd_party_contact_center", "zoom_service_number", "external_service_number", "zoom_contact_center", "meeting_phone_number", "meeting_id", "anonymous_number", "zoom_revenue_accelerator" — The callee's number type.

    • caller_account_code

      string — The caller's account code. To dial between accounts, use the format: [Account code] - [extension number].

    • caller_country_code

      string — The caller's country code.

    • caller_country_iso_code

      string — The caller's country ISO code.

    • caller_device_type

      string — The caller's device type.

    • caller_did_number

      string — The caller's DID number in e164 format.

    • caller_email

      string — The caller's email.

    • caller_ext_id

      string — The caller's extension ID.

    • caller_ext_number

      string — The caller's extension number.

    • caller_ext_type

      string, possible values: "user", "call_queue", "auto_receptionist", "common_area", "zoom_room", "cisco_room", "shared_line_group", "group_call_pickup", "external_contact" — The caller's extension type.

    • caller_name

      string — The caller's name.

    • caller_number_type

      string, possible values: "zoom_pstn", "zoom_toll_free_number", "external_pstn", "external_contact", "byoc", "byop", "3rd_party_contact_center", "zoom_service_number", "external_service_number", "zoom_contact_center", "meeting_phone_number", "meeting_id", "anonymous_number", "zoom_revenue_accelerator" — The caller's number type.

    • connect_type

      string, possible values: "internal", "external" — The connect type of the call logs.

    • cost_center

      string — The name of the cost center where the user belongs.

    • department

      string — The name of the department where the user belongs.

    • direction

      string, possible values: "inbound", "outbound" — The direction of the call.

    • duration

      integer — The duration of the call in seconds.

    • end_time

      string — The call end time in GMT date-time format.

    • end_to_end

      boolean — A flag to indicate the call is end to End-to-End Encryption or not.

    • group_id

      string — The primary group where the user belongs.

    • hide_caller_id

      boolean — A flag to indicate the call is hide caller ID or not.

    • id

      string — The ID of the call log summary, get call path with this summary ID.

    • international

      boolean, possible values: true, false — A flag to indicate the call is international or not.

    • recording_status

      string, possible values: "recorded", "non_recorded" — The recording status indicates whether the call has recording or not. Recorded means the call has at least one recording. Non_recorded means the call does not have any recordings.

    • sbc_id

      string — The SBC ID that the call goes through.

    • sbc_name

      string — The SBC name that the call goes through.

    • sip_group_id

      string — The SIP group ID that the call goes through.

    • sip_group_name

      string — The SIP group name that the call goes through.

    • site_id

      string — The name of the site ID of which the user belongs.

    • site_name

      string — The name of the site name where the user belongs.

    • spam

      string — The spam type of the call.

    • start_time

      string — The call start time in GMT date-time format.

  • from

    string — The start time and date of the log.

  • next_page_token

    string — The next page token paginates through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • page_count

    integer — The total number of pages.

  • page_size

    integer — The number of records returned within a single API call for each page.

  • to

    string — The end time and date of the log.

  • total_records

    integer — The total number of records returned.

Example:

{
  "call_history": [
    {
      "call_history_uuid": "20211008-48c1dfd4-91ce-4df5-8495-7c9e33d10869",
      "call_id": "7018317023722949162",
      "direction": "inbound",
      "international": false,
      "start_time": "2021-10-08T16:12:04Z",
      "answer_time": "2021-10-08T16:12:10Z",
      "end_time": "2021-10-08T16:12:15Z",
      "duration": 20,
      "connect_type": "internal",
      "sbc_id": "20",
      "sbc_name": "20",
      "sip_group_id": "20",
      "sip_group_name": "20",
      "call_type": "general",
      "call_result": "answered",
      "hide_caller_id": true,
      "end_to_end": false,
      "caller_ext_id": "ATu63--9TjudZetpf4UuQg",
      "caller_did_number": "+12059300920",
      "caller_ext_number": "101229",
      "caller_name": "Caller name",
      "caller_email": "test@abc.com",
      "caller_ext_type": "user",
      "caller_number_type": "external_pstn",
      "caller_device_type": "MAC_Client(6.0.2.33403)",
      "caller_country_iso_code": "US",
      "caller_country_code": "US",
      "callee_ext_id": "ATu63--9TjudZetpf4UuQg",
      "callee_did_number": "+12059300920",
      "callee_ext_number": "101229",
      "callee_name": "Callee name",
      "callee_email": "test@abc.com",
      "callee_ext_type": "user",
      "callee_number_type": "external_pstn",
      "callee_device_type": "MAC_Client(6.0.2.33403)",
      "callee_country_iso_code": "US",
      "callee_country_code": "US",
      "department": "web-api1",
      "cost_center": "cost-center1",
      "site_id": "BpCTBMRARBefUrprildVqw",
      "group_id": "California",
      "site_name": "site name",
      "spam": "Maybe Spam",
      "recording_status": "recorded",
      "caller_account_code": "111",
      "callee_account_code": "222"
    }
  ],
  "from": "2021-10-01",
  "to": "2021-10-12",
  "page_count": 2,
  "page_size": 30,
  "total_records": 54,
  "next_page_token": "AmhfoKtF2Ey4TaPg2iZsAcmetRLs2ZY0Sk2"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Validation Failed <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get call history

  • Method: GET
  • Path: /phone/call_history/{callHistoryUuid}
  • Tags: Call Logs

Returns information about a call log.

Prerequisites

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:read:admin,phone_call_log:read:admin

Granular Scopes: phone:read:call_log:admin

Rate Limit Label: LIGHT

Responses

Status: 200 The details of the call history.
Content-Type: application/json
  • answer_time

    string — The call answer time in GMT `date-time` format.

  • call_elements

    array — The call elements.

    Items:

    • answer_time

      string — The call answer time in GMT `date-time` format.

    • call_element_id

      string — The ID of the call element.

    • call_id

      string — The ID of the phone call.

    • call_type

      string, possible values: "general", "emergency" — The type of call.

    • callee_country_code

      string — The callee's country code.

    • callee_country_iso_code

      string — The callee's country ISO code.

    • callee_device_type

      string — The callee's device type.

    • callee_did_number

      string — The callee's DID number in e164 format.

    • callee_email

      string — The callee's email.

    • callee_ext_id

      string — The callee's extension ID.

    • callee_ext_number

      string — The extension number of the callee.

    • callee_ext_type

      string, possible values: "user", "call_queue", "auto_receptionist", "common_area", "zoom_room", "cisco_room", "shared_line_group", "group_call_pickup", "external_contact" — The callee's extension type.

    • callee_name

      string — The name of the callee.

    • callee_number_type

      string, possible values: "zoom_pstn", "zoom_toll_free_number", "external_pstn", "external_contact", "byoc", "byop", "3rd_party_contact_center", "zoom_service_number", "external_service_number", "zoom_contact_center", "meeting_phone_number", "meeting_id", "anonymous_number", "zra_phone_number" — The callee's number type.

    • caller_country_code

      string — The caller's country code.

    • caller_country_iso_code

      string — The caller's country ISO code.

    • caller_device_type

      string — The caller's device type.

    • caller_did_number

      string — The caller's DID number in e164 format.

    • caller_email

      string — The caller's email.

    • caller_ext_id

      string — The caller's extension ID.

    • caller_ext_number

      string — The extension number of the caller.

    • caller_ext_type

      string, possible values: "user", "call_queue", "auto_receptionist", "common_area", "zoom_room", "cisco_room", "shared_line_group", "group_call_pickup", "external_contact" — The caller's extension type.

    • caller_name

      string — The name of the caller.

    • caller_number_type

      string, possible values: "zoom_pstn", "zoom_toll_free_number", "external_pstn", "external_contact", "byoc", "byop", "3rd_party_contact_center", "zoom_service_number", "external_service_number", "zoom_contact_center", "meeting_phone_number", "meeting_id", "anonymous_number", "zra_phone_number" — The caller's number type.

    • client_code

      string — The client code for the call.

    • connect_type

      string, possible values: "internal", "external" — The connect type of call.

    • cost_center

      string — The name of the cost center of which the user belongs.

    • department

      string — The name of the department of which the user belongs.

    • device_private_ip

      string — The private IP of which the user belongs.

    • device_public_ip

      string — The public IP of which the user belongs

    • direction

      string, possible values: "inbound", "outbound" — The direction of the call.

    • end_time

      string — The call end time in GMT `date-time` format.

    • end_to_end

      boolean — A flag to indicate the call is end to End-to-End Encryption or not.

    • event

      string, possible values: "incoming", "transfer_from_zoom_contact_center", "shared_line_incoming", "outgoing", "call_me_on", "outgoing_to_zoom_contact_center", "warm_transfer", "forward", "ring_to_member", "overflow", "direct_transfer", "barge", "monitor", "whisper", "listen", "takeover", "conference_barge", "park", "timeout", "park_pick_up", "merge", "shared" — An event within a call log.

    • group_id

      string — The primary group of which the user belongs.

    • hide_caller_id

      boolean — A flag to indicate the call is hide caller ID or not.

    • hold_time

      integer — The call hold time in seconds.

    • is_node

      integer — This indicates whether it is a node or not.

    • node

      integer — Within one segment, a sequential number to indicate the orders of the events that starts from 0.

    • operator_ext_id

      string — The operator extension ID.

    • operator_ext_number

      string — The operator extension number.

    • operator_ext_type

      string, possible values: "user", "call_queue", "auto_receptionist", "common_area", "zoom_room", "cisco_room", "shared_line_group", "group_call_pickup", "external_contact" — The operator extension type.

    • operator_name

      string — The operator's name.

    • press_key

      string — The press key value for event press or input.

    • recording_id

      string — The unique identifier of the call recording.

    • recording_type

      string, possible values: "automatic", "ad-hoc" — The type of call recording.

    • result

      string, possible values: "answered", "accepted", "picked_up", "connected", "succeeded", "voicemail", "hang_up", "canceled", "call_failed", "unconnected", "rejected", "busy", "ring_timeout", "overflowed", "no_answer", "invalid_key", "invalid_operation", "abandoned", "system_blocked", "service_unavailable" — The detail result of an event for a call log.

    • result_reason

      string, possible values: "answered_by_other", "pickup_by_other", "call_out_by_other" — The reason of result of an event for a call log.

    • segment

      integer — A sequential number to indicate the orders of events that starts from 0.

    • site_id

      string — The name of the site ID of which the user belongs.

    • site_name

      string — The name of the site name of which the user belongs.

    • start_time

      string — The call start time in GMT `date-time` format.

    • voicemail_id

      string — The ID of the call voicemail.

    • waiting_time

      integer — The call wait time in seconds.

  • call_history_uuid

    string — The call history ID of the call.

  • call_id

    string — The ID of the phone call.

  • call_path

    array — The call segment path.

    Items:

    • answer_time

      string — The call answer time in GMT `date-time` format.

    • call_id

      string — The ID of the phone call.

    • call_type

      string, possible values: "general", "emergency" — The type of call.

    • callee_country_code

      string — The callee's country code.

    • callee_country_iso_code

      string — The callee's country ISO code.

    • callee_device_type

      string — The callee's device type.

    • callee_did_number

      string — The callee's DID number in e164 format.

    • callee_email

      string — The callee's email.

    • callee_ext_id

      string — The callee's extension ID.

    • callee_ext_number

      string — The extension number of the callee.

    • callee_ext_type

      string, possible values: "user", "call_queue", "auto_receptionist", "common_area", "zoom_room", "cisco_room", "shared_line_group", "group_call_pickup", "external_contact" — The callee's extension type.

    • callee_name

      string — The name of the callee.

    • callee_number_type

      string, possible values: "zoom_pstn", "zoom_toll_free_number", "external_pstn", "external_contact", "byoc", "byop", "3rd_party_contact_center", "zoom_service_number", "external_service_number", "zoom_contact_center", "meeting_phone_number", "meeting_id", "anonymous_number", "zra_phone_number" — The callee's number type.

    • caller_country_code

      string — The caller's country code.

    • caller_country_iso_code

      string — The caller's country ISO code.

    • caller_device_type

      string — The caller's device type.

    • caller_did_number

      string — The caller's DID number in e164 format.

    • caller_email

      string — The caller's email.

    • caller_ext_id

      string — The caller's extension ID.

    • caller_ext_number

      string — The extension number of the caller.

    • caller_ext_type

      string, possible values: "user", "call_queue", "auto_receptionist", "common_area", "zoom_room", "cisco_room", "shared_line_group", "group_call_pickup", "external_contact" — The caller's extension type.

    • caller_name

      string — The name of the caller.

    • caller_number_type

      string, possible values: "zoom_pstn", "zoom_toll_free_number", "external_pstn", "external_contact", "byoc", "byop", "3rd_party_contact_center", "zoom_service_number", "external_service_number", "zoom_contact_center", "meeting_phone_number", "meeting_id", "anonymous_number", "zra_phone_number" — The caller's number type.

    • client_code

      string — The client code for the call.

    • connect_type

      string, possible values: "internal", "external" — The connect type of call.

    • cost_center

      string — The name of the cost center of which the user belongs.

    • department

      string — The name of the department of which the user belongs.

    • device_private_ip

      string — The private IP of which the user belongs.

    • device_public_ip

      string — The public IP of which the user belongs

    • direction

      string, possible values: "inbound", "outbound" — The direction of the call.

    • end_time

      string — The call end time in GMT `date-time` format.

    • end_to_end

      boolean — A flag to indicate the call is end to End-to-End Encryption or not.

    • event

      string, possible values: "incoming", "transfer_from_zoom_contact_center", "shared_line_incoming", "outgoing", "call_me_on", "outgoing_to_zoom_contact_center", "warm_transfer", "forward", "ring_to_member", "overflow", "direct_transfer", "barge", "monitor", "whisper", "listen", "takeover", "conference_barge", "park", "timeout", "park_pick_up", "merge", "shared" — An event within a call log.

    • group_id

      string — The primary group of which the user belongs.

    • hide_caller_id

      boolean — A flag to indicate the call is hide caller ID or not.

    • hold_time

      integer — The call hold time in seconds.

    • id

      string — The ID of the call log.

    • is_node

      integer

    • node

      integer — Within one segment, a sequential number to indicate the orders of the events that starts from 0.

    • operator_ext_id

      string — The operator extension ID.

    • operator_ext_number

      string — The operator extension number.

    • operator_ext_type

      string, possible values: "user", "call_queue", "auto_receptionist", "common_area", "zoom_room", "cisco_room", "shared_line_group", "group_call_pickup", "external_contact" — The operator extension type.

    • operator_name

      string — The operator's name.

    • press_key

      string — The press key value for event press or input.

    • recording_id

      string — The unique identifier of the call recording.

    • recording_type

      string, possible values: "automatic", "ad-hoc" — The type of call recording.

    • result

      string, possible values: "answered", "accepted", "picked_up", "connected", "succeeded", "voicemail", "hang_up", "canceled", "call_failed", "unconnected", "rejected", "busy", "ring_timeout", "overflowed", "no_answer", "invalid_key", "invalid_operation", "abandoned", "system_blocked", "service_unavailable" — The detail result of an event for a call log.

    • result_reason

      string, possible values: "answered_by_other", "pickup_by_other", "call_out_by_other" — The reason of result of an event for a call log.

    • segment

      integer — A sequential number to indicate the orders of events that starts from 0.

    • site_id

      string — The name of the site ID of which the user belongs.

    • site_name

      string — The name of the site name of which the user belongs.

    • start_time

      string — The call start time in GMT `date-time` format.

    • voicemail_id

      string — The ID of the call voicemail.

    • waiting_time

      integer — The call wait time in seconds.

  • call_type

    string, possible values: "general", "emergency" — The type of call.

  • callee_account_code

    string — The callee's account code. To dial between accounts, use the format: [Account code] - [extension number].

  • callee_did_number

    string — The callee's DID number in e164 format.

  • callee_email

    string — The callee's email.

  • callee_ext_id

    string — The callee's extension ID.

  • callee_ext_number

    string — The extension number of the callee.

  • callee_ext_type

    string, possible values: "user", "call_queue", "auto_receptionist", "common_area", "zoom_room", "cisco_room", "shared_line_group", "group_call_pickup", "external_contact" — The callee's extension type.

  • callee_name

    string — The name of the callee.

  • caller_acconut_code

    string — The caller's account code. To dial between accounts, use the format: [Account code] - [extension number].

  • caller_did_number

    string — The caller's DID number in e164 format.

  • caller_email

    string — The caller's email.

  • caller_ext_id

    string — The caller's extension ID.

  • caller_ext_number

    string — The extension number of the caller.

  • caller_ext_type

    string, possible values: "user", "call_queue", "auto_receptionist", "common_area", "zoom_room", "cisco_room", "shared_line_group", "group_call_pickup", "external_contact" — The caller's extension type.

  • caller_name

    string — The name of the caller.

  • connect_type

    string, possible values: "internal", "external" — The connect type of call.

  • cost_center

    string — The name of the cost center of which the user belongs.

  • department

    string — The name of the department of which the user belongs.

  • direction

    string, possible values: "inbound", "outbound" — The direction of the call.

  • end_time

    string — The call end time in GMT `date-time` format.

  • end_to_end

    boolean — A flag to indicate the call is an end-to-end encryption or not.

  • group_id

    string — The primary group of which the user belongs.

  • hide_caller_id

    boolean — A flag to indicate the call is a hide caller ID or not.

  • id

    string — The ID of the call log summary.

  • international

    boolean, possible values: true, false — A flag to indicate the call is international or not.

  • site_id

    string — The name of the site ID of which the user belongs.

  • site_name

    string — The name of the site name of which the user belongs.

  • start_time

    string — The call start time in GMT `date-time` format.

Example:

{
  "id": "20211008-48c1dfd4-91ce-4df5-8495-7c9e33d10869",
  "call_history_uuid": "20211008-48c1dfd4-91ce-4df5-8495-7c9e33d10869",
  "call_id": "7018317023722949162",
  "connect_type": "internal",
  "call_type": "general",
  "direction": "inbound",
  "international": false,
  "hide_caller_id": true,
  "end_to_end": false,
  "caller_ext_id": "ATu63--9TjudZetpf4UuQg",
  "caller_name": "Caller name",
  "caller_did_number": "+12059300920",
  "caller_ext_number": "101229",
  "caller_email": "test@abc.com",
  "caller_ext_type": "user",
  "callee_ext_id": "ATu63--9TjudZetpf4UuQg",
  "callee_name": "Callee name",
  "callee_email": "test@abc.com",
  "callee_did_number": "+12059300920",
  "callee_ext_number": "101229",
  "callee_ext_type": "user",
  "department": "web-api1",
  "cost_center": "cost-center1",
  "site_id": "BpCTBMRARBefUrprildVqw",
  "group_id": "California",
  "site_name": "site name",
  "start_time": "2021-10-08T16:12:04Z",
  "answer_time": "2021-10-08T16:12:04Z",
  "end_time": "2021-10-08T16:12:15Z",
  "call_path": [
    {
      "id": "48c1dfd4-91ce-4df5-8495-7c9e33d10869",
      "call_id": "7018317023722949162",
      "connect_type": "internal",
      "call_type": "general",
      "direction": "inbound",
      "hide_caller_id": true,
      "end_to_end": false,
      "caller_ext_id": "ATu63--9TjudZetpf4UuQg",
      "caller_name": "Caller name",
      "caller_email": "test@abc.com",
      "caller_did_number": "+12059300920",
      "caller_ext_number": "101229",
      "caller_ext_type": "user",
      "caller_number_type": "external_pstn",
      "caller_device_type": "MAC_Client(6.0.2.33403)",
      "caller_country_iso_code": "US",
      "caller_country_code": "US",
      "callee_ext_id": "ATu63--9TjudZetpf4UuQg",
      "callee_name": "Callee name",
      "callee_did_number": "+12059300920",
      "callee_ext_number": "101229",
      "callee_email": "test@abc.com",
      "callee_ext_type": "user",
      "callee_number_type": "external_pstn",
      "callee_device_type": "MAC_Client(6.0.2.33403)",
      "callee_country_iso_code": "US",
      "callee_country_code": "US",
      "client_code": "1234",
      "department": "web-api1",
      "cost_center": "cost-center1",
      "site_id": "BpCTBMRARBefUrprildVqw",
      "group_id": "California",
      "site_name": "site name",
      "start_time": "2021-10-08T16:12:04Z",
      "answer_time": "2021-10-08T16:12:04Z",
      "end_time": "2021-10-08T16:12:15Z",
      "event": "outgoing",
      "result": "answered",
      "result_reason": "answered_by_other",
      "device_private_ip": "",
      "device_public_ip": "",
      "operator_ext_number": "3456",
      "operator_ext_id": "NN9rA4fZSsScB2YiCqw7Ig",
      "operator_ext_type": "user",
      "operator_name": "operator name",
      "press_key": "3",
      "segment": 0,
      "node": 0,
      "is_node": 0,
      "recording_id": "c71b360f6e774e3aa101453117b7e1a7",
      "recording_type": "automatic",
      "hold_time": 20,
      "waiting_time": 20,
      "voicemail_id": "6cd2da01bcaa47f58e3250a575c5f2bf"
    }
  ],
  "caller_acconut_code": "111",
  "callee_account_code": "222",
  "call_elements": [
    {
      "call_element_id": "48c1dfd4-91ce-4df5-8495-7c9e33d10869",
      "call_id": "7018317023722949162",
      "connect_type": "internal",
      "call_type": "general",
      "direction": "inbound",
      "hide_caller_id": true,
      "end_to_end": false,
      "caller_ext_id": "ATu63--9TjudZetpf4UuQg",
      "caller_name": "Caller name",
      "caller_email": "test@abc.com",
      "caller_did_number": "+12059300920",
      "caller_ext_number": "101229",
      "caller_ext_type": "user",
      "caller_number_type": "external_pstn",
      "caller_device_type": "MAC_Client(6.0.2.33403)",
      "caller_country_iso_code": "US",
      "caller_country_code": "US",
      "callee_ext_id": "ATu63--9TjudZetpf4UuQg",
      "callee_name": "Callee name",
      "callee_did_number": "+12059300920",
      "callee_ext_number": "101229",
      "callee_email": "test@abc.com",
      "callee_ext_type": "user",
      "callee_number_type": "external_pstn",
      "callee_device_type": "MAC_Client(6.0.2.33403)",
      "callee_country_iso_code": "US",
      "callee_country_code": "US",
      "client_code": "1234",
      "department": "web-api1",
      "cost_center": "cost-center1",
      "site_id": "BpCTBMRARBefUrprildVqw",
      "group_id": "California",
      "site_name": "site name",
      "start_time": "2021-10-08T16:12:04Z",
      "answer_time": "2021-10-08T16:12:04Z",
      "end_time": "2021-10-08T16:12:15Z",
      "event": "outgoing",
      "result": "answered",
      "result_reason": "answered_by_other",
      "device_private_ip": "",
      "device_public_ip": "",
      "operator_ext_number": "3456",
      "operator_ext_id": "NN9rA4fZSsScB2YiCqw7Ig",
      "operator_ext_type": "user",
      "operator_name": "operator name",
      "press_key": "3",
      "segment": 0,
      "node": 0,
      "is_node": 0,
      "recording_id": "c71b360f6e774e3aa101453117b7e1a7",
      "recording_type": "automatic",
      "hold_time": 20,
      "waiting_time": 20,
      "voicemail_id": "6cd2da01bcaa47f58e3250a575c5f2bf"
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 404 **HTTP Status Code:** `404` <br> Not Found
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Add a client code to a call history

  • Method: PATCH
  • Path: /phone/call_history/{callLogId}/client_code
  • Tags: Call Logs

Adds a client code to a call log. You can track call logs with a client code.

Prerequisites

  • Business or Education account
  • Zoom Phone license

Scopes: phone:write:admin

Granular Scopes: phone:update:call_log:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • client_code (required)

    string — The client code (3 to 16 digit number) to mark the call log.

Example:

{
  "client_code": "The client code (3 to 16 digit number) to mark the call log."
}

Responses

Status: 204 **HTTP Status Code:** `204` **No Content**Successfully added the client code to the call log.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `301` <br> Invalid client code: {client_code} <br> **Error Code:** `302` <br> Client code cannot be added to admin call log <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `300` <br> Call history not found: {callLogId} <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get call history detail ⚠️ Deprecated

  • Method: GET
  • Path: /phone/call_history_detail/{callHistoryId}
  • Tags: Call Logs

Returns the call history details for a given call log ID call history.

Prerequisites

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone_call_log:read,phone_call_log:read:admin,phone:read

Granular Scopes: phone:read:call_log:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status code:** `200` Call history detail returned.
Content-Type: application/json
  • answer_time

    string — The call answer time in GMT `date-time` format.

  • call_id

    string — The ID of the phone call.

  • call_path_id

    string — The call path ID of the call.

  • call_type

    string, possible values: "general", "emergency" — The type of call.

  • callee_account_code

    string — The callee's account code. To dial between accounts, use the format: [Account code] - [extension number].

  • callee_country_code

    string — The callee's country code.

  • callee_country_iso_code

    string — The callee's country ISO code.

  • callee_device_type

    string — The callee's device type.

  • callee_did_number

    string — The callee's DID number in e164 format.

  • callee_email

    string — The callee's email.

  • callee_ext_id

    string — The callee's extension ID.

  • callee_ext_number

    string — The callee's extension number.

  • callee_ext_type

    string, possible values: "user", "call_queue", "auto_receptionist", "common_area", "zoom_room", "cisco_room", "shared_line_group", "group_call_pickup", "external_contact" — The callee's extension type: * `user` * `call_queue` * `auto_receptionist` * `common_area` * `zoom_room` * `cisco_room` * `shared_line_group` * `group_call_pickup` * `external_contact`.

  • callee_name

    string — The callee's name.

  • callee_number_type

    string, possible values: "zoom_pstn", "zoom_toll_free_number", "external_pstn", "external_contact", "byoc", "byop", "3rd_party_contact_center", "zoom_service_number", "external_service_number", "zoom_contact_center", "meeting_phone_number", "meeting_id", "anonymous_number", "zra_phone_number" — The callee's number type.

  • caller_account_code

    string — The caller's account code. To dial between accounts, use the format: [Account code] - [extension number].

  • caller_country_code

    string — The caller's country code.

  • caller_country_iso_code

    string — The caller's country ISO code.

  • caller_device_type

    string — The caller's device type.

  • caller_did_number

    string — The caller's DID number in e164 format.

  • caller_email

    string — The caller's email.

  • caller_ext_id

    string — The caller's extension ID.

  • caller_ext_number

    string — The caller's extension number .

  • caller_ext_type

    string, possible values: "user", "call_queue", "auto_receptionist", "common_area", "zoom_room", "cisco_room", "shared_line_group", "group_call_pickup", "external_contact" — The caller's extension type: * `user` * `call_queue` * `auto_receptionist` * `common_area` * `zoom_room` * `cisco_room` * `shared_line_group` * `group_call_pickup` * `external_contact`.

  • caller_name

    string — The caller' name.

  • caller_number_type

    string, possible values: "zoom_pstn", "zoom_toll_free_number", "external_pstn", "external_contact", "byoc", "byop", "3rd_party_contact_center", "zoom_service_number", "external_service_number", "zoom_contact_center", "meeting_phone_number", "meeting_id", "anonymous_number", "zra_phone_number" — The caller's number type.

  • client_code

    string — The client code for the call.

  • connect_type

    string, possible values: "internal", "external" — The connect type of call.

  • cost_center

    string — The name of the cost center of which the user belongs.

  • department

    string — The name of the user's department.

  • device_private_ip

    string — The private IP of which the user belongs.

  • device_public_ip

    string — The public IP of which the user belongs.

  • direction

    string, possible values: "inbound", "outbound" — The direction of the call.

  • end_time

    string — The call end time in GMT `date-time` format.

  • end_to_end

    boolean — A flag to indicate the call is end to End-to-End Encryption or not.

  • event

    string, possible values: "incoming", "transfer_from_zoom_contact_center", "shared_line_incoming", "outgoing", "call_me_on", "outgoing_to_zoom_contact_center", "warm_transfer", "forward", "ring_to_member", "overflow", "direct_transfer", "barge", "monitor", "whisper", "listen", "takeover", "conference_barge", "park", "timeout", "park_pick_up", "merge", "shared" — An event within a call log.

  • group_id

    string — The primary group of which the user belongs.

  • hide_caller_id

    boolean — A flag to indicate the call is hide caller ID or not.

  • hold_time

    integer — The call hold time in seconds.

  • id

    string — The ID of the call history.

  • is_node

    integer

  • node

    integer — Within one segment, a sequential number to indicate the orders of the events that start from 0.

  • operator_ext_id

    string — The operator's extension ID.

  • operator_ext_number

    string — The operator's extension number.

  • operator_ext_type

    string, possible values: "user", "call_queue", "auto_receptionist", "common_area", "zoom_room", "cisco_room", "shared_line_group", "group_call_pickup", "external_contact" — The operator's extension type.

  • operator_name

    string — The operator's name.

  • press_key

    string — The key value associated with a press or input event.

  • recording_id

    string — The unique identifier of the call recording.

  • recording_type

    string, possible values: "ad-hoc", "automatic" — The type of call recording.

  • result

    string, possible values: "answered", "accepted", "picked_up", "connected", "succeeded", "voicemail", "hang_up", "canceled", "call_failed", "unconnected", "rejected", "busy", "ring_timeout", "overflowed", "no_answer", "invalid_key", "invalid_operation", "abandoned", "system_blocked", "service_unavailable" — The detailed results of an event for a call log.

  • result_reason

    string, possible values: "answered_by_other", "pickup_by_other", "call_out_by_other" — The cause or outcome of an event in a call log.

  • segment

    integer — A sequential number to indicate the orders of events that starts from 0.

  • site_id

    string — The name of the site ID of which the user belongs.

  • site_name

    string — The site name of which the user belongs.

  • start_time

    string — The call start time in GMT `date-time` format.

  • voicemail_id

    string — The ID of the call voicemail.

  • waiting_time

    integer — The call wait time in seconds.

Example:

{
  "id": "20211008-fe9c3900-5187-4254-9359-590afbc40bc9",
  "call_path_id": "20211008-48c1dfd4-91ce-4df5-8495-7c9e33d10869",
  "call_id": "7018317023722949162",
  "connect_type": "internal",
  "call_type": "general",
  "direction": "inbound",
  "hide_caller_id": true,
  "end_to_end": false,
  "caller_ext_id": "ATu63--9TjudZetpf4UuQg",
  "caller_name": "Caller name",
  "caller_email": "test@abc.com",
  "caller_did_number": "+12059300920",
  "caller_ext_number": "101229",
  "caller_ext_type": "user",
  "caller_number_type": "external_pstn",
  "caller_device_type": "MAC_Client(6.0.2.33403)",
  "caller_country_iso_code": "US",
  "caller_country_code": "1",
  "callee_ext_id": "ATu63--9TjudZetpf4UuQg",
  "callee_name": "Callee name",
  "callee_did_number": "+12059300920",
  "callee_ext_number": "101229",
  "callee_email": "test@abc.com",
  "callee_ext_type": "user",
  "callee_number_type": "external_pstn",
  "callee_device_type": "MAC_Client(6.0.2.33403)",
  "callee_country_iso_code": "US",
  "callee_country_code": "1",
  "client_code": "1234",
  "department": "web-api1",
  "cost_center": "cost-center1",
  "site_id": "BpCTBMRARBefUrprildVqw",
  "group_id": "California",
  "site_name": "site name",
  "start_time": "2021-10-08T16:12:04Z",
  "answer_time": "2021-10-08T16:12:04Z",
  "end_time": "2021-10-08T16:12:15Z",
  "event": "outgoing",
  "result": "answered",
  "result_reason": "answered_by_other",
  "device_private_ip": "",
  "device_public_ip": "",
  "operator_ext_number": "3456",
  "operator_ext_id": "NN9rA4fZSsScB2YiCqw7Ig",
  "operator_ext_type": "user",
  "operator_name": "operator name",
  "press_key": "3",
  "segment": 0,
  "node": 0,
  "is_node": 0,
  "recording_id": "c71b360f6e774e3aa101453117b7e1a7",
  "recording_type": "automatic",
  "hold_time": 20,
  "waiting_time": 20,
  "voicemail_id": "6cd2da01bcaa47f58e3250a575c5f2bf",
  "caller_account_code": "111",
  "callee_account_code": "222"
}
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `301` <br> Call history does not exist for call log Id: {callLogId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get account's call logs ⚠️ Deprecated

  • Method: GET
  • Path: /phone/call_logs
  • Tags: Call Logs

Returns an account's call logs.

Prerequisites:

  • A Business or Enterprise account
  • A Zoom Phone license
  • Account owner or a role with Zoom Phone management

Scopes: phone:read:admin,phone_call_log:read:admin

Granular Scopes: phone:read:list_call_logs:admin

Rate Limit Label: HEAVY

Responses

Status: 200 **HTTP Status Code:** `200` Account's call logs returned.
Content-Type: application/json
  • call_logs

    array — Call Log

    Items:

    • answer_start_time

      string, format: date-time — The GMT date and time at which the inbound call was answered. The value of this field is in `yyyy-MM-dd'T'HH:mm:ss'Z'` format.

    • call_end_time

      string — The call end time in GMT `date-time` format.

    • call_id

      string — The unique identifier of the phone call.

    • call_type

      string, possible values: "voip", "pstn", "tollfree", "international", "contactCenter" — The type of call: * `voip` (Voice over IP) * `pstn` (Public Switched Telephone Network) * `tollfree` * `international` * `contactCenter`

    • callee_country_code

      string — The country calling code.

    • callee_country_iso_code

      string — The ISO alpha2 country code.

    • callee_did_number

      string — The callee's DID (direct inward dial) number in e164 format.

    • callee_name

      string — The contact name of the callee.

    • callee_number

      string — The number of the callee.

    • callee_number_source

      string, possible values: "internal", "external", "byop" — Ths field indicates where the phone number comes from: * `internal` &mdash; ZP native. * `external` &mdash; BYOC or Provider Exchange. * `byop` &mdash; Premise peering. Not available when `callee_number_type = 1`.

    • callee_number_type

      integer, possible values: 1, 2, 3 — The callee's number type: * `1` &mdash; Extension number. * `2` &mdash; Phone number. * `3` &mdash; Customized emergency number.

    • caller_billing_reference_id

      string — The billing reference ID (for peering phone numbers).

    • caller_country_code

      string — The country calling code.

    • caller_country_iso_code

      string — The ISO alpha2 country code.

    • caller_did_number

      string — The caller's DID (direct inward dial) number in e164 format.

    • caller_name

      string — The contact name of the caller.

    • caller_number

      string — The number of the caller.

    • caller_number_source

      string, possible values: "internal", "external", "byop" — This field indicates where the phone number comes from: * `internal` &mdash; ZP native. * `external` &mdash; BYOC or Provider Exchange. * `byop` &mdash; Premise peering. Not available when `caller_number_type = 1`.

    • caller_number_type

      integer, possible values: 1, 2 — The caller's number type: * `1` &mdash; Extension number. * `2` &mdash; Phone number.

    • charge

      string — The billing charge for the call.

    • client_code

      string — Client code.

    • cost_center

      string — The cost center name to which a user belongs.

    • date_time

      string — Start time of the call

    • department

      string — Name of the user's department.

    • device_private_ip

      string — Display the device's private IP address if the account has the `show_device_ip_for_call_log` parameter set to `enabled`.

    • device_public_ip

      string — Display the device's public IP address if the account has the `show_device_ip_for_call_log` parameter set to `enabled`.

    • direction

      string — Direction of the call. &quot;inbound&quot; | &quot;outbound&quot;

    • duration

      integer — Duration of the billing call in seconds.

    • hold_time

      integer — Hold time during a call in seconds.

    • id

      string — Call Log ID

    • owner

      object

      • extension_number

        integer, format: int64 — The owner's extension number.

      • id

        string — The owner ID.

      • name

        string — The owner name.

      • type

        string, possible values: "user", "callQueue", "autoReceptionist", "commonArea", "sharedLineGroup" — The owner type: *`user` *`callQueue` *`autoReceptionist` *`commonArea` *`sharedLineGroup`

    • path

      string — Path of the call.

    • rate

      string — Billing rate for the call.

    • recording_id

      string — Unique identifier of the call recording.

    • recording_type

      string, possible values: "OnDemand", "Automatic" — Type of call recording: `1` OnDemand `2` Automatic

    • result

      string — Result of the call: `Missed` | `Voicemail` | `Call connected` | `Rejected` | `Blocked`| `Busy`| `Wrong Number`| `No Answer`| `International Disabled`| `Internal Error`| `Call failed` | `Restricted Number`| `Call Cancel` | `Message`| `Answered by Other Member` | `Call Cancelled` | `Park` | `Parked` | `Blocked by non-GAL` | `Blocked by info-Barriers` | `Recording Failure`| `Recorded`| `Auto Recorded`.

    • site

      object

    • user_id

      string — User ID of the call log owner.

    • waiting_time

      integer — Duration that a **call queue member** takes to answer a call from the time it started ringing. The value of the duration is in seconds.

  • from

    string — Start time and date of the log.

  • next_page_token

    string — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • page_count

    integer — Total number of pages

  • page_size

    integer — The number of records returned within a single API call for each page.

  • to

    string — End time and date of the log

  • total_records

    integer — The total number of records returned.

Example:

{
  "call_logs": [
    {
      "answer_start_time": "2021-10-12T16:00:08Z",
      "call_end_time": "2021-10-08T16:12:04Z",
      "call_id": "7018210229361148737",
      "call_type": "voip",
      "callee_country_code": "1",
      "callee_country_iso_code": "US",
      "callee_did_number": "+12055432724",
      "callee_name": "Callee name",
      "callee_number": "1001",
      "callee_number_type": 1,
      "callee_number_source": "internal",
      "caller_country_code": "1",
      "caller_country_iso_code": "US",
      "caller_did_number": "+12055432724",
      "caller_name": "Caller name",
      "caller_number": "+12059300920",
      "caller_number_type": 1,
      "caller_number_source": "internal",
      "caller_billing_reference_id": "ZoomTelecom123456",
      "charge": "$0.0255",
      "client_code": "123",
      "date_time": "2021-10-08T16:23:34Z",
      "device_private_ip": "12",
      "device_public_ip": "23",
      "direction": "inbound",
      "duration": 25,
      "id": "48c1dfd4-91ce-4df5-8495-7c9e33d10869",
      "owner": {
        "extension_number": 1000001019,
        "id": "N3hAhug-QVyFPYZJrHpRaQ",
        "name": "123@test.com",
        "type": "user"
      },
      "path": "pstn",
      "rate": "0.0255",
      "recording_id": "c71b360f6e774e3aa101453117b7e1a7",
      "recording_type": "OnDemand",
      "result": "Call connected",
      "site": {
        "id": "8f71O6rWT8KFUGQmJIFAdQ",
        "name": "Main Site"
      },
      "user_id": "IqoQmDRqS-aIoXqV_FZ88w",
      "hold_time": 5,
      "waiting_time": 5,
      "department": "web-api1",
      "cost_center": "cost-center1"
    }
  ],
  "from": "2021-10-01",
  "next_page_token": "AmhfoKtF2Ey4TaPg2iZsAcmetRLs2ZY0Sk2",
  "page_count": 2,
  "page_size": 30,
  "to": "2021-10-12",
  "total_records": 54
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `3001` <br> Error retrieving call logs. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get call log details ⚠️ Deprecated

  • Method: GET
  • Path: /phone/call_logs/{callLogId}
  • Tags: Call Logs

Returns information about a call log.

Prerequisites:

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:read:admin,phone_call_log:read:admin,phone:read,phone_call_log:read

Granular Scopes: phone:read:call_log:admin

Rate Limit Label: LIGHT

Responses

Status: 200 The details of the call log.
Content-Type: application/json
  • call_id

    string — The unique identifier of the phone call.

  • call_type

    string, possible values: "voip", "pstn", "tollfree", "international", "contactCenter" — The type of call: * `voip` (Voice over IP) * `pstn` (Public Switched Telephone Network) * `tollfree` * `international` * `contactCenter`

  • callee_country_code

    string — The country calling code.

  • callee_country_iso_code

    string — The ISO alpha2 country code.

  • callee_deleted_time

    string — The datetime the extension was deleted. It exists only when `extension_status` is `deleted`.

  • callee_did_number

    string — The callee's DID (direct inward dial) number in e164 format.

  • callee_name

    string — The contact name of callee.

  • callee_number

    string — The number of callee.

  • callee_number_source

    string, possible values: "internal", "external", "byop" — This field indicates where the phone number comes from: * `internal` &mdash; ZP native. * `external` &mdash; BYOC or Provider Exchange. * `byop` &mdash; Premise peering. Not available when `callee_number_type = 1`.

  • callee_number_type

    integer, possible values: 1, 2, 3 — The callee's number type: * `1` &mdash; Extension number. * `2` &mdash; Phone number. * `3` &mdash; Customized emergency number.

  • callee_status

    string, possible values: "inactive", "deleted" — This field indicates the status of extension. * `inactive` * `deleted`

  • caller_billing_reference_id

    string — The billing reference ID (for peering phone numbers).

  • caller_country_code

    string — The country calling code.

  • caller_country_iso_code

    string — The ISO alpha2 country code.

  • caller_deleted_time

    string — The datetime the extension was deleted. Exists only when extension_status is `deleted`.

  • caller_did_number

    string — The caller's DID (direct inward dial) number in e164 format.

  • caller_name

    string — The contact name of caller.

  • caller_number

    string — The number of the caller.

  • caller_number_source

    string, possible values: "internal", "external", "byop" — This field Iindicates where the phone number comes from: * `internal` &mdash; ZP native. * `external` &mdash; BYOC or Provider Exchange. * `byop` &mdash; Premise peering. Not available when `caller_number_type = 1`.

  • caller_number_type

    integer, possible values: 1, 2 — The caller's number type: * `1` &mdash; Extension number. * `2` &mdash; Phone number.

  • caller_status

    string, possible values: "inactive", "deleted" — This field indicates the status of extension. * `inactive` * `deleted`

  • cost_center

    string — The cost center name to which a user belongs.

  • date_time

    string — The start time of the call.

  • department

    string — The name of the user's department.

  • device_private_ip

    string — This field displays the device's private IP address if the account has the `show_device_ip_for_call_log` parameter set to `enabled`.

  • device_public_ip

    string — This field displays the device's public IP address if the account has the `show_device_ip_for_call_log` parameter set to `enabled`.

  • direction

    string, possible values: "inbound", "outbound" — The direction of the call: `inbound` | `outbound`

  • duration

    integer — The duration of the call in seconds.

  • has_recording

    boolean — Whether the call has a recording. See [announcement](https://marketplace.zoom.us/docs/guides/stay-up-to-date/announcements#deprecation-of-the-has_voicemail-and-has_recording-responses-in-phone-api) from July, 2021.

  • has_voicemail

    boolean — Whether the call has a voicemail. See [announcement](https://marketplace.zoom.us/docs/guides/stay-up-to-date/announcements#deprecation-of-the-has_voicemail-and-has_recording-responses-in-phone-api) from July, 2021.

  • id

    string — The call log ID.

  • log_details

    array — The call segment details.

    Items:

    • date_time

      string — The start time of the call.

    • device_private_ip

      string — This field displays the device's private IP address if the account has the `show_device_ip_for_call_log` parameter set to `enabled`.

    • device_public_ip

      string — This field displays the device's public IP address if the account has the `show_device_ip_for_call_log` parameter set to `enabled`.

    • duration

      integer — The duration of the call in seconds.

    • forward_to

      object — The information about the call's forwarding.

      • extension_deleted_time

        string — The datetime the extension was deleted. Exists only when extension_status is `deleted`.

      • extension_number

        string — The call forward's extension number.

      • extension_status

        string, possible values: "inactive", "deleted" — This field indicates the status of extension. * `inactive` * `deleted`

      • id

        string — The call forward's unique ID.

      • name

        string — The call forward's name.

      • type

        string, possible values: "user", "callQueue", "autoReceptionist", "sharedLineGroup" — The call forwarding recipient type: * `user` * `callQueue` * `autoReceptionist` * `sharedLineGroup`

    • hold_time

      integer — The hold time during a call in seconds.

    • id

      string — The call log ID.

    • path

      string — The path of the call.

    • result

      string — The result of the call: `Missed` | `Voicemail`| `Call connected`|`Rejected`| `Blocked`| `Busy`|`Wrong Number`| `No Answer`| `International Disabled`|`Internal Error`| `Call failed`| `Restricted Number`|`Call Cancel`| `Message`| `Answered by Other Member`|`Call Cancelled`| `Park`| `Parked`| `Blocked by non-GAL`| `Blocked by info-Barriers`|`Recording Failure`| `Recorded`| `Auto Recorded`.

    • site

      object

  • path

    string — The path of the call.

  • result

    string — The result of the call: `Missed` | `Voicemail` | `Call connected` | `Rejected` | `Blocked`| `Busy`| `Wrong Number`| `No Answer`| `International Disabled`| `Internal Error`| `Call failed` | `Restricted Number`| `Call Cancel` | `Message`| `Answered by Other Member` | `Call Cancelled` | `Park` | `Parked` | `Blocked by non-GAL` | `Blocked by info-Barriers` | `Recording Failure`| `Recorded`| `Auto Recorded`.

Example:

{
  "call_id": "7018317023722949162",
  "call_type": "voip",
  "callee_country_code": "1",
  "callee_country_iso_code": "US",
  "callee_did_number": "+12055432724",
  "callee_name": "Callee name",
  "callee_number": "1018",
  "callee_number_type": 1,
  "callee_number_source": "internal",
  "callee_status": "deleted",
  "callee_deleted_time": "2022-10-14T22:10:54Z",
  "caller_country_code": "1",
  "caller_country_iso_code": "US",
  "caller_did_number": "+12055432724",
  "caller_name": "Caller name",
  "caller_number": "+16622001852",
  "caller_number_type": 1,
  "caller_number_source": "internal",
  "caller_billing_reference_id": "ZoomTelecom123456",
  "caller_status": "deleted",
  "caller_deleted_time": "2022-10-14T22:10:54Z",
  "date_time": "2021-10-12T22:54:31Z",
  "device_private_ip": "12",
  "device_public_ip": "23",
  "direction": "inbound",
  "duration": 20,
  "id": "a55d94f7-27ea-4dbb-ab25-028f2c8d55bd",
  "log_details": [
    {
      "date_time": "2021-10-12T22:54:31Z",
      "hold_time": 5,
      "device_private_ip": "12",
      "device_public_ip": "23",
      "duration": 20,
      "forward_to": {
        "extension_number": "1002",
        "id": "1234abcd",
        "name": "name",
        "type": "user",
        "extension_status": "deleted",
        "extension_deleted_time": "2022-10-14T22:10:54Z"
      },
      "id": "a55d94f7-27ea-4dbb-ab25-028f2c8d55bd",
      "path": "callQueue",
      "result": "Call connected",
      "site": {
        "id": "8f71O6rWT8KFUGQmJIFAdQ",
        "name": "Main Site"
      }
    }
  ],
  "path": "callQueue",
  "result": "Call connected",
  "department": "web-api1",
  "cost_center": "cost-center1"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Add a client code to a call log ⚠️ Deprecated

  • Method: PUT
  • Path: /phone/call_logs/{callLogId}/client_code
  • Tags: Call Logs

Adds a client code to a call log. You can track call logs with a client code.

Prerequisites:

  • Business or Education account
  • Zoom Phone license

Scopes: phone:write:admin

Granular Scopes: phone:update:call_log:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • client_code (required)

    string — The client code (3 to 16 digit number) to mark the call log.

Example:

{
  "client_code": "123"
}

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Successfully added the client code to the call log.
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `404` <br> Validation Failed. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get User AI Call Summary Detail

  • Method: GET
  • Path: /phone/user/{userId}/ai_call_summary/{aiCallSummaryId}
  • Tags: Call Logs

Returns AI call summary details. For user-level apps, pass the me value instead of the userId parameter.

Prerequisites:

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:read:admin,phone:read

Granular Scopes: phone:read:ai_call_summary,phone:read:ai_call_summary:admin

Rate Limit Label: MEDIUM

Responses

Status: 200 **HTTP Status code:** `200`User AI call summary returned.
Content-Type: application/json
  • account_id

    string — The ID of the account.

  • ai_call_summary_id

    string — The ID of the AI call summary.

  • call_id

    string — The ID of the phone call.

  • call_summary

    string — The recap of the call summary.

  • call_summary_rate

    string, possible values: "thumb_up", "thumb_down" — The call summary rate.

  • created_time

    string — The created time in GMT `date-time` format.

  • detailed_summary

    string — The detailed version of the call summary.

  • edited

    boolean — The flag indicates if the call summary is modified.

  • modified_time

    string — The modified time in GMT `date-time` format.

  • next_steps

    string — The next step in the call summary.

  • transcript_language

    string — The transcription language ID.

  • user_id

    string — The owner's user ID.

Example:

{
  "ai_call_summary_id": "HfBQmSIARZi5zeDMmofwTA",
  "account_id": "A88lsb7WQ46FwTeNe8jsMw",
  "call_id": "7018317023722949162",
  "user_id": "x2ci3VDeQEqJsuHkn5oRzg",
  "call_summary_rate": "thumb_up",
  "transcript_language": "en",
  "call_summary": "Tom discussed his personal beliefs and values, including his support for certain political figures and his advocacy for various social causes.",
  "next_steps": "Tom will provide PPT next Tuesday.",
  "detailed_summary": "Tom discussed ...",
  "created_time": "2023-10-08T16:12:04Z",
  "modified_time": "2023-10-08T16:12:04Z",
  "edited": true
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Validation Failed <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get user's call history

  • Method: GET
  • Path: /phone/users/{userId}/call_history
  • Tags: Call Logs

Returns a user's Zoom phone call history.

For user-level apps, pass the me value instead of the userId parameter.

Prerequisites

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:read:admin,phone_call_log:read

Granular Scopes: phone:read:list_call_logs:admin,phone:read:list_call_logs

Rate Limit Label: MEDIUM

Responses

Status: 200 **HTTP Status Code:** `200` User's call history returned.
Content-Type: application/json
  • call_elements

    array — The call elements.

    Items:

    • answer_time

      string — The call answer time in GMT `date-time` format.

    • call_element_id

      string — The ID of the call element.

    • call_history_uuid

      string — The ID of the call history.

    • call_id

      string — The ID of the phone call.

    • call_type

      string, possible values: "general", "emergency" — The type of call.

    • callee_account_code

      string — The callee's account code. To dial between accounts, use the format: [Account code] - [extension number].

    • callee_cost_center

      string — The callee's cost center.

    • callee_country_code

      string — The callee's country code.

    • callee_country_iso_code

      string — The callee's country ISO code.

    • callee_department

      string — The callee's department.

    • callee_device_private_ip

      string — The callee's private IP.

    • callee_device_public_ip

      string — The callee's public IP.

    • callee_device_type

      string — The callee's device type.

    • callee_did_number

      string — The callee's DID number in e164 format.

    • callee_email

      string — The callee's email.

    • callee_employee_id

      string — Ther callee's employee id

    • callee_ext_id

      string — The callee's extension ID.

    • callee_ext_number

      string — The extension number of the callee.

    • callee_ext_type

      string, possible values: "user", "call_queue", "auto_receptionist", "common_area", "zoom_room", "cisco_room", "shared_line_group", "group_call_pickup", "external_contact" — The callee's extension type.

    • callee_name

      string — The name of the callee.

    • callee_number_type

      string, possible values: "zoom_pstn", "zoom_toll_free_number", "external_pstn", "external_contact", "byoc", "byop", "3rd_party_contact_center", "zoom_service_number", "external_service_number", "zoom_contact_center", "meeting_phone_number", "meeting_id", "anonymous_number", "zoom_revenue_accelerator" — The callee's number type.

    • callee_site_id

      string — The callee's site ID.

    • caller_account_code

      string — The caller's account code. To dial between accounts, use the format: [Account code] - [extension number].

    • caller_cost_center

      string — The caller's cost center.

    • caller_country_code

      string — The caller's country code.

    • caller_country_iso_code

      string — The caller's country ISO code.

    • caller_department

      string — The caller's department.

    • caller_device_private_ip

      string — The caller's private IP.

    • caller_device_public_ip

      string — The caller's public IP.

    • caller_device_type

      string — The caller's device type.

    • caller_did_number

      string — The caller's DID number in e164 format.

    • caller_email

      string — The caller's email.

    • caller_employee_id

      string — Ther caller's employee ID.

    • caller_ext_id

      string — The caller's extension ID.

    • caller_ext_number

      string — The extension number of the caller.

    • caller_ext_type

      string, possible values: "user", "call_queue", "auto_receptionist", "common_area", "zoom_room", "cisco_room", "shared_line_group", "group_call_pickup", "external_contact" — The caller's extension type.

    • caller_name

      string — The name of the caller.

    • caller_number_type

      string, possible values: "zoom_pstn", "zoom_toll_free_number", "external_pstn", "external_contact", "byoc", "byop", "3rd_party_contact_center", "zoom_service_number", "external_service_number", "zoom_contact_center", "meeting_phone_number", "meeting_id", "anonymous_number", "zoom_revenue_accelerator" — The caller's number type.

    • caller_site_id

      string — The caller's site ID.

    • connect_type

      string, possible values: "internal", "external" — The connect type of call.

    • direction

      string, possible values: "inbound", "outbound" — The direction of the call.

    • end_time

      string — The call end time in GMT `date-time` format.

    • end_to_end

      boolean — A flag to indicate the call is end to End-to-End Encryption or not.

    • event

      string, possible values: "incoming", "transfer_from_zoom_contact_center", "shared_line_incoming", "outgoing", "call_me_on", "outgoing_to_zoom_contact_center", "warm_transfer", "forward", "ring_to_member", "overflow", "direct_transfer", "barge", "monitor", "whisper", "listen", "takeover", "conference_barge", "park", "timeout", "park_pick_up", "merge", "shared" — An event within a call log.

    • group_id

      string — The primary group of which the user belongs.

    • hide_caller_id

      boolean — A flag to indicate the call is hide caller ID or not.

    • hold_time

      integer — The call hold time in seconds.

    • operator_ext_id

      string — The operator extension ID.

    • operator_ext_number

      string — The operator extension number.

    • operator_ext_type

      string, possible values: "user", "call_queue", "auto_receptionist", "common_area", "zoom_room", "cisco_room", "shared_line_group", "group_call_pickup", "external_contact" — The operator extension type.

    • operator_name

      string — The operator's name.

    • recording_id

      string — The unique identifier of the call recording.

    • recording_type

      string, possible values: "ad-hoc", "automatic" — The type of call recording.

    • result

      string, possible values: "answered", "accepted", "picked_up", "connected", "succeeded", "voicemail", "hang_up", "canceled", "call_failed", "unconnected", "rejected", "busy", "ring_timeout", "overflowed", "no_answer", "invalid_key", "invalid_operation", "abandoned", "system_blocked", "service_unavailable" — The detail result of an event for a call log.

    • result_reason

      string, possible values: "answered_by_other", "pickup_by_other", "call_out_by_other" — The reason of result of an event for a call log.

    • start_time

      string — The call start time in GMT `date-time` format.

    • talk_time

      integer — The call talk time in seconds.

    • voicemail_id

      string — The ID of the call voicemail.

    • wait_time

      integer — The call wait time in seconds.

  • call_logs

    array — The call history.

    Items:

    • answer_time

      string — The call answer time in GMT `date-time` format.

    • call_id

      string — The ID of the phone call.

    • call_path_id

      string — The call path ID of the call.

    • call_type

      string, possible values: "general", "emergency" — The type of call.

    • callee_account_code

      string — The callee's account code. To dial between accounts, use the format: [Account code] - [extension number].

    • callee_cost_center

      string — The callee's cost center.

    • callee_country_code

      string — The callee's country code.

    • callee_country_iso_code

      string — The callee's country ISO code.

    • callee_department

      string — The callee's department.

    • callee_device_private_ip

      string — The callee's private IP.

    • callee_device_public_ip

      string — The callee's public IP.

    • callee_device_type

      string — The callee's device type.

    • callee_did_number

      string — The callee's DID number in e164 format.

    • callee_email

      string — The callee's email.

    • callee_employee_id

      string — Ther callee's employee id

    • callee_ext_id

      string — The callee's extension ID.

    • callee_ext_number

      string — The extension number of the callee.

    • callee_ext_type

      string, possible values: "user", "call_queue", "auto_receptionist", "common_area", "zoom_room", "cisco_room", "shared_line_group", "group_call_pickup", "external_contact" — The callee's extension type.

    • callee_name

      string — The name of the callee.

    • callee_number_type

      string, possible values: "zoom_pstn", "zoom_toll_free_number", "external_pstn", "external_contact", "byoc", "byop", "3rd_party_contact_center", "zoom_service_number", "external_service_number", "zoom_contact_center", "meeting_phone_number", "meeting_id", "anonymous_number", "zoom_revenue_accelerator" — The callee's number type.

    • callee_site_id

      string — The callee's site ID.

    • caller_account_code

      string — The caller's account code. To dial between accounts, use the format: [Account code] - [extension number].

    • caller_cost_center

      string — The caller's cost center.

    • caller_country_code

      string — The caller's country code.

    • caller_country_iso_code

      string — The caller's country ISO code.

    • caller_department

      string — The caller's department.

    • caller_device_private_ip

      string — The caller's private IP.

    • caller_device_public_ip

      string — The caller's public IP.

    • caller_device_type

      string — The caller's device type.

    • caller_did_number

      string — The caller's DID number in e164 format.

    • caller_email

      string — The caller's email.

    • caller_employee_id

      string — Ther caller's employee ID.

    • caller_ext_id

      string — The caller's extension ID.

    • caller_ext_number

      string — The extension number of the caller.

    • caller_ext_type

      string, possible values: "user", "call_queue", "auto_receptionist", "common_area", "zoom_room", "cisco_room", "shared_line_group", "group_call_pickup", "external_contact" — The caller's extension type.

    • caller_name

      string — The name of the caller.

    • caller_number_type

      string, possible values: "zoom_pstn", "zoom_toll_free_number", "external_pstn", "external_contact", "byoc", "byop", "3rd_party_contact_center", "zoom_service_number", "external_service_number", "zoom_contact_center", "meeting_phone_number", "meeting_id", "anonymous_number", "zoom_revenue_accelerator" — The caller's number type.

    • caller_site_id

      string — The caller's site ID.

    • connect_type

      string, possible values: "internal", "external" — The connect type of call.

    • direction

      string, possible values: "inbound", "outbound" — The direction of the call.

    • end_time

      string — The call end time in GMT `date-time` format.

    • end_to_end

      boolean — A flag to indicate the call is end to End-to-End Encryption or not.

    • event

      string, possible values: "incoming", "transfer_from_zoom_contact_center", "shared_line_incoming", "outgoing", "call_me_on", "outgoing_to_zoom_contact_center", "warm_transfer", "forward", "ring_to_member", "overflow", "direct_transfer", "barge", "monitor", "whisper", "listen", "takeover", "conference_barge", "park", "timeout", "park_pick_up", "merge", "shared" — An event within a call log.

    • group_id

      string — The primary group of which the user belongs.

    • hide_caller_id

      boolean — A flag to indicate the call is hide caller ID or not.

    • hold_time

      integer — The call hold time in seconds.

    • id

      string — The ID of the call history.

    • operator_ext_id

      string — The operator extension ID.

    • operator_ext_number

      string — The operator extension number.

    • operator_ext_type

      string, possible values: "user", "call_queue", "auto_receptionist", "common_area", "zoom_room", "cisco_room", "shared_line_group", "group_call_pickup", "external_contact" — The operator extension type.

    • operator_name

      string — The operator's name.

    • recording_id

      string — The unique identifier of the call recording.

    • recording_type

      string, possible values: "ad-hoc", "automatic" — The type of call recording.

    • result

      string, possible values: "answered", "accepted", "picked_up", "connected", "succeeded", "voicemail", "hang_up", "canceled", "call_failed", "unconnected", "rejected", "busy", "ring_timeout", "overflowed", "no_answer", "invalid_key", "invalid_operation", "abandoned", "system_blocked", "service_unavailable" — The detail result of an event for a call log.

    • result_reason

      string, possible values: "answered_by_other", "pickup_by_other", "call_out_by_other" — The reason of result of an event for a call log.

    • start_time

      string — The call start time in GMT `date-time` format.

    • talk_time

      integer — The call talk time in seconds.

    • voicemail_id

      string — The ID of the call voicemail.

    • wait_time

      integer — The call wait time in seconds.

  • from

    string — The start time and date of the log.

  • next_page_token

    string — The next page token paginates through a large set of results. A next page token is returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • page_count

    integer — The total number of pages

  • page_size

    integer — The number of records returned within a single API call for each page.

  • to

    string — The end time and date of the log

  • total_records

    integer — The total number of records returned.

Example:

{
  "call_logs": [
    {
      "id": "20231008-48c1dfd4-91ce-4df5-8495-7c9e33d10869",
      "call_path_id": "20231008-48c1dfd4-91ce-4df5-8495-7c9e33d10869",
      "call_id": "7018317023722949162",
      "group_id": "_sj190JDFasa19321_adA7",
      "connect_type": "internal",
      "call_type": "general",
      "direction": "inbound",
      "hide_caller_id": true,
      "end_to_end": false,
      "caller_ext_id": "ATu63--9TjudZetpf4UuQg",
      "caller_name": "Caller name",
      "caller_email": "test@abc.com",
      "caller_employee_id": "102911",
      "caller_did_number": "+12059300920",
      "caller_ext_number": "101229",
      "caller_ext_type": "user",
      "caller_number_type": "external_pstn",
      "caller_device_private_ip": "10.0.0.1",
      "caller_device_public_ip": "135.0.0.1",
      "caller_device_type": "MAC_Client(6.0.2.33403)",
      "caller_country_iso_code": "US",
      "caller_country_code": "1",
      "caller_site_id": "BpCTBMRARBefUrprildVqw",
      "caller_department": "web-api1",
      "caller_cost_center": "cost-center1",
      "callee_ext_id": "ATu63--9TjudZetpf4UuQg",
      "callee_name": "Callee name",
      "callee_did_number": "+12059300920",
      "callee_ext_number": "101229",
      "callee_email": "test@abc.com",
      "callee_employee_id": "102912",
      "callee_ext_type": "user",
      "callee_number_type": "external_pstn",
      "callee_device_private_ip": "10.0.0.2",
      "callee_device_public_ip": "135.0.0.2",
      "callee_device_type": "MAC_Client(6.0.2.33403)",
      "callee_country_iso_code": "US",
      "callee_country_code": "1",
      "callee_site_id": "BpCTBMRARBefUrprildVqw",
      "callee_department": "web-api1",
      "callee_cost_center": "cost-center1",
      "start_time": "2023-10-08T16:12:04Z",
      "answer_time": "2023-10-08T16:12:04Z",
      "end_time": "2023-10-08T16:12:15Z",
      "event": "outgoing",
      "result": "answered",
      "result_reason": "answered_by_other",
      "operator_ext_number": "3456",
      "operator_ext_id": "NN9rA4fZSsScB2YiCqw7Ig",
      "operator_ext_type": "user",
      "operator_name": "operator name",
      "recording_id": "c71b360f6e774e3aa101453117b7e1a7",
      "recording_type": "automatic",
      "voicemail_id": "6cd2da01bcaa47f58e3250a575c5f2bf",
      "talk_time": 31,
      "hold_time": 20,
      "wait_time": 20,
      "caller_account_code": "111",
      "callee_account_code": "222"
    }
  ],
  "call_elements": [
    {
      "call_element_id": "20231008-48c1dfd4-91ce-4df5-8495-7c9e33d10869",
      "call_history_uuid": "20231008-48c1dfd4-91ce-4df5-8495-7c9e33d10869",
      "call_id": "7018317023722949162",
      "group_id": "_sj190JDFasa19321_adA7",
      "connect_type": "internal",
      "call_type": "general",
      "direction": "inbound",
      "hide_caller_id": true,
      "end_to_end": false,
      "caller_ext_id": "ATu63--9TjudZetpf4UuQg",
      "caller_name": "Caller name",
      "caller_email": "test@abc.com",
      "caller_employee_id": "102911",
      "caller_did_number": "+12059300920",
      "caller_ext_number": "101229",
      "caller_ext_type": "user",
      "caller_number_type": "external_pstn",
      "caller_device_private_ip": "10.0.0.1",
      "caller_device_public_ip": "135.0.0.1",
      "caller_device_type": "MAC_Client(6.0.2.33403)",
      "caller_country_iso_code": "US",
      "caller_country_code": "1",
      "caller_site_id": "BpCTBMRARBefUrprildVqw",
      "caller_department": "web-api1",
      "caller_cost_center": "cost-center1",
      "callee_ext_id": "ATu63--9TjudZetpf4UuQg",
      "callee_name": "Callee name",
      "callee_did_number": "+12059300920",
      "callee_ext_number": "101229",
      "callee_email": "test@abc.com",
      "callee_employee_id": "102912",
      "callee_ext_type": "user",
      "callee_number_type": "external_pstn",
      "callee_device_private_ip": "10.0.0.2",
      "callee_device_public_ip": "135.0.0.2",
      "callee_device_type": "MAC_Client(6.0.2.33403)",
      "callee_country_iso_code": "US",
      "callee_country_code": "1",
      "callee_site_id": "BpCTBMRARBefUrprildVqw",
      "callee_department": "web-api1",
      "callee_cost_center": "cost-center1",
      "start_time": "2023-10-08T16:12:04Z",
      "answer_time": "2023-10-08T16:12:04Z",
      "end_time": "2023-10-08T16:12:15Z",
      "event": "outgoing",
      "result": "answered",
      "result_reason": "answered_by_other",
      "operator_ext_number": "3456",
      "operator_ext_id": "NN9rA4fZSsScB2YiCqw7Ig",
      "operator_ext_type": "user",
      "operator_name": "operator name",
      "recording_id": "c71b360f6e774e3aa101453117b7e1a7",
      "recording_type": "automatic",
      "voicemail_id": "6cd2da01bcaa47f58e3250a575c5f2bf",
      "talk_time": 31,
      "hold_time": 20,
      "wait_time": 20,
      "caller_account_code": "111",
      "callee_account_code": "222"
    }
  ],
  "from": "2023-10-01",
  "to": "2023-10-12",
  "next_page_token": "AmhfoKtF2Ey4TaPg2iZsAcmetRLs2ZY0Sk2",
  "page_count": 2,
  "page_size": 30,
  "total_records": 54
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `301` <br> Invalid request param: {paramName}. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `300` <br> User does not exist: {userId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Sync user's call history

  • Method: GET
  • Path: /phone/users/{userId}/call_history/sync
  • Tags: Call Logs

Syncs a user's Zoom phone call history.

For user-level apps, pass the me value instead of the userId parameter.

Prerequisites

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:read:admin,phone:read

Granular Scopes: phone:read:list_call_logs,phone:read:list_call_logs:admin

Rate Limit Label: MEDIUM

Responses

Status: 200 **HTTP Status code:** `200`User call logs returned.
Content-Type: application/json
  • call_elements

    array — The sync user call elements.

    Items:

    • ai_call_summary_id

      string — The ai call summary ID.

    • answer_time

      string — The call answer time in GMT `date-time` format.

    • call_element_id

      string — The ID of the call element.

    • call_history_uuid

      string — The call history ID of the call.

    • call_id

      string — The ID of the phone call.

    • call_type

      string, possible values: "general", "emergency" — The type of call.

    • callee_account_code

      string — The callee's account code. To dial between accounts, use the format: [Account code] - [extension number].

    • callee_cost_center

      string — The callee's cost center.

    • callee_country_code

      string — The callee's country code.

    • callee_country_iso_code

      string — The callee's country ISO code.

    • callee_department

      string — The callee's department.

    • callee_device_private_ip

      string — The callee's private IP.

    • callee_device_public_ip

      string — The callee's public IP.

    • callee_device_type

      string — The callee's device type.

    • callee_did_number

      string — The callee's DID number in e164 format.

    • callee_email

      string — The callee's email.

    • callee_employee_id

      string — Ther callee's employee ID.

    • callee_ext_id

      string — The callee's extension ID.

    • callee_ext_number

      string — The extension number of the callee.

    • callee_ext_type

      string, possible values: "user", "call_queue", "auto_receptionist", "common_area", "zoom_room", "cisco_room", "shared_line_group", "group_call_pickup", "external_contact" — The callee's extension type.

    • callee_name

      string — The name of the callee.

    • callee_number_type

      string, possible values: "zoom_pstn", "zoom_toll_free_number", "external_pstn", "external_contact", "byoc", "byop", "3rd_party_contact_center", "zoom_service_number", "external_service_number", "zoom_contact_center", "meeting_phone_number", "meeting_id", "anonymous_number", "zoom_revenue_accelerator" — The callee's number type.

    • callee_site_id

      string — The callee's site ID.

    • caller_account_code

      string — The caller's account code. To dial between accounts, use the format: [Account code] - [extension number].

    • caller_cost_center

      string — The caller's cost center.

    • caller_country_code

      string — The caller's country code.

    • caller_country_iso_code

      string — The caller's country ISO code.

    • caller_department

      string — The caller's department.

    • caller_device_private_ip

      string — The caller's private IP.

    • caller_device_public_ip

      string — The caller's public IP.

    • caller_device_type

      string — The caller's device type.

    • caller_did_number

      string — The caller's DID number in e164 format.

    • caller_email

      string — The caller's email.

    • caller_employee_id

      string — Ther caller's employee ID.

    • caller_ext_id

      string — The caller's extension ID.

    • caller_ext_number

      string — The extension number of the caller.

    • caller_ext_type

      string, possible values: "user", "call_queue", "auto_receptionist", "common_area", "zoom_room", "cisco_room", "shared_line_group", "group_call_pickup", "external_contact" — The caller's extension type.

    • caller_name

      string — The name of the caller.

    • caller_number_type

      string, possible values: "zoom_pstn", "zoom_toll_free_number", "external_pstn", "external_contact", "byoc", "byop", "3rd_party_contact_center", "zoom_service_number", "external_service_number", "zoom_contact_center", "meeting_phone_number", "meeting_id", "anonymous_number", "zoom_revenue_accelerator" — The caller's number type.

    • caller_site_id

      string — The caller's site ID.

    • connect_type

      string, possible values: "internal", "external" — The connect type of call.

    • direction

      string, possible values: "inbound", "outbound" — The direction of the call.

    • end_time

      string — The call end time in GMT `date-time` format.

    • end_to_end

      boolean — A flag to indicate the call is end to End-to-End Encryption or not.

    • event

      string, possible values: "incoming", "transfer_from_zoom_contact_center", "shared_line_incoming", "outgoing", "call_me_on", "outgoing_to_zoom_contact_center", "warm_transfer", "forward", "ring_to_member", "overflow", "direct_transfer", "barge", "monitor", "whisper", "listen", "takeover", "conference_barge", "park", "timeout", "park_pick_up", "merge", "shared" — An event within a call log.

    • group_id

      string — The primary group of which the user belongs.

    • hide_caller_id

      boolean — A flag to indicate the call is hide caller ID or not.

    • hold_time

      integer — The call hold time in seconds.

    • operator_ext_id

      string — The operator extension ID.

    • operator_ext_number

      string — The operator extension number.

    • operator_ext_type

      string, possible values: "user", "call_queue", "auto_receptionist", "common_area", "zoom_room", "cisco_room", "shared_line_group", "group_call_pickup", "external_contact" — The operator extension type.

    • operator_name

      string — The operator's name.

    • recording_id

      string — The unique identifier of the call recording.

    • recording_type

      string, possible values: "ad-hoc", "automatic" — The type of call recording.

    • result

      string, possible values: "answered", "accepted", "picked_up", "connected", "succeeded", "voicemail", "hang_up", "canceled", "call_failed", "unconnected", "rejected", "busy", "ring_timeout", "overflowed", "no_answer", "invalid_key", "invalid_operation", "abandoned", "system_blocked", "service_unavailable" — The detail result of an event for a call log.

    • result_reason

      string, possible values: "answered_by_other", "pickup_by_other", "call_out_by_other" — The reason of result of an event for a call log.

    • start_time

      string — The call start time in GMT `date-time` format.

    • talk_time

      integer — The call talk time in seconds.

    • voicemail_id

      string — The ID of the call voicemail.

    • wait_time

      integer — The call wait time in seconds.

  • call_logs

    array

    Items:

    • ai_call_summary_id

      string — The ai call summary ID.

    • answer_time

      string — The call answer time in GMT `date-time` format.

    • call_id

      string — The ID of the phone call.

    • call_path_id

      string — The call path ID of the call.

    • call_type

      string, possible values: "general", "emergency" — The type of call.

    • callee_account_code

      string — The callee's account code. To dial between accounts, use the format: [Account code] - [extension number].

    • callee_cost_center

      string — The callee's cost center.

    • callee_country_code

      string — The callee's country code.

    • callee_country_iso_code

      string — The callee's country ISO code.

    • callee_department

      string — The callee's department.

    • callee_device_private_ip

      string — The callee's private IP.

    • callee_device_public_ip

      string — The callee's public IP.

    • callee_device_type

      string — The callee's device type.

    • callee_did_number

      string — The callee's DID number in e164 format.

    • callee_email

      string — The callee's email.

    • callee_employee_id

      string — Ther callee's employee id

    • callee_ext_id

      string — The callee's extension ID.

    • callee_ext_number

      string — The extension number of the callee.

    • callee_ext_type

      string, possible values: "user", "call_queue", "auto_receptionist", "common_area", "zoom_room", "cisco_room", "shared_line_group", "group_call_pickup", "external_contact" — The callee's extension type.

    • callee_name

      string — The name of the callee.

    • callee_number_type

      string, possible values: "zoom_pstn", "zoom_toll_free_number", "external_pstn", "external_contact", "byoc", "byop", "3rd_party_contact_center", "zoom_service_number", "external_service_number", "zoom_contact_center", "meeting_phone_number", "meeting_id", "anonymous_number", "zoom_revenue_accelerator" — The callee's number type.

    • callee_site_id

      string — The callee's site ID.

    • caller_account_code

      string — The caller's account code. To dial between accounts, use the format: [Account code] - [extension number].

    • caller_cost_center

      string — The caller's cost center.

    • caller_country_code

      string — The caller's country code.

    • caller_country_iso_code

      string — The caller's country ISO code.

    • caller_department

      string — The caller's department.

    • caller_device_private_ip

      string — The caller's private IP.

    • caller_device_public_ip

      string — The caller's public IP.

    • caller_device_type

      string — The caller's device type.

    • caller_did_number

      string — The caller's DID number in e164 format.

    • caller_email

      string — The caller's email.

    • caller_employee_id

      string — Ther caller's employee id

    • caller_ext_id

      string — The caller's extension ID.

    • caller_ext_number

      string — The extension number of the caller.

    • caller_ext_type

      string, possible values: "user", "call_queue", "auto_receptionist", "common_area", "zoom_room", "cisco_room", "shared_line_group", "group_call_pickup", "external_contact" — The caller's extension type.

    • caller_name

      string — The name of the caller.

    • caller_number_type

      string, possible values: "zoom_pstn", "zoom_toll_free_number", "external_pstn", "external_contact", "byoc", "byop", "3rd_party_contact_center", "zoom_service_number", "external_service_number", "zoom_contact_center", "meeting_phone_number", "meeting_id", "anonymous_number", "zoom_revenue_accelerator" — The caller's number type.

    • caller_site_id

      string — The caller's site ID.

    • connect_type

      string, possible values: "internal", "external" — The connect type of call.

    • direction

      string, possible values: "inbound", "outbound" — The direction of the call.

    • end_time

      string — The call end time in GMT `date-time` format.

    • end_to_end

      boolean — A flag to indicate the call is end to End-to-End Encryption or not.

    • event

      string, possible values: "incoming", "transfer_from_zoom_contact_center", "shared_line_incoming", "outgoing", "call_me_on", "outgoing_to_zoom_contact_center", "warm_transfer", "forward", "ring_to_member", "overflow", "direct_transfer", "barge", "monitor", "whisper", "listen", "takeover", "conference_barge", "park", "timeout", "park_pick_up", "merge", "shared" — An event within a call log.

    • group_id

      string — The primary group of which the user belongs.

    • hide_caller_id

      boolean — A flag to indicate the call is hide caller ID or not.

    • hold_time

      integer — The call hold time in seconds.

    • id

      string — The ID of the call history.

    • operator_ext_id

      string — The operator extension ID.

    • operator_ext_number

      string — The operator extension number.

    • operator_ext_type

      string, possible values: "user", "call_queue", "auto_receptionist", "common_area", "zoom_room", "cisco_room", "shared_line_group", "group_call_pickup", "external_contact" — The operator extension type.

    • operator_name

      string — The operator's name.

    • recording_id

      string — The unique identifier of the call recording.

    • recording_type

      string, possible values: "ad-hoc", "automatic" — The type of call recording.

    • result

      string, possible values: "answered", "accepted", "picked_up", "connected", "succeeded", "voicemail", "hang_up", "canceled", "call_failed", "unconnected", "rejected", "busy", "ring_timeout", "overflowed", "no_answer", "invalid_key", "invalid_operation", "abandoned", "system_blocked", "service_unavailable" — The detail result of an event for a call log.

    • result_reason

      string, possible values: "answered_by_other", "pickup_by_other", "call_out_by_other" — The reason of result of an event for a call log.

    • start_time

      string — The call start time in GMT `date-time` format.

    • talk_time

      integer — The call talk time in seconds.

    • voicemail_id

      string — The ID of the call voicemail.

    • wait_time

      integer — The call wait time in seconds.

  • sync_token

    string — The time range for returned records. Used for locating where the next retrieval will begin.

Example:

{
  "call_logs": [
    {
      "id": "20231008-321adfd4-91ce-4d15-84a5-7c9e33d10c32",
      "call_path_id": "20231008-c12adfdf-93ce-fda5-8ca1-7c5e31d1021c",
      "call_id": "7018317023722949162",
      "group_id": "_sj190JDFasa19321_adA7",
      "connect_type": "internal",
      "call_type": "general",
      "direction": "inbound",
      "hide_caller_id": true,
      "end_to_end": false,
      "caller_ext_id": "ATu63--9TjudZetpf4UuQg",
      "caller_name": "Caller name",
      "caller_email": "test@abc.com",
      "caller_employee_id": "102911",
      "caller_did_number": "+12059300920",
      "caller_ext_number": "101229",
      "caller_ext_type": "user",
      "caller_number_type": "external_pstn",
      "caller_device_private_ip": "10.0.0.1",
      "caller_device_public_ip": "135.0.0.1",
      "caller_device_type": "MAC_Client(6.0.2.33403)",
      "caller_country_iso_code": "US",
      "caller_country_code": "1",
      "caller_site_id": "BpCTBMRARBefUrprildVqw",
      "caller_department": "web-api1",
      "caller_cost_center": "cost-center1",
      "callee_ext_id": "ATu63--9TjudZetpf4UuQg",
      "callee_name": "Callee name",
      "callee_did_number": "+12059300920",
      "callee_ext_number": "101229",
      "callee_email": "test@abc.com",
      "callee_employee_id": "102912",
      "callee_ext_type": "user",
      "callee_number_type": "external_pstn",
      "callee_device_private_ip": "10.0.0.2",
      "callee_device_public_ip": "135.0.0.2",
      "callee_device_type": "MAC_Client(6.0.2.33403)",
      "callee_country_iso_code": "US",
      "callee_country_code": "1",
      "callee_site_id": "BpCTBMRARBefUrprildVqw",
      "callee_department": "web-api1",
      "callee_cost_center": "cost-center1",
      "start_time": "2023-10-08T16:12:04Z",
      "answer_time": "2023-10-08T16:12:04Z",
      "end_time": "2023-10-08T16:12:15Z",
      "event": "outgoing",
      "result": "answered",
      "result_reason": "answered_by_other",
      "operator_ext_number": "3456",
      "operator_ext_id": "NN9rA4fZSsScB2YiCqw7Ig",
      "operator_ext_type": "user",
      "operator_name": "operator name",
      "recording_id": "c71b360f6e774e3aa101453117b7e1a7",
      "recording_type": "automatic",
      "voicemail_id": "6cd2da01bcaa47f58e3250a575c5f2bf",
      "talk_time": 31,
      "hold_time": 20,
      "wait_time": 20,
      "ai_call_summary_id": "rBA9KJdyTVqGdTLpysHBsg",
      "caller_account_code": "111",
      "callee_account_code": "222"
    }
  ],
  "call_elements": [
    {
      "call_element_id": "20231008-321adfd4-91ce-4d15-84a5-7c9e33d10c32",
      "call_history_uuid": "20231008-c12adfdf-93ce-fda5-8ca1-7c5e31d1021c",
      "call_id": "7018317023722949162",
      "group_id": "_sj190JDFasa19321_adA7",
      "connect_type": "internal",
      "call_type": "general",
      "direction": "inbound",
      "hide_caller_id": true,
      "end_to_end": false,
      "caller_ext_id": "ATu63--9TjudZetpf4UuQg",
      "caller_name": "Caller name",
      "caller_email": "test@abc.com",
      "caller_employee_id": "102911",
      "caller_did_number": "+12059300920",
      "caller_ext_number": "101229",
      "caller_ext_type": "user",
      "caller_number_type": "external_pstn",
      "caller_device_private_ip": "10.0.0.1",
      "caller_device_public_ip": "135.0.0.1",
      "caller_device_type": "MAC_Client(6.0.2.33403)",
      "caller_country_iso_code": "US",
      "caller_country_code": "1",
      "caller_site_id": "BpCTBMRARBefUrprildVqw",
      "caller_department": "web-api1",
      "caller_cost_center": "cost-center1",
      "callee_ext_id": "ATu63--9TjudZetpf4UuQg",
      "callee_name": "Callee name",
      "callee_did_number": "+12059300920",
      "callee_ext_number": "101229",
      "callee_email": "test@abc.com",
      "callee_employee_id": "102912",
      "callee_ext_type": "user",
      "callee_number_type": "external_pstn",
      "callee_device_private_ip": "10.0.0.2",
      "callee_device_public_ip": "135.0.0.2",
      "callee_device_type": "MAC_Client(6.0.2.33403)",
      "callee_country_iso_code": "US",
      "callee_country_code": "1",
      "callee_site_id": "BpCTBMRARBefUrprildVqw",
      "callee_department": "web-api1",
      "callee_cost_center": "cost-center1",
      "start_time": "2023-10-08T16:12:04Z",
      "answer_time": "2023-10-08T16:12:04Z",
      "end_time": "2023-10-08T16:12:15Z",
      "event": "outgoing",
      "result": "answered",
      "result_reason": "answered_by_other",
      "operator_ext_number": "3456",
      "operator_ext_id": "NN9rA4fZSsScB2YiCqw7Ig",
      "operator_ext_type": "user",
      "operator_name": "operator name",
      "recording_id": "c71b360f6e774e3aa101453117b7e1a7",
      "recording_type": "automatic",
      "voicemail_id": "6cd2da01bcaa47f58e3250a575c5f2bf",
      "talk_time": 31,
      "hold_time": 20,
      "wait_time": 20,
      "ai_call_summary_id": "rBA9KJdyTVqGdTLpysHBsg",
      "caller_account_code": "111",
      "callee_account_code": "222"
    }
  ],
  "sync_token": "SDVjM3NHRlNyMF8xNjQwODI3NTkyMzkwXzE2NDgwMTUzNTk0MzI="
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `301` <br> Invalid request param: {paramName}. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `300` <br> User does not exist: {userId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Delete a user's call history

  • Method: DELETE
  • Path: /phone/users/{userId}/call_history/{callLogId}
  • Tags: Call Logs

Deletes a user's call history.

For user-level apps, pass the me value instead of the userId parameter.

Prerequisites

  • Belong to a Business or Enterprise account
  • Have a Zoom Phone license

Scopes: phone:write,phone:write:admin,phone_call_log:write,phone_call_log:write:admin

Granular Scopes: phone:delete:call_log,phone:delete:call_log:admin

Rate Limit Label: LIGHT

Responses

Status: 204 Call history has been deleted successfully
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `300` <br> User does not exist: {userId}. <br> **Error Code:** `301` <br> Call history not found: {callLogId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get user's call logs ⚠️ Deprecated

  • Method: GET
  • Path: /phone/users/{userId}/call_logs
  • Tags: Call Logs

Returns a user's Zoom phone call logs. For user-level apps, pass the me value instead of the userId parameter.

Prerequisites:

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:read,phone:read:admin,phone_call_log:read,phone_call_log:read:admin

Granular Scopes: phone:read:list_call_logs,phone:read:list_call_logs:admin

Rate Limit Label: MEDIUM

Responses

Status: 200 **HTTP Status code:** `200` User's call logs returned.
Content-Type: application/json
  • call_logs

    array — The call Log

    Items:

    • accepted_by

      object — This field indicates who accepted the call.

      • extension_number

        string

      • location

        string

      • name

        string

      • number_type

        integer — The phone number types: `1` - Extension `2`- E164 number `3` - Custom number.

      • phone_number

        string

    • answer_start_time

      string — The call's answer time, in GMT `date-time` format. The API only displays this response if the `direction` value is `inbound`.

    • call_end_time

      string — The call end time, in GMT `date-time` format.

    • call_id

      string — The unique identifier of the phone call.

    • callee_country_code

      string — The country calling code.

    • callee_country_iso_code

      string — The ISO alpha2 country code.

    • callee_did_number

      string — The callee's DID (direct inward dial) number in e164 format.

    • callee_name

      string — The contact name of callee

    • callee_number

      string — The number of the callee

    • callee_number_source

      string, possible values: "internal", "external", "byop" — This field indicates where the phone number comes from: * `internal` &mdash; ZP native. * `external` &mdash; BYOC or Provider Exchange. * `byop` &mdash; Premise peering. Not available when `callee_number_type = 1`.

    • callee_number_type

      integer, possible values: 1, 2, 3 — The callee's number type: * `1` &mdash; Extension number. * `2` &mdash; Phone number. * `3` &mdash; Customized emergency number.

    • caller_billing_reference_id

      string — The billing reference ID (for peering phone numbers).

    • caller_country_code

      string — The country calling code.

    • caller_country_iso_code

      string — The ISO alpha2 country code.

    • caller_did_number

      string — The caller's DID (direct inward dial) number in e164 format.

    • caller_name

      string — The contact name of the caller

    • caller_number

      string — The number of the caller

    • caller_number_source

      string, possible values: "internal", "external", "byop" — This field indicates where the phone number comes from: * `internal` &mdash; ZP native. * `external` &mdash; BYOC or Provider Exchange. * `byop` &mdash; Premise peering. Not available when `caller_number_type = 1`.

    • caller_number_type

      integer, possible values: 1, 2 — The caller's number type: * `1` &mdash; Extension number. * `2` &mdash; Phone number.

    • charge

      string — The billing charge for the call.

    • client_code

      string — The client code.

    • cost_center

      string — The cost center name to which a user belongs.

    • date_time

      string — The start time of the call

    • department

      string — The name of the user's department.

    • direction

      string — The direction of the call. &quot;inbound&quot; | &quot;outbound&quot;

    • duration

      integer — The duration of the call in seconds.

    • forwarded_by

      object — This field indicates where the call was forwarded from.

      • extension_number

        string

      • extension_type

        string, possible values: "user", "callQueue", "commonAreaPhone", "autoReceptionist", "sharedLineGroup"

      • location

        string

      • name

        string

      • number_type

        integer — The phone number types: `1` - Extension `2`- E164 number `3` - Custom number.

      • phone_number

        string

    • forwarded_to

      object — The field indicates who the call was forwarded to.

      • extension_number

        string

      • location

        string

      • name

        string

      • number_type

        integer — The phone number types: `1` - Extension `2`- E164 number `3` - Custom number.

      • phone_number

        string

    • has_recording

      boolean — Whether the call has a recording. See [announcement](https://marketplace.zoom.us/docs/guides/stay-up-to-date/announcements#deprecation-of-the-has_voicemail-and-has_recording-responses-in-phone-api) from July, 2021

    • has_voicemail

      boolean — Whether the call has a voicemail. See [announcement](https://marketplace.zoom.us/docs/guides/stay-up-to-date/announcements#deprecation-of-the-has_voicemail-and-has_recording-responses-in-phone-api) from July, 2021.

    • hold_time

      integer — The hold time during a call in seconds.

    • id

      string — The call Log ID

    • outgoing_by

      object

      • extension_number

        string

      • location

        string

      • name

        string

      • number_type

        integer — The phone number types: `1` - Extension `2`- E164 number `3` - Custom number.

      • phone_number

        string

    • path

      string — The path of the call log.

    • rate

      string — The billing rate for the call.

    • recording_type

      string, possible values: "OnDemand", "Automatic" — The recording type. * `On-demand` recording. * `Automatic` recording.

    • result

      string — The result of the call: `Missed` | `Voicemail` | `Call connected` | `Rejected` | `Blocked`| `Busy`| `Wrong Number`| `No Answer`| `International Disabled`| `Internal Error`| `Call failed` | `Restricted Number`| `Call Cancel` | `Message`| `Answered by Other Member` | `Call Cancelled` | `Park` | `Parked` | `Blocked by non-GAL` | `Blocked by info-Barriers` | `Recording Failure`| `Recorded`| `Auto Recorded`.

    • site

      object

    • user_id

      string — The user ID or user email.

    • waiting_time

      integer — The time (in seconds) spent waiting for the call to be connected.

  • from

    string — The start time and date of the log

  • next_page_token

    string — The next page token paginates through a large set of results. A next page token is returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • page_count

    integer — The total number of pages

  • page_size

    integer — The number of records returned within a single API call for each page.

  • to

    string — The end time and date of the log

  • total_records

    integer — The total number of records returned.

Example:

{
  "call_logs": [
    {
      "accepted_by": {
        "extension_number": "1009",
        "location": "Pontotoc     MS",
        "name": "Display name",
        "number_type": 1,
        "phone_number": "+12055432724"
      },
      "answer_start_time": "2021-10-09T16:52:05Z",
      "call_end_time": "2021-10-09T17:20:53Z",
      "call_id": "7017184835983901126",
      "callee_country_code": "1",
      "callee_country_iso_code": "US",
      "callee_did_number": "+12055432724",
      "callee_name": "Callee name",
      "callee_number": "1018",
      "callee_number_type": 1,
      "callee_number_source": "internal",
      "caller_country_code": "1",
      "caller_country_iso_code": "US",
      "caller_did_number": "+12055432724",
      "caller_name": "Caller name",
      "caller_number": "+12059300920",
      "caller_number_type": 1,
      "caller_number_source": "internal",
      "caller_billing_reference_id": "ZoomTelecom123456",
      "charge": "$0.0255",
      "client_code": "123",
      "date_time": "2022-01-24T23:58:10Z",
      "direction": "inbound",
      "duration": 20,
      "forwarded_by": {
        "extension_number": "1009",
        "extension_type": "user",
        "location": "Glendale     CA",
        "name": "The display name",
        "number_type": 1,
        "phone_number": "+12055432724"
      },
      "forwarded_to": {
        "extension_number": "1009",
        "location": "Glendale     CA",
        "name": "Display name",
        "number_type": 1,
        "phone_number": "+12055432724"
      },
      "id": "48c1dfd4-91ce-4df5-8495-7c9e33d10869",
      "outgoing_by": {
        "extension_number": "1009",
        "location": "Glendale     CA",
        "name": "Display name",
        "number_type": 1,
        "phone_number": "+12055432724"
      },
      "path": "pstn",
      "rate": "$0.0255",
      "recording_type": "On-demand",
      "result": "Call connected",
      "site": {
        "id": "8f71O6rWT8KFUGQmJIFAdQ",
        "name": "Main Site"
      },
      "user_id": "DnEopNmXQEGU2uvvzjgojw",
      "hold_time": 5,
      "waiting_time": 10,
      "department": "web-api1",
      "cost_center": "cost-center1"
    }
  ],
  "from": "2021-10-01",
  "next_page_token": "AmhfoKtF2Ey4TaPg2iZsAcmetRLs2ZY0Sk2",
  "page_count": 2,
  "page_size": 30,
  "to": "2021-10-12",
  "total_records": 54
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Invalid user id. <br> **Error Code:** `400` <br> The next page token is invalid or expired. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2001` <br> Account does not exist. <br> **Error Code:** `3001` <br> Error retrieving call logs. <br> **Error Code:** `1001` <br> User does not exist: {userId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Sync user's call logs ⚠️ Deprecated

  • Method: GET
  • Path: /phone/users/{userId}/call_logs/sync
  • Tags: Call Logs

Syncs a user's Zoom phone call logs. For user-level apps, pass the me value instead of the userId parameter.

Prerequisites:

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:read:admin,phone:read

Granular Scopes: phone:read:list_call_logs,phone:read:list_call_logs:admin

Rate Limit Label: MEDIUM

Responses

Status: 200 **HTTP Status code:** `200` User call logs returned.
Content-Type: application/json
  • call_logs

    array — The call log.

    Items:

    • accepted_by

      object — This field indicates who accepted the call.

      • extension_number

        string

      • location

        string

      • name

        string

      • number_type

        integer — The phone number types: `1` - Extension `2`- E164 number `3` - Custom number.

      • phone_number

        string

    • answer_start_time

      string — The time the call was answered in GMT `date-time` format. The API only displays this response if the `direction` value is `inbound`.

    • call_end_time

      string — The call end time in GMT `date-time` format.

    • call_id

      string — THe unique identifier of the phone call.

    • callee_country_code

      string — The country calling code.

    • callee_country_iso_code

      string — The ISO alpha2 country code.

    • callee_did_number

      string — The callee's DID (direct inward dial) number in e164 format.

    • callee_name

      string — The contact name of the callee.

    • callee_number

      string — The number associated with the callee. It can be an e164 number or an extension.

    • callee_number_source

      string, possible values: "internal", "external", "byop" — This field indicates where the phone number comes from: * `internal` &mdash; ZP native. * `external` &mdash; BYOC or Provider Exchange. * `byop` &mdash; Premise peering. Not available when `callee_number_type = 1`.

    • callee_number_type

      integer, possible values: 1, 2, 3 — The callee number type: * `1` &mdash; Extension number. * `2` &mdash; Phone number. * `3` &mdash; Customized emergency number.

    • callee_user_id

      string — The callee's user id.

    • caller_billing_reference_id

      string — The billing reference ID (for peering phone numbers).

    • caller_country_code

      string — The country calling code.

    • caller_country_iso_code

      string — ISO alpha2 country code.

    • caller_did_number

      string — The caller's DID (direct inward dial) number in e164 format.

    • caller_name

      string — The contact name of the caller.

    • caller_number

      string — The number associated with the caller. It can be an e164 number or an extension.

    • caller_number_source

      string, possible values: "internal", "external", "byop" — This field indicates where the phone number comes from: * `internal` &mdash; ZP native. * `external` &mdash; BYOC or Provider Exchange. * `byop` &mdash; Premise peering. Not available when `caller_number_type = 1`.

    • caller_number_type

      integer, possible values: 1, 2 — The caller number type: * `1` &mdash; Extension number. * `2` &mdash; Phone number.

    • caller_user_id

      string — The caller's user ID.

    • charge

      string — The billing charge for the call.

    • client_code

      string — The client code.

    • date_time

      string — The start time of the call.

    • direction

      string — The direction of the call: `inbound`or `outbound`.

    • duration

      integer — The duration of the call in seconds.

    • forwarded_by

      object — This field indicates where the call was forwarded from.

      • extension_number

        string

      • extension_type

        string, possible values: "user", "callQueue", "commonAreaPhone", "autoReceptionist", "sharedLineGroup"

      • location

        string

      • name

        string

      • number_type

        integer — The phone number types: `1` - Extension `2`- E164 number `3` - Custom number.

      • phone_number

        string

    • forwarded_to

      object — This field indicates who the call was forwarded to.

      • extension_number

        string

      • location

        string

      • name

        string

      • number_type

        integer — The phone number types: `1` - Extension `2`- E164 number `3` - Custom number.

      • phone_number

        string

    • has_recording

      boolean — Whether the call has a recording. See [announcement](https://marketplace.zoom.us/docs/guides/stay-up-to-date/announcements#deprecation-of-the-has_voicemail-and-has_recording-responses-in-phone-api) from July, 2021.

    • has_voicemail

      boolean — Whether the call has a voicemail. See [announcement](https://marketplace.zoom.us/docs/guides/stay-up-to-date/announcements#deprecation-of-the-has_voicemail-and-has_recording-responses-in-phone-api) from July, 2021.

    • hold_time

      integer — The hold time during a call in seconds.

    • id

      string — The call log ID.

    • outgoing_by

      object

      • extension_number

        string

      • location

        string

      • name

        string

      • number_type

        integer — The phone number types: `1` - Extension `2`- E164 number `3` - Custom number.

      • phone_number

        string

    • path

      string — The path of the call log.

    • rate

      string — The billing rate for the call.

    • recording_type

      string, possible values: "OnDemand", "Automatic" — The recording type. * `On-demand` recording. * `Automatic` recording.

    • result

      string — The result of the call: `Missed` | `Voicemail` | `Call connected` | `Rejected` | `Blocked`| `Busy`| `Wrong Number`| `No Answer`| `International Disabled`| `Internal Error`| `Call failed` | `Restricted Number`| `Call Cancel` | `Message`| `Answered by Other Member` | `Call Cancelled` | `Park` | `Parked` | `Blocked by non-GAL` | `Blocked by info-Barriers` | `Recording Failure`| `Recorded`| `Auto Recorded`.

    • site

      object

    • user_id

      string — The user ID or email.

    • waiting_time

      integer — The time (in seconds) spent waiting for the call to be connected.

  • sync_token

    string — The time range for returned records. Used for locating where the next retrieval will begin.

Example:

{
  "call_logs": [
    {
      "accepted_by": {
        "extension_number": "1009",
        "location": "Glendale     CA",
        "name": "Display name",
        "number_type": 1,
        "phone_number": "+12055432724"
      },
      "answer_start_time": "2021-10-08T16:10:04Z",
      "call_end_time": "2021-10-08T16:12:04Z",
      "call_id": "7006926284340112376",
      "callee_user_id": "IqoQmDRqS-aIoXqV_FZ88w",
      "callee_country_code": "1",
      "callee_country_iso_code": "US",
      "callee_did_number": "+12135551234",
      "callee_name": "Jan Dev",
      "callee_number": "101",
      "callee_number_type": 1,
      "callee_number_source": "internal",
      "caller_user_id": "IqoQmDRqS-aIoXqV_FZ88w",
      "caller_country_code": "1",
      "caller_country_iso_code": "US",
      "caller_did_number": "+18108001001",
      "caller_name": "Zoom",
      "caller_number": "+12095552345",
      "caller_number_type": 1,
      "caller_number_source": "internal",
      "caller_billing_reference_id": "ZoomTelecom123456",
      "charge": "$0.0255",
      "client_code": "123",
      "date_time": "2022-01-24T23:58:10Z",
      "direction": "inbound",
      "duration": 7,
      "forwarded_by": {
        "extension_number": "1009",
        "extension_type": "callQueue",
        "location": "Glendale     CA",
        "name": "The display name",
        "number_type": 1,
        "phone_number": "+12055432724"
      },
      "forwarded_to": {
        "extension_number": "1009",
        "location": "Glendale     CA",
        "name": "Display name",
        "number_type": 1,
        "phone_number": "+12055432724"
      },
      "id": "11f2bacb-37d8-4ae4-8d88-be657421266f",
      "outgoing_by": {
        "extension_number": "1009",
        "location": "Glendale     CA",
        "name": "Display name",
        "number_type": 1,
        "phone_number": "+12055432724"
      },
      "path": "callQueue",
      "rate": "$0.0255",
      "recording_type": "Automatic",
      "result": "Call connected",
      "site": {
        "id": "GNO-CItXQaLhqH3qfPD1kg",
        "name": "Main Site"
      },
      "user_id": "IqoQmDRqS-aIoXqV_FZ88w",
      "hold_time": 5,
      "waiting_time": 47
    }
  ],
  "sync_token": "SDVjM3NHRlNyMF8xNjQwODI3NTkyMzkwXzE2NDgwMTUzNTk0MzI="
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Invalid user id. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `300` <br> The sync token is invalid or expired. <br> **Error Code:** `2001` <br> Account does not exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Delete a user's call log ⚠️ Deprecated

  • Method: DELETE
  • Path: /phone/users/{userId}/call_logs/{callLogId}
  • Tags: Call Logs

Deletes a user's call log. For user-level apps, pass the me value instead of the userId parameter.

Prerequisites:

  • User must belong to a Business or Enterprise account
  • User must have a Zoom Phone license

Scopes: phone:write,phone:write:admin,phone_call_log:write,phone_call_log:write:admin

Granular Scopes: phone:delete:call_log,phone:delete:call_log:admin

Rate Limit Label: LIGHT

Responses

Status: 204 **HTTP Status Code**: `204` Log deleted.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Invalid user id. <br> **Error Code:** `124` <br> Invalid access token. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `404` <br> Call log information was not found for the following callLogId: {0}. <br> **Error Code:** `2001` <br> The account (accountId: {0}) does not exist. <br> **Error Code:** `1001` <br> User does not exist: {userId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List call queue analytics

  • Method: GET
  • Path: /phone/call_queue_analytics
  • Tags: Call Queues

Returns the call queue analytics overview.

Scopes: phone:read:admin

Granular Scopes: phone:read:list_call_queues:admin

Rate Limit Label: MEDIUM

Responses

Status: 200 **HTTP Status Code:** `200` **OK**Call Queues analytics listed successfully.
Content-Type: application/json
  • call_queues

    array — A list with call queue historical analytics data.

    Items:

    • abandoned_calls

      integer — The number of abandoned calls.

    • avg_handle_time

      integer — The average handle time for call in seconds.

    • avg_in_queue_wait_time

      integer — The average call wait time in seconds.

    • avg_wrap_up_time

      integer — The average wrap up time for calls in seconds.

    • call_queue_ext_id

      string — The extension of the call queue.

    • call_queue_id

      string — The unique identifier of the call queue.

    • call_queue_name

      string — The name of the call queue.

    • completed_calls

      integer — The number of completed calls.

    • inbound_calls

      integer — The number of inbound calls.

    • max_in_queue_wait_time

      integer — The max call wait time in seconds.

    • outbound_calls

      integer — The number of outbound calls.

    • outbound_connected_calls

      integer — The number of connected outbound calls.

    • outbound_unconnected_calls

      integer — The number of unconnected outbound calls.

    • overflowed_calls

      integer — The number of overflowed calls.

    • site_id

      string — The unique identifier of the [site](https://support.zoom.us/hc/en-us/articles/360020809672-Managing-Multiple-Sites) where the call queue is assigned.

    • site_name

      string — The name of the site for the CQ.

  • from

    string — The start time and date of the log.

  • next_page_token

    string — The next page token paginates through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • page_size

    integer — The number of records returned within a single API call for each page.

  • to

    string — The end time and date of the log.

Example:

{
  "call_queues": [
    {
      "call_queue_id": "3PNsZB50TNev4pgBjtKeDw",
      "call_queue_name": "test call queue",
      "call_queue_ext_id": "8f71O6rWT8KFUGQmJIFAdQ",
      "inbound_calls": 500,
      "completed_calls": 450,
      "abandoned_calls": 40,
      "overflowed_calls": 10,
      "avg_handle_time": 180,
      "avg_wrap_up_time": 60,
      "avg_in_queue_wait_time": 30,
      "max_in_queue_wait_time": 120,
      "outbound_calls": 300,
      "outbound_connected_calls": 450,
      "outbound_unconnected_calls": 30,
      "site_name": "SJ Site",
      "site_id": "lA68sMSVQ6GAUcGg_GH0nQ"
    }
  ],
  "from": "2021-10-01",
  "to": "2021-10-12",
  "page_size": 30,
  "next_page_token": "AmhfoKtF2Ey4TaPg2iZsAcmetRLs2ZY0Sk2"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Validation Failed <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).

List call queues

  • Method: GET
  • Path: /phone/call_queues
  • Tags: Call Queues

Call queues allow you to route incoming calls to a group of users. For instance, you can use call queues to route calls to various departments in your organization such as sales, engineering, billing, customer service etc. Use this API to list Call queues.

Prerequisites:

  • Pro, Business, or Education account
  • Account owner or admin permissions
  • Zoom Phone license

Scopes: phone:read:admin

Granular Scopes: phone:read:list_call_queues:admin

Rate Limit Label: Medium

Responses

Status: 200 **HTTP Status Code:** `200` **OK** Call Queues listed successfully.
Content-Type: application/json
  • call_queues

    array

    Items:

    • extension_id

      string — The extension ID.

    • extension_number

      integer, format: int64 — The extension number assigned to the queue.

    • id

      string — Unique identifier of the call queue.

    • name

      string — Name of the Call Queue.

    • phone_numbers

      array — Phone number(s) assigned to the call queue.

      Items:

      • id

        string — Unique identifier of the assigned phone number.

      • number

        string — The phone number.

      • source

        string, possible values: "internal", "external" — Source

    • site

      object

    • status

      string, possible values: "active", "inactive" — Status of the Call Queue. `active`: Call queue is enabled and active. `inactive`: Call queue is inactive. Inactive call queues cannot be called but will retain its settings and appear in the [Call Queues](https://zoom.us/pbx/page/telephone/groups#/groups) page.

  • next_page_token

    string — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • page_size

    integer — The number of records returned from a single API call.

  • total_records

    integer — The total number of records found for this query.

Example:

{
  "call_queues": [
    {
      "extension_id": "DgKe5UPTTlODBvcgmRIlPw",
      "extension_number": 26000026001,
      "id": "3PNsZB50TNev4pgBjtKeDw",
      "name": "ApiTA_2020_12_21_19_54_05_476",
      "phone_numbers": [
        {
          "id": "KsxwNLEhQ0SJ4U4Bor4ShA",
          "number": "+12058945717",
          "source": "internal"
        }
      ],
      "site": {
        "id": "8f71O6rWT8KFUGQmJIFAdQ",
        "name": "Main Site"
      },
      "status": "active"
    }
  ],
  "next_page_token": "OvrVMfenVmKgsH0SqfWQ2jgUsHFGXeanCB2",
  "page_size": 30,
  "total_records": 1
}
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Create a call queue

  • Method: POST
  • Path: /phone/call_queues
  • Tags: Call Queues

Creates a call queue. Call queues allow you to route incoming calls to a group of users. For instance, you can use call queues to route calls to various departments in your organization such as sales, engineering, billing, customer service, and so on. You can add phone users or common areas to call queues.

Prerequisites:

  • Pro, Business, or Education account
  • Account owner or admin permissions
  • Zoom Phone license

Scopes: phone:write:admin

Granular Scopes: phone:write:call_queue:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json

Example:

{
  "cost_center": "testCostCenter",
  "department": "testDepartment",
  "description": "testDescription",
  "extension_number": 10,
  "members": {
    "common_area_ids": [
      "1pegM6NlSfCEP_jBCfX94A"
    ],
    "users": [
      {
        "email": "2021050800001@testapi.com",
        "id": "dksc_wq67sach2_3jxs"
      }
    ]
  },
  "name": "callhandling0001_Not_Delete",
  "site_id": "lA68sMSVQ6GAUcGg_GH0nQ"
}

Responses

Status: 201 **HTTP Status Code:** `201` **Created** Call queue created successfully.
Content-Type: application/json
  • extension_number

    integer, format: int64 — The extension number assigned for the call queue.

  • id

    string — The unique identifier of the call queue.

  • name

    string — The name of the call queue.

  • status

    string — The status of the call queue. `active`: Call queue is enabled and active. `inactive`: Call queue is inactive. Inactive call queues cannot be called but will retain its settings and appear in the [Call Queues](https://zoom.us/pbx/page/telephone/groups#/groups) page.

Example:

{
  "extension_number": 26000026010,
  "id": "IU8_1qAGS1Gf-3e56B_1Lw",
  "name": "callhandling0001_Not_Delete",
  "status": "active"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Validation Failed. Multiple Site is disabled. Site does not exist. {extensionNumber} is out of range Exceeded the maximum number to add members per time <br> **Error Code:** `400` <br> Invalid short number length. Extension number {extensionNumber} is already used. <br> **Error Code:** `412` <br> The maximum number of Call Queue members is up to {maxSize}. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `1001` <br> User not found: {userId} <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get call queue details

  • Method: GET
  • Path: /phone/call_queues/{callQueueId}
  • Tags: Call Queues

Routes incoming calls to a group of users and returns information on a specific call queue.

For instance, you can use call queues to route calls to various departments in your organization such as sales, engineering, billing, customer service, and so on.

Prerequisites:

  • Pro, Business, or Education account
  • Account owner or admin permissions
  • Zoom Phone license

Scopes: phone:read:admin

Granular Scopes: phone:read:call_queue:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` **OK** Call Queue details retrieved successfully.
Content-Type: application/json
  • audio_prompt_language

    string, possible values: "en-US", "en-GB", "es-US", "fr-CA", "da-DK", "de-DE", "es-ES", "fr-FR", "it-IT", "nl-NL", "pt-PT", "ja", "ko-KR", "pt-BR", "zh-CN" — The language for all default audio prompts for the Call Queue. * `en-US` : English (US) * `en-GB` : English (UK) * `es-US` : Spanish (US) * `fr-CA` : French (Canada) * `da-DK` : Danish (Denmark) * `de-DE` : German (Germany) * `es-ES` : Spanish (Spain) * `fr-FR` : French (France) * `it-IT` : Italian (Italy) * `nl-NL` : Dutch (Netherlands) * `pt-PT` : Portuguese (Portugal) * `ja` : Japanese * `ko-KR` : Korean (Korea) * `pt-BR` : Portuguese (Brazil) * `zh-CN` : Chinese (PRC)

  • cost_center

    string — The name of the cost center.

  • department

    string — The name of the department.

  • extension_id

    string — The extension ID.

  • extension_number

    integer, format: int64 — The extension number assigned to the call queue.

  • id

    string — The unique identifier of the call queue.

  • members

    object

    • common_areas

      array

      Items:

      • extension_id

        string — The extension ID of common area.

      • id

        string — The unique identifier of the common area.

      • name

        string — The name of the common area.

    • users

      array

      Items:

      • extension_id

        string — The extension ID of the user.

      • id

        string — The unique identifier of the user.

      • level

        string, possible values: "manager", "user" — The level of the user. The value can be one of the following: `manager`: A call queue manager has the privilege to change call queue settings, policy settings and manage recordings and voicemail inbox. There can only be one manager for each call queue. `user`: Regular user without the privileges of a manager.

      • name

        string — The name of the user.

      • receive_call

        boolean — Whether the user can receive calls or not.

  • name

    string — The name of the call queue.

  • own_storage_name

    string — The name of your own storage. Use your own storage provided by Oracle Cloud Infrastructure (OCI) to store Zoom Phone recordings, voicemails, and voicemail transcripts, and custom greeting prompts.

  • phone_numbers

    array

    Items:

    • id

      string — The unique identifier of the number.

    • number

      string — The phone number.

    • source

      string, possible values: "internal", "external" — The source.

  • policy

    object — The call queue policy list.

    • voicemail_access_members

      array — The shared voicemail access member list.

      Items:

      All of:

      • access_user_id

        string — The member's ID in the shared voicemail access list determines the sharing or updating of access permissions. It must be the unique identifier of the user, or the unique identifier of the common area, depending on the access user type.

      • access_user_type

        string, possible values: "commonArea", "user" — The extension type of a member in the shared voicemail access member list. Allowed: user | commonArea.

      • allow_delete

        boolean — Whether the member has delete permissions. The default is **false**.

      • allow_download

        boolean — Whether the member has download permissions. The default is **false**.

      • allow_sharing

        boolean — Whether the member has the permission to share. The default is **false**.

      • shared_id

        string — The shared voicemail ID.

  • recording_storage_location

    string, possible values: "US", "AU", "CA", "DE", "IN", "JP", "SG", "BR", "CN", "MX" — Where recording will be stored. Recording includes Phone recordings, voicemail, voicemail transcripts, and custom greeting prompts. * `US` : United States * `AU` : Australia * `CA` : Canada * `DE` : Germany * `IN` : India * `JP` : Japan * `SG` : Singapore * `BR` : Brazil * `CN` : China * `MX` : Mexico <b>Note:</b> * If the setting is locked at the Account level, it can't be updated.

  • site

    object

  • status

    string, possible values: "active", "inactive" — The status of the call queue.

  • timezone

    string — [Timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones) of the Call Queue.

Example:

{
  "cost_center": "testCostCenter",
  "department": "testDepartment",
  "extension_id": "DgKe5UPTTlODBvcgmRIlPw",
  "extension_number": 26000026001,
  "id": "3PNsZB50TNev4pgBjtKeDw",
  "members": {
    "users": [
      {
        "id": "yNCY-HBHQ36rkXEXYTwu2g",
        "level": "user",
        "name": "APITA AUTO",
        "receive_call": true,
        "extension_id": "oeDyBe8zT2SzOZW6gQJXUA"
      }
    ],
    "common_areas": [
      {
        "id": "HIlHzOEzS8ymQPFBZ-39AQ",
        "name": "Common Area",
        "extension_id": "HIlHzOEzS8ymQPFBZ-39AQ"
      }
    ]
  },
  "name": "ApiTA_2020_12_21_19_54_05_476",
  "phone_numbers": [
    {
      "id": "KsxwNLEhQ0SJ4U4Bor4ShA",
      "number": "+12058945717",
      "source": "internal"
    }
  ],
  "site": {
    "id": "lA68sMSVQ6GAUcGg_GH0nQ",
    "name": "ApiTA_Site_2020_07_12_00_42_50_109"
  },
  "status": "active",
  "policy": {
    "voicemail_access_members": [
      {
        "access_user_id": "w0RChiauQeqRlv5fgxYULQ",
        "access_user_type": "commonArea",
        "allow_download": false,
        "allow_delete": false,
        "allow_sharing": false,
        "shared_id": "--e8ugg0SeS-9clgrDkn2w"
      }
    ]
  },
  "timezone": "Pacific/Midway",
  "audio_prompt_language": "en-US",
  "recording_storage_location": "US",
  "own_storage_name": "us-oracle-storage"
}
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `13000` <br> The Call Queue does not exist, callQueueId:{callQueueId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Delete a call queue

  • Method: DELETE
  • Path: /phone/call_queues/{callQueueId}
  • Tags: Call Queues

Call queues allow you to route incoming calls to a group of users. For instance, you can use call queues to route calls to various departments in your organization such as sales, engineering, billing, customer service etc. Use this API to delete a Call Queue.

Prerequisites:

  • Pro, Business, or Education account
  • Account owner or admin permissions
  • Zoom Phone license

Scopes: phone:write:admin

Granular Scopes: phone:delete:call_queue:admin

Rate Limit Label: Light

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Call Queue deleted successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> The group does not exist, groupId:{callQueueId}.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update call queue details

  • Method: PATCH
  • Path: /phone/call_queues/{callQueueId}
  • Tags: Call Queues

Updates information of a specific call queue. Call queues allow you to route incoming calls to a group of users. For instance, you can use call queues to route calls to various departments in your organization such as sales, engineering, billing, customer service, and so on.

Prerequisites:

  • Pro, Business, or Education account
  • Account owner or admin permissions
  • Zoom Phone license

Scopes: phone:write:admin

Granular Scopes: phone:update:call_queue:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • audio_prompt_language

    string, possible values: "en-US", "en-GB", "es-US", "fr-CA", "da-DK", "de-DE", "es-ES", "fr-FR", "it-IT", "nl-NL", "pt-PT", "ja", "ko-KR", "pt-BR", "zh-CN" — The language for all default audio prompts for the Call Queue. * `en-US` : English (US) * `en-GB` : English (UK) * `es-US` : Spanish (US) * `fr-CA` : French (Canada) * `da-DK` : Danish (Denmark) * `de-DE` : German (Germany) * `es-ES` : Spanish (Spain) * `fr-FR` : French (France) * `it-IT` : Italian (Italy) * `nl-NL` : Dutch (Netherlands) * `pt-PT` : Portuguese (Portugal) * `ja` : Japanese * `ko-KR` : Korean (Korea) * `pt-BR` : Portuguese (Brazil) * `zh-CN` : Chinese (PRC)

  • cost_center

    string — The cost center name.

  • department

    string — The department name.

  • description

    string — The description for the call queue.

  • extension_number

    integer, format: int64 — The phone extension number for the site. If a site code has been [assigned](https://support.zoom.us/hc/en-us/articles/360020809672-Managing-Multiple-Sites#h_79ca9c8f-c97b-4486-aa59-d0d9d31a525b) to the site, provide the short extension number instead of the original extension number.

  • name

    string — The name of the call queue.

  • recording_storage_location

    string, possible values: "US", "AU", "CA", "DE", "IN", "JP", "SG", "BR", "CN", "MX" — Where the recording will be stored. Recording includes phone recordings, voicemails, voicemail transcripts, and custom greeting prompts. * `US` : United States * `AU` : Australia * `CA` : Canada * `DE` : Germany * `IN` : India * `JP` : Japan * `SG` : Singapore * `BR` : Brazil * `CN` : China * `MX` : Mexico <b>Note:</b> * If the setting is locked at the Account Level, it can't be updated.

  • site_id

    string — The unique identifier of the [site](https://support.zoom.us/hc/en-us/articles/360020809672-Managing-Multiple-Sites) where the call queue is assigned.

  • status

    string, possible values: "active", "inactive" — The status of the call queue. Allowed values: `active` `inactive`

  • timezone

    string — The [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones) of the call queue.

Example:

{
  "cost_center": "Cost center",
  "department": "Department",
  "description": "Description",
  "extension_number": 10,
  "name": "Call Queue",
  "site_id": "8f71O6rWT8KFUGQmJIFAdQ",
  "status": "active",
  "timezone": "Pacific/Midway",
  "audio_prompt_language": "en-US",
  "recording_storage_location": "US"
}

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Call Queue details updated successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Validation Failed. The group does not exist, groupId:{groupId} Timezone not found in the system. <br> **Error Code:** `400` <br> Unable to update this call queue as it is used for internal safety response team. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List call queue members

  • Method: GET
  • Path: /phone/call_queues/{callQueueId}/members
  • Tags: Call Queues

Returns a list of call queue members.

Prerequisites:

  • Pro, Business, or Education account
  • Account owner or admin permissions
  • Zoom Phone license

Scopes: phone:read:admin

Granular Scopes: phone:read:list_call_queue_members:admin

Rate Limit Label: MEDIUM

Responses

Status: 200 **HTTP Status Code:** `200` **OK** Call Queue members listed successfully.
Content-Type: application/json
  • call_queue_members

    array

    Items:

    • extension_id

      string — The extension ID of the user or common area.

    • id

      string — The member ID.

    • level

      string, possible values: "commonArea", "user" — The level of the member.

    • name

      string — The name of the user or common area.

    • receive_call

      boolean — Whether the user can receive calls. It displays if the level is user.

  • next_page_token

    string — The next page token paginates through a large set of results. A next page token is returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • page_size

    integer — The number of records returned from a single API call.

  • total_records

    integer — The total number of records found for this query.

Example:

{
  "call_queue_members": [
    {
      "id": "yNCY-HBHQ36rkXEXYTwu2g",
      "level": "user",
      "name": "APITA AUTO",
      "receive_call": true,
      "extension_id": "oeDyBe8zT2SzOZW6gQJXUA"
    }
  ],
  "next_page_token": "OvrVMfenVmKgsH0SqfWQ2jgUsHFGXeanCB2",
  "page_size": 30,
  "total_records": 1
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Add members to a call queue

  • Method: POST
  • Path: /phone/call_queues/{callQueueId}/members
  • Tags: Call Queues

Adds phone users or common areas as members to a specific call queue.

Prerequisites:

  • Pro or higher account plan.
  • Zoom Phone license

Scopes: phone:write:admin

Granular Scopes: phone:write:call_queue_member:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • members

    object — A maximum of 10 members can be added at a time.

Example:

{
  "members": {
    "common_area_ids": [
      "iewGNg-LSYa0ghhkr4d0Hg"
    ],
    "users": [
      {
        "email": "callhandling0001@testapi.com",
        "id": "wh23uihdqw-43iwdn"
      }
    ]
  }
}

Responses

Status: 201 **HTTP Status Code:** `201` **Created** Members added successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Validation Failed. The group does not exist, groupId:{callQueueId}. Exceeded the maximum number to add members per time. <br> **Error Code:** `412` <br> The maximum number of Call Queue members is up to {maxSize}. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `1001` <br> User not found: {userId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Unassign all members

  • Method: DELETE
  • Path: /phone/call_queues/{callQueueId}/members
  • Tags: Call Queues

Removes all members from a call queue who were previously assigned to that call queue. The members could be phone users or common areas.

Prerequisites:

  • Pro or higher account plan.
  • Zoom Phone license

Scopes: phone:write:admin

Granular Scopes: phone:delete:call_queue_member:admin

Rate Limit Label: Light

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Member unassigned successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Validation Failed. The group does not exist, groupId:{callQueueId}.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Unassign a member

  • Method: DELETE
  • Path: /phone/call_queues/{callQueueId}/members/{memberId}
  • Tags: Call Queues

Removes a member who was previously added to a call queue. The member could be a phone user or common area. Note that you cannot use this API to unassign a call queue manager.

Prerequisites:

  • Pro or higher account plan.
  • Zoom Phone license

Scopes: phone:write:admin

Granular Scopes: phone:delete:call_queue_member:admin

Rate Limit Label: Light

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Member unassigned successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Validation Failed. The group does not exist, groupId:{callQueueId}. **Error Code:** `400` <br> Unable to delete manager
Status: 404 **HTTP Status Code:** `404` <br> Not Found
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Assign numbers to a call queue

  • Method: POST
  • Path: /phone/call_queues/{callQueueId}/phone_numbers
  • Tags: Call Queues

Assigns numbers to a call queue. After buying phone number(s), you can assign it and allow callers to directly dial a number to reach a call queue.

Prerequisites:

  • Pro or higher account plan
  • Account owner or admin permissions
  • Zoom Phone license

Scopes: phone:write:admin

Granular Scopes: phone:write:call_queue_number:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • phone_numbers

    array — This field provides either the `id` or the `number` field. Only a maximum of five numbers can be assigned to a call queue at a time.

    Items:

    • id

      string — The unique identifier of the phone number.

    • number

      string — The phone number.

Example:

{
  "phone_numbers": [
    {
      "id": "MbXwdYC0R3GsbUy4iJ7IbQ",
      "number": "+12058945456"
    }
  ]
}

Responses

Status: 204 **HTTP Status Code:** `204` **No Content**
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Call Queue does not exist: {callQueueId}. <br> **Error Code:** `400` <br> Need to specify at least one phone number <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Unassign all phone numbers

  • Method: DELETE
  • Path: /phone/call_queues/{callQueueId}/phone_numbers
  • Tags: Call Queues

Unbinds all phone numbers that are assigned to a call queue. After successful unbinding, the numbers will appear in the Unassigned tab.

If you only need to unassign a specific phone number, use the Unassign a Phone Number API instead.

Prerequisites:

  • Pro or higher account palan
  • Account owner or admin permissions
  • Zoom Phone license

Scopes: phone:write:admin

Granular Scopes: phone:delete:call_queue_number:admin

Rate Limit Label: LIGHT

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Phone numbers unassigned successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Validation Failed. The group does not exist, groupId:{callQueueId} <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Unassign a phone number

  • Method: DELETE
  • Path: /phone/call_queues/{callQueueId}/phone_numbers/{phoneNumberId}
  • Tags: Call Queues

Unbinds a phone number from a call queue. After assigning a phone number, you can unbind it if you don't want it to be assigned to a call queue. After successful unbinding, the number will appear in the Unassigned tab.

Prerequisites:

  • Pro or higher account palan
  • Account owner or admin permissions
  • Zoom Phone license

Scopes: phone:write:admin

Granular Scopes: phone:delete:call_queue_number:admin

Rate Limit Label: LIGHT

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Phone Number unassigned successfuly.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Validation failed. The group does not exist, groupId:{callQueueId}. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `404` <br> Phone number not belong to call queue. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Add a policy subsetting to a call queue

  • Method: POST
  • Path: /phone/call_queues/{callQueueId}/policies/{policyType}
  • Tags: Call Queues

Adds the policy subsetting for a specific call queue according to the policyType. For example, you can use set up shared access members.

Prerequisites:

  • Pro or higher account with Zoom Phone license.
  • Account owner or admin privileges

Scopes: phone:write:admin

Granular Scopes: phone:write:call_queue_policy:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • voicemail_access_members

    array — The shared voicemail access member list. The number is limited to the minimum value of 10 or the number of allowed access members account setting.

    Items:

    • access_user_id

      string — The member's ID in the shared voicemail access list determines the sharing or updating of access permissions. It must be the unique identifier of the user, or the unique identifier of the common area, depending on the access user type.

    • access_user_type

      string, possible values: "commonArea", "user" — The extension type of the member to be added in the shared voicemail access member list. The default type will be user if empty. Allowed: user | commonArea.

    • allow_delete

      boolean — Whether the member has delete permissions. The default is **false**.

    • allow_download

      boolean — Whether the member has download permissions. The default is **false**.

    • allow_sharing

      boolean — Whether the member has the permission to share. The default is **false**.

Example:

{
  "voicemail_access_members": [
    {
      "access_user_id": "w0RChiauQeqRlv5fgxYULQ",
      "access_user_type": "commonArea",
      "allow_download": false,
      "allow_delete": false,
      "allow_sharing": false
    }
  ]
}

Responses

Status: 201 **HTTP Status Code** `201` Created Successfully.
Content-Type: application/json
  • voicemail_access_members

    array — The shared access member list.

    Items:

    All of:

    • access_user_id

      string — The member's ID in the shared voicemail access list determines the sharing or updating of access permissions. It must be the unique identifier of the user, or unique identifier of the common area depending on the access user type.

    • access_user_type

      string, possible values: "commonArea", "user" — The extension type of the member to be added in the shared voicemail access member list. Allowed: user | commonArea.

    • allow_delete

      boolean — Whether the member has delete permissions. The default is **false**.

    • allow_download

      boolean — Whether the member has download permissions. The default is **false**.

    • allow_sharing

      boolean — Whether the member has the permission to share. The default is **false**.

    • shared_id

      string — The shared voicemail ID.

Example:

{
  "voicemail_access_members": [
    {
      "access_user_id": "w0RChiauQeqRlv5fgxYULQ",
      "access_user_type": "commonArea",
      "allow_download": false,
      "allow_delete": false,
      "allow_sharing": false,
      "shared_id": "--e8ugg0SeS-9clgrDkn2w"
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Validation Failed. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `13000` <br> The Call Queue does not exist, callQueueId:{callQueueId}. <br> **Error Code:** `13001` <br> Invalid value for parameter {policyType}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Delete a CQ policy setting

  • Method: DELETE
  • Path: /phone/call_queues/{callQueueId}/policies/{policyType}
  • Tags: Call Queues

Use this API to remove the policy sub-setting for a specific call queue according to the policyType. For example, you can use this API to remove shared access members.

Prerequisites:

  • Pro or higher account with Zoom Phone license.
  • Account owner or admin privileges

Scopes: phone:write:admin

Granular Scopes: phone:delete:call_queue_policy:admin

Rate Limit Label: LIGHT

Responses

Status: 204 **HTTP Status Code:** `204` No Content
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Validation Failed. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `13000` <br> The Call Queue does not exist, callQueueId:{callQueueId}. <br> **Error Code:** `13001` <br> Invalid value for parameter {policyType}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update a call queue's policy subsetting

  • Method: PATCH
  • Path: /phone/call_queues/{callQueueId}/policies/{policyType}
  • Tags: Call Queues

Updates the policy subsetting for a specific call queue according to the policyType. For example, you can use this API to update shared access members.

Prerequisites:

  • Pro or higher account with Zoom Phone license.
  • Account owner or admin privileges

Scopes: phone:write:admin

Granular Scopes: phone:update:call_queue_policy:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • voicemail_access_members

    array — The shared voicemail access member list. The maximum number of allowed access members follows the setting in your account.

    Items:

    All of:

    • access_user_id

      string — The member's ID or email in the shared voicemail access list determines the sharing or updating of access permissions. It must be the unique identifier of the user, or the unique identifier of the common area, depending on the access user type.

    • access_user_type

      string, possible values: "commonArea", "user" — The extension type of the member to be added in the shared voicemail access member list. The default type will be user if empty. Allowed: user | commonArea.

    • allow_delete

      boolean — Whether the member has delete permissions. The default is **false**.

    • allow_download

      boolean — Whether the member has download permissions. The default is **false**.

    • allow_sharing

      boolean — Whether the member has the permission to share. The default is **false**.

    • shared_id

      string — The shared voicemail ID.

Example:

{
  "voicemail_access_members": [
    {
      "access_user_id": "w0RChiauQeqRlv5fgxYULQ",
      "access_user_type": "commonArea",
      "allow_download": false,
      "allow_delete": false,
      "allow_sharing": false,
      "shared_id": "--e8ugg0SeS-9clgrDkn2w"
    }
  ]
}

Responses

Status: 204 **HTTP Status Code:** `204` No Content.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Validation Failed. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `13000` <br> The Call Queue does not exist, callQueueId:{callQueueId}. <br> **Error Code:** `13001` <br> Invalid value for parameter {policyType}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get call queue recordings

  • Method: GET
  • Path: /phone/call_queues/{callQueueId}/recordings
  • Tags: Call Queues

Use this API to view call recordings from the call queue.

Prerequisites:

  • Pro or higher account with Zoom Phone license.
  • Automatic call recordings must be enabled in the Policy Settings for call queues.

Scopes: phone:read:admin

Granular Scopes: phone:read:list_call_queue_recordings:admin

Rate Limit Label: Medium

Responses

Status: 200 OK
Content-Type: application/json
  • from

    string — Start date.

  • next_page_token

    string — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • page_size

    integer — The number of records returned within a single API call.

  • recordings

    array

    Items:

    • callee_name

      string — Contact name of the callee.

    • callee_number

      string — Number of the callee.

    • callee_number_type

      string, possible values: "1", "2", "3" — The callee's number type: * `1` &mdash; Internal number. * `2` &mdash; External number. * `3` &mdash; Customized emergency number.

    • caller_name

      string — Name of the caller.

    • caller_number

      string — Phone number of the caller.

    • caller_number_type

      integer, possible values: 1, 2 — The caller's number type: * `1` &mdash; Internal number. * `2` &mdash; External number.

    • date_time

      string, format: date — Date of the recording.

    • direction

      string — Direction of call. The value of this field can be either `outbound` or `inbound`.

    • download_url

      string — URL using which the recording can be downloaded.

    • duration

      integer — Duration of the call.

    • id

      string — Unique identifier of the recording.

  • to

    string — End date.

  • total_records

    integer — The total number of records returned for this API call.

Example:

{
  "from": "2022-03-26",
  "next_page_token": "OvrVMfenVmKgsH0SqfWQ2jgUsHFGXeanCB2",
  "page_size": 30,
  "recordings": [
    {
      "callee_name": "APITA AUTO",
      "callee_number": "+12058945717",
      "callee_number_type": "1",
      "caller_name": "ZOOM_API Test",
      "caller_number": "+12055432724",
      "caller_number_type": 1,
      "date_time": "2022-04-01",
      "direction": "inbound",
      "download_url": "https://file.zoomdev.us/file?filename=call_recording_080e-2cba-4315-a963-81ce9635e_20220401031509.mp3&jwt=eyJhbGciNiJ9.eyJka0NzZiNjQyYjhkZjRlN2E3ZTgxNjU4MmEzMWQ4NjE3NjkyNjNjYmQ0NDJhM2QzYzY3NTZjIiwiaXNzIjoiwiYXVkIjoiZmlsZSIsImlhdCI6MTY0ODV4cCI6MTY0ODc4NTMxN30.azPOfIrODv6v6-7YWwvBWAqysJy_xe_FAI&path=zoomfs%3A%2F%2Fpbx-voice%2Frecording%2F2022%2F4%2F1%2FKxQKamXhQfWQs9BPdvDagA%2F8dunF6uUT1qW3KEe0sgaXA%2F08096c0e-2cba-4315-a963-81=e9635e%2Fcall_recording_080=c0e-2cba-4315-a963-813=635e_20220401031509.mp3",
      "duration": 10,
      "id": "08096c0e2cba4315a963813d1ce9635e"
    }
  ],
  "to": "2022-04-1",
  "total_records": 1
}
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List phone numbers

  • Method: GET
  • Path: /phone/carrier_reseller/numbers
  • Tags: Carrier Reseller

Use this API to list phone numbers in a carrier reseller (master) account that can be pushed to its subaccounts.

Prerequisites:

  • A Pro or higher account plan
  • A Zoom Phone license

Scopes: phone:read:admin

Granular Scopes: phone:read:list_carrier_numbers:admin

Rate Limit Label: Medium

Responses

Status: 200 **HTTP Status Code:** `200` **No Content** Phone numbers listed successfully.
Content-Type: application/json
  • carrier_reseller_numbers

    array

    Items:

    • assigned_status

      string, possible values: "assigned", "unassigned", "returned" — Number assignment status.

    • carrier_code

      integer — Carrier reseller ID.

    • country_iso_code

      string — Two lettered country [code](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries).

    • phone_number

      string — Phone number in E164 format.

    • status

      string, possible values: "inactive", "active" — Status of phone number.

    • sub_account_id

      string — `nullable` Partner account ID from sub-account.

    • sub_account_name

      string — `nullable` Sub-account name.

  • next_page_token

    string — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • page_size

    integer — The number of records returned within a single API call for each page.

  • total_records

    integer — The total number of records returned.

Example:

{
  "carrier_reseller_numbers": [
    {
      "assigned_status": "assigned",
      "carrier_code": 9998,
      "country_iso_code": "US",
      "phone_number": "+12059535689",
      "status": "active",
      "sub_account_id": "8EVJZPwCTmSZme6fTOcBFg",
      "sub_account_name": "testAccount"
    }
  ],
  "next_page_token": "next_page_token",
  "page_size": 30,
  "total_records": 1
}
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Create phone numbers

  • Method: POST
  • Path: /phone/carrier_reseller/numbers
  • Tags: Carrier Reseller

Use this API to add phone numbers to a carrier reseller (master) account. Up to 200 numbers at a time. If this API is called in MA mode, it also has functions of distribution.

Prerequisites:

  • A Pro or higher account plan
  • A Zoom Phone license

Scopes: phone:write:admin

Granular Scopes: phone:write:carrier_number:admin

Rate Limit Label: Light

Request Body

Content-Type: application/json

Array of:

  • phone_number

    string — Phone number in E164 format.

  • status

    string, possible values: "active", "inactive" — `nullable` Status of phone number. default value is 'inactive'.

Example:

[
  {
    "phone_number": "+12059535689",
    "status": "inactive"
  }
]

Responses

Status: 201 **HTTP Status Code:** `201` **No Content** Phone numbers created successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> This account is not a Carrier Reseller. Reseller does not configure Carrier. **Error Code:** `300` <br> Invalid phone number. Invalid phone number status. Unable to recognize country. Phone number already exists. **Error Code:** `429` <br> Phone number batch operation is limited to 200 per request.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Activate phone numbers

  • Method: PATCH
  • Path: /phone/carrier_reseller/numbers
  • Tags: Carrier Reseller

Use this API to change phone number status to 'active' in a carrier reseller's master account. Up to 200 numbers at a time.

Prerequisites:

  • A Pro or higher account plan
  • A Zoom Phone license

Scopes: phone:write:admin

Granular Scopes: phone:update:carrier_number:admin

Rate Limit Label: Light

Request Body

Content-Type: application/json

Array of:

string — Phone number in E164 format. Number up to 200.

Example:

[
  "+12059535689"
]

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Phone numbers activated successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Phone number does not exists. **Error Code:** `429` <br> Phone number batch operation is limited to 200 per request.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Delete a phone number

  • Method: DELETE
  • Path: /phone/carrier_reseller/numbers/{number}
  • Tags: Carrier Reseller

Use this API to delete or unassign a phone number from a carrier reseller account.

Prerequisites:

  • A Pro or higher account plan
  • A Zoom Phone license

Scopes: phone:write:admin

Granular Scopes: phone:delete:carrier_number:admin

Rate Limit Label: Light

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Phone number unassigned/deleted successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Phone number does not exists. **Error Code:** `429` <br> Phone number batch operation is limited to 200 per request.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List common areas

  • Method: GET
  • Path: /phone/common_areas
  • Tags: Common Areas

Lists common areas under an account.

Prerequisites

  • Pro or a higher account with Zoom Phone license
  • Account owner or admin permissions

Scopes: phone:read:admin

Granular Scopes: phone:read:common_area:admin

Rate Limit Label: MEDIUM

Responses

Status: 200 **HTTP Status Code:** `200` **OK** The list of common areas retrieved successfully.
Content-Type: application/json
  • common_areas

    array

    Items:

    • calling_plans

      array

      Items:

      • billing_account_id

        string — The ID of the billing account. It displays when the common area is in India.

      • billing_account_name

        string — The billing account name. It displays when the common area is in India.

      • billing_subscription_id

        string — The billing subscription ID. It displays when the account supports billing multiple subscriptions.

      • billing_subscription_name

        string — The billing subscription name. It displays when the account supports billing multiple subscriptions. It can be edited through the Billing page.

      • name

        string — The name of the plan.

      • type

        integer — The Zoom Phone [calling plan number](https://marketplace.zoom.us/docs/api-reference/other-references/plans#zoom-phone-calling-plans).

    • desk_phones

      array — The common area's desk phones.

      Items:

      • device_type

        string — The desk phone device type.

      • display_name

        string — The desk phone display name.

      • id

        string — The desk phone ID.

      • status

        string, possible values: "online", "offline" — The desk phone status.

    • display_name

      string — The display name of the common area.

    • extension_number

      integer, format: int64 — The extension number.

    • id

      string — The common area ID or common area extension ID.

    • phone_numbers

      array

      Items:

      • display_name

        string — The phone number display name.

      • id

        string — The phone number ID.

      • number

        string — The phone number.

      • source

        string, possible values: "internal", "external" — The phone number source. The value can be either `internal` or `external`.

    • site

      object

    • status

      string, possible values: "online", "offline" — The status of the common area.

  • next_page_token

    string — The next page token paginates through a large set of results. A next page token is returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • page_size

    integer — The total number of records returned from a single API call.

Example:

{
  "common_areas": [
    {
      "calling_plans": [
        {
          "name": "US/CA Metered Calling Plan",
          "type": 100,
          "billing_account_id": "3WWAEiEjTj2IQuyDiKMd_A",
          "billing_account_name": "Delhi billing",
          "billing_subscription_id": "FT-SUBREF-21168178",
          "billing_subscription_name": "My Subscription"
        }
      ],
      "display_name": "test_ca",
      "extension_number": 100012347,
      "id": "JOZmuJ30Spyrw-v9vUzIrA",
      "phone_numbers": [
        {
          "display_name": "Phone number display name",
          "id": "S5q4FDC3QsOCnO7LqHgqNw",
          "number": "+12058945543",
          "source": "internal"
        }
      ],
      "site": {
        "id": "8f71O6rWT8KFUGQmJIFAdQ",
        "name": "Main Site"
      },
      "status": "offline",
      "desk_phones": [
        {
          "id": "Aky1xpSLSc2PR0XOtj9XWQ",
          "display_name": "analog_ta",
          "device_type": "Poly obi504",
          "status": "offline"
        }
      ]
    }
  ],
  "next_page_token": "RaO87FrnwXvFQta5aV8sU5C3c9O8s9Nraq2",
  "page_size": 30
}
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Add a common area

  • Method: POST
  • Path: /phone/common_areas
  • Tags: Common Areas

Adds an instance of a common area. You can configure devices shared by users and deployed in shared spaces.

Prerequisites

  • Pro or a higher account with Zoom Phone license
  • Account owner or admin permissions

Scopes: phone:write:admin

Granular Scopes: phone:write:common_area:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json

Example:

{
  "calling_plans": [
    {
      "type": 100,
      "billing_subscription_id": "FT-SUBREF-21168178"
    }
  ],
  "country_iso_code": "US",
  "display_name": "test_ca",
  "extension_number": 1001014,
  "site_id": "8f71O6rWT8KFUGQmJIFAdQ",
  "timezone": "America/Los_Angeles",
  "template_id": "2kFqiqSlS5udzWB5QqMiNg"
}

Responses

Status: 201 **HTTP Status Code:** `201` **Created** The common area has been added successfully.
Content-Type: application/json
  • display_name

    string — The display name of the common area.

  • id

    string — The common area ID or common area extension ID.

Example:

{
  "display_name": "test_ca",
  "id": "JOZmuJ30Spyrw-v9vUzIrA"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Validation failed.<br> * Timezone not found in the system. * This country is not supported by Zoom Phone. * Site does not exist: {site_id}.<br> * The template type error or the template does not exist:{template_id}.<br> * The template's site is not the same as the common area's site.<br> <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Generate activation codes for common areas

  • Method: POST
  • Path: /phone/common_areas/activation_code
  • Tags: Common Areas

Generates activation codes for common areas. You can add up to 50 common areas at a time.

Prerequisites

  • Pro or a higher account with Zoom Phone license
  • Account owner or admin permissions

Scopes: phone:write:admin

Granular Scopes: phone:write:common_area:admin

Rate Limit Label: LIGHT

Not supported in Gov cluster

Request Body

Content-Type: application/json

Example:

{
  "common_area_ids": [
    "5NmyHmVoRWWk4YT5ad6oxg"
  ]
}

Responses

Status: 201 HTTP Status Code: 201 Generate Activation Codes successfully.
Content-Type: application/json
  • common_areas_activation_codes

    array — The activation code information of the common areas.

    Items:

    • activation_code

      string — The activation code.

    • activation_code_expiration

      string — The time when the activation code expires (format: 'yyyy-MM-ddThh:dd:ssZ').

    • common_area_id

      string — The common area ID or common area extension ID.

    • display_name

      string — The display name of the common area.

    • extension_number

      integer — The extension number.

Example:

{
  "common_areas_activation_codes": [
    {
      "common_area_id": "JOZmuJ30Spyrw-v9vUzIrA",
      "display_name": "test_ca",
      "extension_number": 100012347,
      "activation_code": "5678-2345-1234-1234",
      "activation_code_expiration": "2021-10-08T16:12:04Z"
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Common area size must be less than 50. <br> **Error Code:** `404` <br> Common area does not exist: {commonAreaId}. <br> **Error Code:** `400` <br> Common area smartphones feature is disabled. <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `403` <br> You do not have permission. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List activation codes

  • Method: GET
  • Path: /phone/common_areas/activation_codes
  • Tags: Common Areas

Returns a list of activation code information of the common areas under an account.

Prerequisites

  • Pro or a higher account with Zoom Phone license
  • Account owner or admin permissions

Scopes: phone:read:admin

Granular Scopes: phone:read:list_common_area_activation_codes:admin

Rate Limit Label: MEDIUM

Not supported in Gov cluster

Responses

Status: 200 **HTTP Status Code:** `200` **OK** The list of activation codes of the common areas retrieved successfully.
Content-Type: application/json
  • common_areas_activation_codes

    array — The activation code information of the common areas.

    Items:

    • activation_code

      string — The activation code.

    • activation_code_expiration

      string — The time when the activation code expires (format: 'yyyy-MM-ddThh:dd:ssZ').

    • common_area_id

      string — The common area ID or common area extension ID.

    • display_name

      string — The display name of the common area.

    • extension_number

      integer, format: int64 — The extension number.

    • site

      object

    • status

      string, possible values: "used", "not_used" — The values of this field can be `used` or `not_used`. used: The common area has been logged in to a smartphone through an activation code. not_used: The common area is never logged in to a smartphone through an activation code.

  • next_page_token

    string — The next page token paginates through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • page_size

    integer — The total number of records returned from a single API call.

Example:

{
  "common_areas_activation_codes": [
    {
      "common_area_id": "JOZmuJ30Spyrw-v9vUzIrA",
      "display_name": "test_ca",
      "extension_number": 100012347,
      "activation_code": "5678-2345-1234-1234",
      "activation_code_expiration": "2021-10-08T16:12:04Z",
      "status": "used",
      "site": {
        "site_id": "8f71O6rWT8KFUGQmJIFAdQ",
        "name": "Main Site"
      }
    }
  ],
  "next_page_token": "RaO87FrnwXvFQta5aV8sU5C3c9O8s9Nraq2",
  "page_size": 30
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> The next page token is invalid or expired. <br> **Error Code:** `400` <br> The account_id is invalid. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Apply template to common areas

  • Method: POST
  • Path: /phone/common_areas/template_id/{templateId}
  • Tags: Common Areas

Applies a template to common areas. You can add up to 50 common areas at a time.

Prerequisites

  • Pro or a higher account with Zoom Phone license
  • Account owner or admin permissions

Scopes: phone:write:admin

Granular Scopes: phone:write:apply_template_to_common_areas:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json

Example:

{
  "common_area_ids": [
    "5NmyHmVoRWWk4YT5ad6oxg"
  ]
}

Responses

Status: 201 **HTTP Status Code:** `201` Template applied successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> The template's site is not the same as the common area's site. <br> **Error Code:** `400` <br> Common area size must be less than 50. <br> You need to have administrative privileges to edit this site. <br> **Error Code:** `404` <br> Common area does not exist: {commonAreaId}. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found The template type error or the template does not exist:{templateId}.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get common area details

  • Method: GET
  • Path: /phone/common_areas/{commonAreaId}
  • Tags: Common Areas

Returns detailed information on the common area.

Prerequisites

  • Pro or a higher account with Zoom Phone license
  • Account owner or admin permissions

Scopes: phone:read:admin

Granular Scopes: phone:read:common_area:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` **OK** Common area details returned successfully.
Content-Type: application/json
  • area_code

    string — The area code of the common area.

  • calling_plans

    array

    Items:

    • billing_account_id

      string — The billing account ID. It displays when the common area is in India.

    • billing_account_name

      string — The billing account name. It displays when the common area is in India.

    • billing_subscription_id

      string — The billing subscription ID. It displays when the account supports billing multiple subscriptions.

    • billing_subscription_name

      string — The billing subscription name. It displays when the account supports billing multiple subscriptions. It can be edited via the Billing page.

    • name

      string — The calling plan name.

    • type

      integer — The calling plan type.

  • cost_center

    string — The cost center the common area belongs to.

  • country

    object — The common area country information.

  • department

    string — The department the common area belongs to.

  • display_name

    string — The display name of the common area.

  • emergency_address

    object — The emergency address information.

    • address_line1

      string — The emergency location address line 1.

    • address_line2

      string — The emergency location address line 2.

    • city

      string — The emergency location address city.

    • country

      string — The country of the emergency location.

    • id

      string — The emergency location address ID.

    • state_code

      string — The emergency location address state code.

    • status

      integer, possible values: 1, 2, 3, 4, 5, 6 — The emergency address verification status.: * `1` &mdash; Verification not Required. * `2` &mdash; Unverified. * `3` &mdash; Verification requested. * `4` &mdash; Verfied. * `5` &mdash; Rejected. * `6` &mdash; Verification failed.

    • zip

      string — The emergency address Zip Code.

  • extension_number

    integer, format: int64 — The extension number.

  • id

    string — The common area ID or common area extension ID.

  • outbound_caller_ids

    array

    Items:

    • is_default

      boolean — Whether the outbound caller ID is the default one: if `true`, the outbound caller ID is the default caller ID.

    • name

      string — The outbound caller name.

    • number

      string — The outbound caller number.

  • phone_numbers

    array

    Items:

    • display_name

      string — The display name of the phone number.

    • id

      string — The phone number ID.

    • number

      string — The phone number.

    • source

      string, possible values: "internal", "external" — The phone number source: `internal` or `external`

  • policy

    object — A list of the common area's policies. Policies are exceptions to the common area's restrictions.

    • ad_hoc_call_recording

      object — A list of ad hoc call recording settings.

      • enable

        boolean — Whether the current extension can record and save calls to the cloud.

      • locked

        boolean — Whether the senior administrator allow users to modify the current settings.

      • locked_by

        string, possible values: "account", "user_group", "site" — Which level of administrator prohibits the modification of the current settings.

      • recording_start_prompt

        boolean — Whether a prompt plays to call participants when the recording has started.

      • recording_transcription

        boolean — Whether the call recording transcription is enabled.

    • auto_call_recording

      object — A list of the user's automatic call recording settings.

      • allow_stop_resume_recording

        boolean — Whether the stop of and resuming of automatic call recording is enabled.

      • enable

        boolean — Whether the automatic call recording is enabled.

      • inbound_audio_notification

        object

        • recording_explicit_consent

          boolean — Whether the **Press 1** option that provides recording consent for outbound call is enabled. <b>Note:</b> * If customers do not opt OP flag named `Enable Caller Based Consent Options`, the values of `recording_explicit_consent`, `inbound_audio_notification.recording_explicit_consent`, and `outbound_audio_notification.recording_explicit_consent` always remain consistent. * If customers do not opt OP flag named `Enable Caller Based Consent Options`, update both `inbound_audio_notification.recording_explicit_consent` and `outbound_audio_notification.recording_explicit_consent` with the same value.

        • recording_start_prompt

          boolean — Whether a prompt plays to call participants when the recording has started for inbound call is enabled. <b>Note:</b> * If customers do not opt OP flag named `Enable Caller Based Consent Options`, the values of `recording_start_prompt`, `inbound_audio_notification.recording_start_prompt`, and `outbound_audio_notification.recording_start_prompt` always remain consistent. * If customers do not opt OP flag named `Enable Caller Based Consent Options`, update both `inbound_audio_notification.recording_start_prompt` and `outbound_audio_notification.recording_start_prompt` with the same value.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "account", "user_group", "site" — Which level of administrator prohibits the modification of the current settings.

      • outbound_audio_notification

        object

        • recording_explicit_consent

          boolean — Whether the **Press 1** option that provides recording consent for outbound call is enabled. <b>Note:</b> * If customers do not opt OP flag named `Enable Caller Based Consent Options`, the values of `recording_explicit_consent`, `inbound_audio_notification.recording_explicit_consent`, and `outbound_audio_notification.recording_explicit_consent` always remain consistent. * If customers do not opt OP flag named `Enable Caller Based Consent Options`, update both `inbound_audio_notification.recording_explicit_consent` and `outbound_audio_notification.recording_explicit_consent` with the same value.

        • recording_start_prompt

          boolean — Whether a prompt plays to call participants when the recording has started for outbound call is enabled. <b>Note:</b> * If customers do not opt OP flag named `Enable Caller Based Consent Options`, the values of `recording_start_prompt`, `inbound_audio_notification.recording_start_prompt`, and `outbound_audio_notification.recording_start_prompt` always remain consistent. * If customers do not opt OP flag named `Enable Caller Based Consent Options`, update both `inbound_audio_notification.recording_start_prompt` and `outbound_audio_notification.recording_start_prompt` with the same value.

      • recording_calls

        string, possible values: "inbound", "outbound", "both" — The type of calls automatically recorded: * `inbound` * `outbound` * `both`

      • recording_transcription

        boolean — Whether the call recording transcription is enabled.

    • call_park

      object

      • call_not_picked_up_action

        integer — The action when a parked call is not picked up. 100-Ring back to parker, 0-Forward to voicemail of the parker, 9-Disconnect, 50-Forward to another extension.

      • enable

        boolean — Whether to allow calls placed on hold to be resumed from another location using a retrieval code.

      • expiration_period

        integer, possible values: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60 — A time limit for parked calls and unit minutes. After the expiration period ends, the retrieval code is no longer valid and a new code will be generated.

      • forward_to

        object — The extension's forwarding information.

        • display_name

          string — The extension's name.

        • extension_id

          string — The extension ID.

        • extension_number

          integer, format: int64 — The extension number.

        • extension_type

          string, possible values: "user", "zoomRoom", "commonArea", "ciscoRoom/polycomRoom", "autoReceptionist", "callQueue", "sharedLineGroup" — The type of extension: * `user` * `zoomRoom` * `commonArea` * `ciscoRoom/polycomRoom` * `autoReceptionist` * `sharedLineGroup` * `callQueue`

        • id

          string — The ID of the extension `user`, `zoomRoom`, `commonArea`, `ciscoRoom/polycomRoom`, `autoReceptionist`, `callQueue` or `sharedLineGroup`.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "account", "user_group", "site" — Which level of administrator prohibits the modification of the current settings.

    • check_voicemails_over_phone

      object — Whether the user can check voicemails of users and shared line groups over phone using a PIN code.

      • enable

        boolean

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "account", "user_group", "site" — Which level of administrator prohibits modifying the current settings.

      • modified

        boolean — Whether the current settings have been modified.If modified, they can be reset in the update call.

    • delegation

      object — Allow common area to use delegation.

      • enable

        boolean

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "account", "user_group", "site" — Which level of administrator prohibits modifying the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset in the update call.

    • hand_off_to_room

      object

      • enable

        boolean — Whether to allow extensions to send a call to a Zoom Room.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "account", "user_group", "site" — Which level of administrator prohibits the modification of the current settings.

      • modified

        boolean — Whether the current settings have been modified.If modified, they can be reset in the update call.

    • hide_zoom_phone_calls_in_ios

      object — Hide Zoom Phone calls in iOS/iPadOS device call history.

      • enable

        boolean

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "account", "user_group", "site" — Which level of administrator prohibits modifying the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset in the update call.

    • international_calling

      object — Whether the current extension can make international calls outside of their calling plan.

      • enable

        boolean

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "account", "site" — Which level of administrator prohibits modifying the current settings.

      • modified

        boolean — Whether the current settings have been modified.If modified, they can be reset in the update call.

    • ios_call_kit

      object — Use CallKit always for Incoming call notifications on iOS/iPadOS devices.

      • enable

        boolean

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "account", "user_group", "site" — Which level of administrator prohibits modifying the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset in the update call.

    • mobile_switch_to_carrier

      object

      • enable

        boolean — Whether to allow the extension to switch from a Zoom Phone to their native carrier.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "account", "user_group", "site" — Which level of administrator prohibits the modification of the current settings.

      • modified

        boolean — Whether the current settings have been modified.If modified, they can be reset in the update call.

    • outbound_calling

      object

      • enable

        boolean — Whether to define calling rules to restrict user or extension from calling specific countries, cities or numbers.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset (displayed when using the new policy framework).

    • select_outbound_caller_id

      object

      • allow_hide_outbound_caller_id

        boolean — Whether to allow the current extension to hide outbound caller id.

      • enable

        boolean — Whether to allow the current extension to change the outbound caller ID when placing calls.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "account", "user_group", "site" — Which level of administrator prohibits the modification of the current settings.

      • modified

        boolean — Whether the current settings have been modified.If modified, they can be reset in the update call.

    • voicemail_notification_by_email

      object

      • enable

        boolean — If enabled, the extension will receive email notifications when there is a new voicemail from users, call queues, auto receptionists, or shared line groups.

      • include_voicemail_file

        boolean — Whether to include the voicemail file.

      • include_voicemail_transcription

        boolean — Whether to include the voicemail transcription.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "account", "user_group", "site" — Which level of administrator prohibits modifying the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset in the update call.

    • voicemail_transcription

      object

      • enable

        boolean — When this setting is enabled, voicemail transcriptions will be created and remain accessible even if the setting is later disabled. If the setting is disabled, new voicemail and videomail transcriptions will not be generated.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "account", "user_group", "site" — Which level of administrator prohibits modifying the current settings.

      • modified

        boolean — Whether the current settings have been modified.If modified, they can be reset in the update call.

  • site

    object

Example:

{
  "area_code": "408",
  "calling_plans": [
    {
      "name": "US/CA Metered Calling Plan",
      "type": 100,
      "billing_account_id": "3WWAEiEjTj2IQuyDiKMd_A",
      "billing_account_name": "Delhi billing",
      "billing_subscription_id": "FT-SUBREF-21168178",
      "billing_subscription_name": "My Subscription"
    }
  ],
  "cost_center": "pbx_cost_center",
  "country": {
    "code": "US",
    "country_code": "1",
    "name": "United States"
  },
  "department": "department_pbx",
  "display_name": "test_ca",
  "extension_number": 100012347,
  "emergency_address": {
    "address_line1": "55 Almaden Blvd",
    "address_line2": "6th floor",
    "city": "San Jose",
    "country": "US",
    "id": "gBGwqgwoTb-DiSCA75tMWw",
    "state_code": "CA",
    "status": 1,
    "zip": "95113"
  },
  "id": "SHzioi3ZR9SXv-XkLbmYCg",
  "outbound_caller_ids": [
    {
      "is_default": true,
      "name": "Direct Number",
      "number": "+12055437350"
    }
  ],
  "phone_numbers": [
    {
      "display_name": "office phone",
      "id": "TqH98ec8RVCu6Z00aBv9ow",
      "number": "+12055437350",
      "source": "internal"
    }
  ],
  "policy": {
    "international_calling": {
      "enable": true,
      "locked": true,
      "locked_by": "account",
      "modified": true
    },
    "outbound_calling": {
      "enable": true,
      "locked": true,
      "modified": true
    },
    "ad_hoc_call_recording": {
      "enable": true,
      "recording_start_prompt": true,
      "recording_transcription": true,
      "locked": true,
      "locked_by": "account"
    },
    "auto_call_recording": {
      "allow_stop_resume_recording": true,
      "enable": true,
      "locked": true,
      "locked_by": "account",
      "recording_calls": "inbound",
      "recording_transcription": true,
      "inbound_audio_notification": {
        "recording_start_prompt": true,
        "recording_explicit_consent": true
      },
      "outbound_audio_notification": {
        "recording_start_prompt": true,
        "recording_explicit_consent": true
      }
    },
    "call_park": {
      "call_not_picked_up_action": 9,
      "enable": true,
      "expiration_period": 10,
      "forward_to": {
        "display_name": "test extension name",
        "extension_id": "CcrEGgmeQem1uyJsuIRKwA",
        "extension_number": 1000123477,
        "extension_type": "user",
        "id": "fWOgOALdT1ei4vjXK-QYsA"
      },
      "locked": true,
      "locked_by": "account"
    },
    "hand_off_to_room": {
      "enable": true,
      "locked": true,
      "locked_by": "account",
      "modified": true
    },
    "select_outbound_caller_id": {
      "enable": true,
      "allow_hide_outbound_caller_id": true,
      "locked": true,
      "locked_by": "account",
      "modified": true
    },
    "mobile_switch_to_carrier": {
      "enable": true,
      "locked": true,
      "locked_by": "account",
      "modified": true
    },
    "voicemail_transcription": {
      "enable": true,
      "locked": true,
      "locked_by": "account",
      "modified": true
    },
    "voicemail_notification_by_email": {
      "include_voicemail_file": true,
      "include_voicemail_transcription": false,
      "enable": true,
      "locked": true,
      "locked_by": "account",
      "modified": true
    },
    "check_voicemails_over_phone": {
      "enable": true,
      "locked": true,
      "locked_by": "account",
      "modified": true
    },
    "delegation": {
      "enable": true,
      "locked": true,
      "locked_by": "account",
      "modified": true
    },
    "ios_call_kit": {
      "enable": true,
      "locked": true,
      "locked_by": "account",
      "modified": true
    },
    "hide_zoom_phone_calls_in_ios": {
      "enable": true,
      "locked": true,
      "locked_by": "account",
      "modified": true
    }
  },
  "site": {
    "id": "SQv52YtkRLC2dwrDdYtGsA",
    "name": "Main site"
  }
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Common area does not exist: {commonAreaId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Delete a common area

  • Method: DELETE
  • Path: /phone/common_areas/{commonAreaId}
  • Tags: Common Areas

Removes the common area.

Prerequisites:

  • Pro or a higher account with Zoom Phone license.
  • Account owner or admin permissions.

Scopes: phone:write:admin

Granular Scopes: phone:delete:common_area:admin

Rate Limit Label: LIGHT

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** common area deleted successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `404` <br> Common area does not exist: {0}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update common area

  • Method: PATCH
  • Path: /phone/common_areas/{commonAreaId}
  • Tags: Common Areas

Updates the common area information.

Prerequisites

  • Pro or a higher account with Zoom Phone license
  • Account owner or admin permissions

Scopes: phone:write:admin

Granular Scopes: phone:update:common_area:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • area_code

    string — The area code of the common area.

  • cost_center

    string — The cost center the common area belongs to.

  • country_iso_code

    string — The two-lettered country [code](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries).

  • department

    string — The department of which the common area belongs.

  • display_name

    string — The display name of the common area.

  • emergency_address_id

    string — The emergency location's address ID.

  • extension_number

    integer, format: int64 — The extension number of the phone. If the site code is enabled, provide the short extension number instead.

  • outbound_caller_id

    string — The user's outbound caller ID phone number in E164 format.

  • policy

    object — A list of the common area's policies.

    • ad_hoc_call_recording

      object — A list of ad hoc call recording settings.

      • enable

        boolean — Whether the current extension can record and save calls to the cloud.

      • recording_explicit_consent

        boolean — Whether to press 1 to provide consent to be recorded.

      • recording_start_prompt

        boolean — Whether a prompt plays to call participants when the recording has started.

      • recording_transcription

        boolean — Whether call recording transcription is enabled.

      • reset

        boolean — Whether the user's ad hoc recording reset option will use the phone site's settings.

    • auto_call_recording

      object — A list of the user's automatic call recording settings.

      • allow_stop_resume_recording

        boolean — Whether the stop of and resuming of automatic call recording is enabled.

      • enable

        boolean — Whether automatic call recording is enabled.

      • inbound_audio_notification

        object

        • recording_explicit_consent

          boolean — Whether the **Press 1** option that provides recording consent for inbound call is enabled. <b>Note:</b> * If customers do not opt for an OP flag named `Enable Caller Based Consent Options`, the values of `recording_explicit_consent`, `inbound_audio_notification.recording_explicit_consent`, and `outbound_audio_notification.recording_explicit_consent` always remain consistent. * If customers do not opt for an OP flag named `Enable Caller Based Consent Options`, update both `inbound_audio_notification.recording_explicit_consent` and `outbound_audio_notification.recording_explicit_consent` with the same value.

        • recording_start_prompt

          boolean — Whether a prompt plays to call participants when the recording has started for inbound call is enabled. <b>Note:</b> * If customers do not opt for an OP flag named `Enable Caller Based Consent Options`, the values of `recording_start_prompt`, `inbound_audio_notification.recording_start_prompt`, and `outbound_audio_notification.recording_start_prompt` always remain consistent. * If customers who do not opt OP flag named `Enable Caller Based Consent Options`, update both `inbound_audio_notification.recording_start_prompt` and `outbound_audio_notification.recording_start_prompt` with the same value.

      • outbound_audio_notification

        object

        • recording_explicit_consent

          boolean — Whether the **Press 1** option that provides recording consent for outbound call is enabled. <b>Note:</b> * if customers who do not opt OP flag named `Enable Caller Based Consent Options`, the values of `recording_explicit_consent`, `inbound_audio_notification.recording_explicit_consent`, and `outbound_audio_notification.recording_explicit_consent` always remain consistent. * if customers who do not opt OP flag named `Enable Caller Based Consent Options`, update both `inbound_audio_notification.recording_explicit_consent` and `outbound_audio_notification.recording_explicit_consent` with the same value.

        • recording_start_prompt

          boolean — Whether a prompt plays to call participants when the recording has started for outbound call is enabled. <b>Note:</b> * If customers do not opt for an OP flag named `Enable Caller Based Consent Options`, the values of `recording_start_prompt`, `inbound_audio_notification.recording_start_prompt`, and `outbound_audio_notification.recording_start_prompt` always remain consistent. * If customers do not opt OP flag named `Enable Caller Based Consent Options`, update both `inbound_audio_notification.recording_start_prompt` and `outbound_audio_notification.recording_start_prompt` with the same value.

      • recording_calls

        string, possible values: "inbound", "outbound", "both" — The type of calls automatically recorded: * `inbound` * `outbound` * `both`

      • recording_transcription

        boolean — Whether call recording transcription is enabled.

      • reset

        boolean — Whether the user's automatic call recording reset option will use the phone site's settings.

    • call_park

      object

      • call_not_picked_up_action

        integer, possible values: 0, 9, 50, 100 — The action when a parked call is not picked up. 100-Ring back to parker, 0-Forward to voicemail of the parker, 9-Disconnect, 50-Forward to another extension.

      • enable

        boolean — Whether to allow calls placed on hold to be resumed from another location using a retrieval code.

      • expiration_period

        integer, possible values: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60 — A time limit for parked calls, unit minutes. After the expiration period ends, the retrieval code is no longer valid and a new code will be generated.

      • forward_to_extension_id

        string — The extension ID.

    • check_voicemails_over_phone

      object

      • enable

        boolean — If enabled, user can check voicemails over phone using a PIN code.

      • reset

        boolean — Whether the user's check voicemail over phone reset option will use the phone site's settings.

    • delegation

      boolean — Whether the extension can use [call delegation](https://support.zoom.us/hc/en-us/articles/360032881731-Setting-up-call-delegation-shared-lines-appearance-).

    • hand_off_to_room

      object

      • enable

        boolean — This field enables an extension to send a call to a Zoom Room. Note: this policy applies to smartphone devices only and requires the "Common area smartphones" policy to be enabled.

    • hide_phone_call_history_in_ios

      object — Hides Zoom Phone calls in iOS/iPadOS device call history.

      • enable

        boolean — When set to true, Zoom Phone calls will no longer appear in the iOS/iPadOS Recent list. This requires CallKit to be enabled and client version 6.3.0 or later.

      • reset

        boolean — Whether the extension's hide phone call history in ios reset option will use the phone site's(enable multiple site) or account's(disable multiple site) settings.

    • international_calling

      object — Whether the current extension can make international calls outside of their calling plan.

      • enable

        boolean — If enabled, the common area can use international calling.

      • reset

        boolean — If reset, the common area international calling setting resets to the default setting.

    • ios_call_kit

      object — Uses CallKit always for Incoming call notifications on iOS/iPadOS devices.

      • enable

        boolean — If enable, CallKit will always be used for Zoom Phone incoming call notifications on iOS/iPadOS devices. The maximum number of concurrent calls supported will decrease from four to two.

      • reset

        boolean — Whether the extension's callkit reset option will use the phone site's(enable multiple site) or account's(disable multiple site) settings.

    • mobile_switch_to_carrier

      object

      • enable

        boolean — Whether to allow the user to switch from a Zoom Phone to their native carrier.

    • select_outbound_caller_id

      object

      • allow_hide_outbound_caller_id

        boolean — Whether to allow the current extension to hide outbound caller id.

      • enable

        boolean — Whether to allow the current extension to change the outbound caller ID when placing calls.

    • voicemail_notification_by_email

      object

      • enable

        boolean — If enabled, extension will receive email notifications when there is a new voicemail from users, call queues, auto receptionists or shared line groups.

      • include_voicemail_file

        boolean — Whether to include voicemail file.

      • include_voicemail_transcription

        boolean — Whether to include voicemail transcription.

      • reset

        boolean — Whether the extension's voicemail notification by email reset option will use the phone site's(enable multiple site) or account's(disable multiple site) settings.

    • voicemail_transcription

      object

      • enable

        boolean — When this setting is enabled, voicemail transcriptions will be created and remain accessible even if the setting is later disabled. If the setting is disabled, new voicemail and videomail transcriptions will not be generated.

      • reset

        boolean — Whether the extension's voicemail transcription reset option will use the phone site's(enable multiple site) or account's(disable multiple site) settings.

  • site_id

    string — The unique identifier of the [site](https://support.zoom.us/hc/en-us/articles/360020809672-Managing-Multiple-Sites) to which the common area desk phone is assigned.

  • timezone

    string — The [timezone ID](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists) for the common area.

Example:

{
  "area_code": "408",
  "cost_center": "cost_center_pbx",
  "country_iso_code": "US",
  "department": "department_pbx",
  "display_name": "common area 01",
  "emergency_address_id": "gBGwqgwoTb-DiSCA75tMWw",
  "extension_number": 1001014,
  "outbound_caller_id": "+12055437350",
  "policy": {
    "international_calling": {
      "enable": true,
      "reset": true
    },
    "ad_hoc_call_recording": {
      "enable": true,
      "recording_start_prompt": true,
      "recording_explicit_consent": true,
      "recording_transcription": true,
      "reset": true
    },
    "auto_call_recording": {
      "allow_stop_resume_recording": true,
      "enable": true,
      "recording_calls": "inbound",
      "recording_transcription": true,
      "reset": true,
      "inbound_audio_notification": {
        "recording_start_prompt": true,
        "recording_explicit_consent": true
      },
      "outbound_audio_notification": {
        "recording_start_prompt": true,
        "recording_explicit_consent": true
      }
    },
    "call_park": {
      "call_not_picked_up_action": 50,
      "enable": true,
      "expiration_period": 10,
      "forward_to_extension_id": "CcrEGgmeQem1uyJsuIRKwA"
    },
    "hand_off_to_room": {
      "enable": true
    },
    "select_outbound_caller_id": {
      "enable": true,
      "allow_hide_outbound_caller_id": true
    },
    "mobile_switch_to_carrier": {
      "enable": true
    },
    "voicemail_transcription": {
      "enable": true,
      "reset": true
    },
    "voicemail_notification_by_email": {
      "include_voicemail_file": true,
      "include_voicemail_transcription": true,
      "enable": true,
      "reset": true
    },
    "check_voicemails_over_phone": {
      "enable": true,
      "reset": true
    },
    "delegation": true,
    "ios_call_kit": {
      "enable": true,
      "reset": true
    },
    "hide_phone_call_history_in_ios": {
      "enable": true,
      "reset": true
    }
  },
  "site_id": "SQv52YtkRLC2dwrDdYtGsA",
  "timezone": "Europe/Berlin"
}

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Common area information updated successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `404` <br> Common area does not exist: {0}. <br> **Error Code:** `409` <br> A conflict occurred with the target extension number. Try again later. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Assign calling plans to a common area

  • Method: POST
  • Path: /phone/common_areas/{commonAreaId}/calling_plans
  • Tags: Common Areas

Assigns calling plans to a common area.

Prerequisites

  • Pro or a higher account with Zoom Phone license
  • Account owner or admin permissions

Scopes: phone:write:admin

Granular Scopes: phone:write:common_area_calling_plan:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json

Example:

{
  "calling_plans": [
    {
      "type": 100,
      "billing_account_id": "3WWAEiEjTj2IQuyDiKMd_A",
      "billing_subscription_id": "FT-SUBREF-21168178"
    }
  ]
}

Responses

Status: 201 **HTTP Status Code:** `201` **Created** Assigning calling plans to the common area is successful.
Content-Type: application/json

Example:

{
  "calling_plans": [
    {
      "name": "US/CA Metered Calling Plan",
      "type": 100,
      "billing_account_id": "3WWAEiEjTj2IQuyDiKMd_A",
      "billing_account_name": "Delhi billing"
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `404` <br> The common area does not exist: {commonAreaId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Unassign a calling plan from the common area

  • Method: DELETE
  • Path: /phone/common_areas/{commonAreaId}/calling_plans/{type}
  • Tags: Common Areas

Use this API to unassign a calling plan from the common area.

Prerequisites:

  • A Pro or higher account with a Zoom Phone license
  • An account owner or admin permissions

Scopes: phone:write:admin

Granular Scopes: phone:delete:common_area_calling_plan:admin

Rate Limit Label: LIGHT

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Removing assigned calling plans from common area is successful.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `404` <br> The common area does not exist: {commonAreaId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Assign phone numbers to a common area

  • Method: POST
  • Path: /phone/common_areas/{commonAreaId}/phone_numbers
  • Tags: Common Areas

Assigns phone numbers to a common area.

Prerequisites

  • Pro or a higher account with Zoom Phone license
  • Account owner or admin permissions

Scopes: phone:write:admin

Granular Scopes: phone:write:common_area_number:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • phone_numbers (required)

    array

    Items:

    • id

      string — The phone number ID.

    • number

      string — The phone number.

Example:

{
  "phone_numbers": [
    {
      "id": "TqH98ec8RVCu6Z00aBv9ow",
      "number": "+12055437350"
    }
  ]
}

Responses

Status: 201 **HTTP Status Code:** `201` **Created** Assigned phone numbers to the common area successfully.
Content-Type: application/json
  • phone_numbers

    array

    Items:

    • id

      string — The phone number ID.

    • number

      string — The phone number.

Example:

{
  "phone_numbers": [
    {
      "id": "TqH98ec8RVCu6Z00aBv9ow",
      "number": "+12055437350"
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `404` <br> Common area does not exist: {commonAreaId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Unassign phone numbers from common area

  • Method: DELETE
  • Path: /phone/common_areas/{commonAreaId}/phone_numbers/{phoneNumberId}
  • Tags: Common Areas

Unassigns a phone number from a common area.

Prerequisites

  • A Pro or a higher account with a Zoom Phone license
  • An account owner or admin permissions

Scopes: phone:write:admin

Granular Scopes: phone:delete:common_area_number:admin

Rate Limit Label: LIGHT

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Removing assigned phone numbers from common area is successful.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `404` <br> The common area does not exist: {commonAreaId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update common area pin code

  • Method: PATCH
  • Path: /phone/common_areas/{commonAreaId}/pin_code
  • Tags: Common Areas

Updates the common area pin code.

Prerequisites

Scopes: phone:write:admin

Granular Scopes: phone:update:common_area:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • pin_code (required)

    string — The pin code to access voicemail, hot desking, unlock desk phones, and call authorized-required.

Example:

{
  "pin_code": "67941"
}

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Common area pin code updated successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Validation failed.<br> * The PIN Code cannot be updated by the admin. * PIN code could only include numbers. * Invalid PIN code. PIN code must be {0} digits long. * Invalid PIN code. PIN code must be {0} to {1} digits long. * Invalid PIN code. Your PIN code must not be the same as the extension number. * Invalid PIN code. The PIN code must not contain a group of repeated digits. * PIN code cannot be an ascending or descending group of digits. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found Common area does not exist: {commonAreaId}.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get common area settings

  • Method: GET
  • Path: /phone/common_areas/{commonAreaId}/settings
  • Tags: Common Areas

Returns common area settings.

Prerequisites:

  • Pro or a higher account with Zoom Phone license.
  • Account owner or admin permissions.

Scopes: phone:read:admin

Granular Scopes: phone:read:list_common_area_settings:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` Common Area Setting object returned.
Content-Type: application/json

One of:

  • desk_phones

    array — Desk phones.

    Items:

    • device_type

      string — The desk phone device type.

    • display_name

      string — The desk phone display name.

    • hot_desking

      object — Hot desking.

      • status

        string, possible values: "unsupported", "on", "off" — This field allows the hot desking feature to the current device: letting the guest user sign in to the desk phone. You can't use the desk phone until the guest user signs out. Options include: * `unsupported` * `on` * `off`

    • id

      string — The desk phone ID.

    • mac_address

      string — The MAC address or serial number of the device.

    • private_ip

      string — The private IP of the registered device.

    • public_ip

      string — The public IP of the registered device.

    • status

      string, possible values: "online", "offline" — The desk phone status.

  • holiday_hours

    array — Holiday hours.

    Items:

    • from

      string, format: date-time — The holiday's start date and time, in `yyyy-MM-dd'T'HH:mm:ss'Z'` format.

    • holiday_id

      string — The holiday ID.

    • name

      string — The name of the holiday.

    • to

      string, format: date-time — The holiday's end date and time in `yyyy-MM-dd'T'HH:mm:ss'Z'` format.

  • custom_hours_settings

    object — Custom hours.

    • custom_hour_type

      integer, possible values: 1, 2 — The type of custom hours: * `1` &mdash; 24 hours, 7 days a week. * `2` &mdash; Custom hours. .

    • custom_hours

      array — The custom hours settings.

      Items:

      • from

        string — The custom hours start time `HH:mm` format.

      • to

        string — The custom hours end time in `HH:mm` format.

      • type

        integer, possible values: 0, 1, 2 — The type of custom hours: * `0` &mdash; Disabled. * `1` &mdash; 24 hours. * `2` &mdash; Customized hours.

      • weekday

        integer, possible values: 1, 2, 3, 4, 5, 6, 7 — The day of the week: * `1` &mdash; Sunday * `2` &mdash; Monday * `3` &mdash; Tuesday * `4` &mdash; Wednesday * `5` &mdash; Thursday * `6` &mdash; Friday * `7` &mdash; Saturday

Example:

{
  "desk_phones": [
    {
      "id": "Aky1xpSLSc2PR0XOtj9XWQ",
      "display_name": "analog_ta",
      "device_type": "Poly obi504",
      "status": "offline",
      "mac_address": "203a07240534",
      "hot_desking": {
        "status": "off"
      },
      "private_ip": "192.168.10.13",
      "public_ip": "220.148.231.126"
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `404` <br> Common area does not exist: {commonAreaId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Add common area setting

  • Method: POST
  • Path: /phone/common_areas/{commonAreaId}/settings/{settingType}
  • Tags: Common Areas

Adds the common area setting according to the setting type.

Prerequisites

  • Pro or a higher account with Zoom Phone license
  • Account owner or admin permissions

Scopes: phone:write:admin

Granular Scopes: phone:write:common_area_setting:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json

One of:

  • device_id

    string — The desk phone ID.This field is only required for the `desk_phone` setting type.

  • holiday_hours

    object — This field is only required for the `holiday_hours` setting type.

    • holidays

      array — The holiday list. The minimum is one item, and the maximum is 10 items.

      Items:

      • from

        string — The holiday's start date and time, in `yyyy-MM-dd'T'HH:mm:ss'Z'` format.

      • name

        string — The name of the holiday.

      • to

        string — The holiday's end date and time in `yyyy-MM-dd'T'HH:mm:ss'Z'` format.

Example:

{
  "device_id": "ULfeE4mgSImyelNmTekUfg"
}

Responses

Status: 201 **HTTP Status Code:** `201` **Created** Created successfully.
Content-Type: application/json

One of:

  • desk_phones

    array — All desk phones.Returned only when the setting type is desk_phone.

    Items:

    • display_name

      string — The desk phone display name.

    • id

      string — The desk phone ID.

  • holiday_hours

    object — All holiday hour settings. Returns only when the setting type is `holiday_hours`.

    • holidays

      array

      Items:

      • from

        string — The holiday's start date and time, in `yyyy-MM-dd'T'HH:mm:ss'Z'` format.

      • holiday_id

        string — The holiday ID.

      • name

        string — The holiday's start date and time, in `yyyy-MM-dd'T'HH:mm:ss'Z'` format.

      • to

        string — The holiday's end date and time in `yyyy-MM-dd'T'HH:mm:ss'Z'` format.

Example:

{
  "desk_phones": [
    {
      "id": "Aky1xpSLSc2PR0XOtj9XWQ",
      "display_name": "analog_ta"
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `404` <br> Common area does not exist: {commonAreaId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Delete common area setting

  • Method: DELETE
  • Path: /phone/common_areas/{commonAreaId}/settings/{settingType}
  • Tags: Common Areas

Removes the common area subsetting from desk phones.

Prerequisites

  • Pro or a higher account with Zoom Phone license
  • Account owner or admin permissions

Scopes: phone:write:admin

Granular Scopes: phone:delete:common_area_setting:admin

Rate Limit Label: LIGHT

Responses

Status: 204 **HTTP Status Code:** `204` **No Content**
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `404` <br> The common area does not exist: {0}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update common area setting

  • Method: PATCH
  • Path: /phone/common_areas/{commonAreaId}/settings/{settingType}
  • Tags: Common Areas

Updates the common area setting according to the setting type.

Prerequisites

  • Pro or a higher account with Zoom Phone license
  • Account owner or admin permissions

Scopes: phone:write:admin

Granular Scopes: phone:update:common_area_setting:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json

One of:

  • desk_phones

    array — The desk phones.

    Items:

    • hot_desking

      object — Hot desking.

      • status

        string, possible values: "on", "off" — This field allows the hot desking feature to the current device: allows the guest user to sign in to the desk phone. You can't use the desk phone until the guest user signs out. Options include: * `on` * `off`

    • id

      string — The desk phone ID.

  • holiday_hours

    object — The holiday hours.

    • holidays

      array — Holidays

      Items:

      • from

        string — The holiday's start date and time, in `yyyy-MM-dd'T'HH:mm:ss'Z'` format.

      • holiday_id

        string — The holiday ID.

      • name

        string — The name of the holiday.

      • to

        string — The holiday's end date and time in `yyyy-MM-dd'T'HH:mm:ss'Z'` format.

  • custom_hours_settings

    object — Custom hour settings.

    • custom_hour_type

      integer, possible values: 1, 2 — The type of custom hours: * `1` &mdash; 24 hours, 7 days a week. * `2` &mdash; Custom hours. .

    • custom_hours

      array — The custom hours settings.

      Items:

      • from

        string — The custom hours start time `HH:mm` format.

      • to

        string — The custom hours end time in `HH:mm` format.

      • type

        integer, possible values: 0, 1, 2 — The type of custom hours: * `0` &mdash; Disabled. * `1` &mdash; 24 hours. * `2` &mdash; Customized hours.

      • weekday

        integer, possible values: 1, 2, 3, 4, 5, 6, 7 — The day of the week: * `1` &mdash; Sunday * `2` &mdash; Monday * `3` &mdash; Tuesday * `4` &mdash; Wednesday * `5` &mdash; Thursday * `6` &mdash; Friday * `7` &mdash; Saturday

Example:

{
  "desk_phones": [
    {
      "id": "ULfeE4mgSImyelNmTekUfg",
      "hot_desking": {
        "status": "off"
      }
    }
  ]
}

Responses

Status: 204 **HTTP Status Code:** `204` **No Content**
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `404` <br> Common area does not exist: {commonAreaId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List call logs

  • Method: GET
  • Path: /phone/metrics/call_logs
  • Tags: Dashboard

Returns monthly call logs metrics.

The call logs that provide a record of all incoming and outgoing calls over Zoom Phone in an account.

You can use query parameters to filter the response by date, site and MOS(Mean Opinion Score) of the call.

Prerequisites:

  • Business or Education account
  • Zoom Phone license

Scopes: phone:read:admin

Granular Scopes: phone:read:list_call_logs:admin

Rate Limit Label: HEAVY

Responses

Status: 200 OK
Content-Type: application/json
  • call_logs

    array — Call logs.

    Items:

    • call_id

      string — The unique identifier of the phone call.

    • callee

      object — The callee object that contains information of the calee.

      • codec

        string — The audio codec.

      • device_private_ip

        string — This setting displays the device's private IP address if the account has the `show_device_ip_for_call_log` parameter set to `enabled`.

      • device_public_ip

        string — This setting displays the device's public IP address if the account has the `show_device_ip_for_call_log` parameter set to `enabled`.

      • device_type

        string — The device type, and if applicable, its version number. Acceptable device types: * `Windows_Client` * `MAC_Client` * `Linux_Client` * `Android_Phone` * `IOS_Phone` * `Android_Pad` * `IOS_Pad` * [Zoom Phone Appliance](https://support.zoom.us/hc/en-us/articles/360001299063#h_cc0dac0d-44aa-4fb6-8e39-359166c38715) * `Windows_VDI_Client` * `MAC_VDI_Client` * `Linux_VDI_Client`

      • extension_number

        string — The full extension number of the callee.

      • headset

        string — The headset the callee uses.

      • isp

        string — ISP.

      • microphone

        string — The microphone the callee uses for the call.

      • phone_number

        string — The phone number of the callee in E164 format.

      • site_id

        string — The unique identifier of the [site](https://support.zoom.us/hc/en-us/articles/360020809672-Managing-multiple-sites).

    • caller

      object — The caller object that contains information of the caller.

      • codec

        string — Audio codec.

      • device_private_ip

        string — This setting displays the device's private IP address if the account has the `show_device_ip_for_call_log` parameter set to `enabled`.

      • device_public_ip

        string — This setting display sthe device's public IP address if the account has the `show_device_ip_for_call_log` parameter set to `enabled`.

      • device_type

        string — The device type, and if applicable, its version number. Acceptable device types: * `Windows_Client` * `MAC_Client` * `Linux_Client` * `Android_Phone` * `IOS_Phone` * `Android_Pad` * `IOS_Pad` * [Zoom Phone Appliance](https://support.zoom.us/hc/en-us/articles/360001299063#h_cc0dac0d-44aa-4fb6-8e39-359166c38715) * `Windows_VDI_Client` * `MAC_VDI_Client` * `Linux_VDI_Client`

      • extension_number

        string — The full extension number of the caller.

      • headset

        string — The headset the caller uses for the call.

      • isp

        string — ISP.

      • microphone

        string — The microphone the caller uses for the call.

      • phone_number

        string — The phone number of the caller in E164 format.

      • site_id

        string — The unique identifier of the [site](https://support.zoom.us/hc/en-us/articles/360020809672-Managing-multiple-sites).

    • date_time

      string — The date and time when the call started.

    • direction

      string — The direction of the call. The value of this field can be either `internal` or `outbound`.

    • duration

      integer — The duration of the full call in seconds.

    • mos

      string — The Mean Opinion Score (MOS). Zoom uses MOS as the main measurement to report on voice quality. MOS measures voice quality on a scale of one to five. A score of 1 indicates unacceptable voice quality for all users. A score of five is the best voice quality.

  • from

    string — The start time and date of the report.

  • next_page_token

    string — The next page token paginates through a large set of results. A next page token is returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • page_size

    integer — The number of records returned within a single call.

  • to

    string — The end time and date of the report.

  • total_records

    integer — The total number of records available across all pages.

Example:

{
  "call_logs": [
    {
      "call_id": "7081466125443483485",
      "callee": {
        "codec": "ES8311",
        "device_private_ip": "10.100.111.237",
        "device_public_ip": "38.99.100.2",
        "device_type": "MAC_Client 5.11.9.9957",
        "extension_number": "100994",
        "headset": "Edifier",
        "isp": "Cogent Communications",
        "microphone": "+12053194087",
        "phone_number": "+12053194087",
        "site_id": "ZNWikLeVSjuaMvUoxFqCuw"
      },
      "caller": {
        "codec": "ES8311",
        "device_private_ip": "10.100.111.232",
        "device_public_ip": "38.99.100.3",
        "device_type": "MAC_Client",
        "extension_number": "100152",
        "headset": "Edifier",
        "isp": "Cogent Communications",
        "microphone": "+12053194087",
        "phone_number": "+12053194087",
        "site_id": "ZNWikLeVSjuaMvUoxFqCuw"
      },
      "date_time": "2021-04-01T02:59:32Z",
      "direction": "internal",
      "duration": 20,
      "mos": "4.5"
    }
  ],
  "from": "2021-03-31",
  "next_page_token": "T6WMY4fJBIAlxPUiqRtwvQS9dvsq8AoRam2",
  "page_size": 30,
  "to": "2021-04-01",
  "total_records": 20
}
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get call QoS

  • Method: GET
  • Path: /phone/metrics/call_logs/{callId}/qos
  • Tags: Dashboard

Gets the call quality of service (QoS) data for a call made or received by a Zoom phone user in the account.

Prerequisites:

  • Business, or Education account
  • Zoom Phone license

Scopes: phone:read:admin

Granular Scopes: phone:read:call_qos:admin

Rate Limit Label: Light

Responses

Status: 200 OK
Content-Type: application/json
  • call_id

    string — The unique identifier of the phone call.

  • callee_qos

    object

    • device_private_ip

      string — This setting displays the device's private IP address if the account has the `show_device_ip_for_call_log` parameter set to `enabled`.

    • device_public_ip

      string — This setting displays the device's public IP address if the account has the `show_device_ip_for_call_log` parameter set to `enabled`.

    • receiving

      array — The QoS that the callee receives.

      Items:

      • date_time

        string, format: date-time — The date and time when the QoS was received.

      • qos

        object

        • avg_loss

          string — The average amount of packet loss. For example, the percentage of packets that fail to arrive at their destination.

        • bitrate

          string — The number of bits per second, in kbps, that can be transmitted along a digital network.

        • jitter

          string — The variation in the delay of received packets, in milliseconds.

        • max_loss

          string — The maximum amount of packet loss. For example, the maximum percentage of packets that fail to arrive at their destination.

        • mos

          string — The MOS (Mean Opinion Score). MOS measures voice quality on a scale of 1 to 5. A score than or equal to 3.5 means good quality, while below 3.5 means poor quality.

        • network_delay

          string — The amount of time, in milliseconds, it takes for a VoIP (Voice Over IP) packet to travel from one point to another.

    • sending

      array — The QoS that the callee sends.

      Items:

      • date_time

        string, format: date-time — The date and time when the QoS was delivered.

      • qos

        object

        • avg_loss

          string — The average amount of packet loss. For example, the percentage of packets that fail to arrive at their destination.

        • bitrate

          string — The number of bits per second, in kbps, that can be transmitted along a digital network.

        • jitter

          string — The variation in the delay of received packets, in milliseconds.

        • max_loss

          string — The maximum amount of packet loss. For example, the maximum percentage of packets that fail to arrive at their destination.

        • mos

          string — The MOS (Mean Opinion Score). MOS measures voice quality on a scale of 1 to 5. A score than or equal to 3.5 means good quality, while below 3.5 means poor quality.

        • network_delay

          string — The amount of time, in milliseconds, it takes for a VoIP (Voice Over IP) packet to travel from one point to another.

  • caller_qos

    object — The quality of service object that represents the call quality data of the caller.

    • device_private_ip

      string — This setting displays the device's private IP address if the account has the `show_device_ip_for_call_log` parameter set to `enabled`.

    • device_public_ip

      string — This setting displays the device's public IP address if the account has the `show_device_ip_for_call_log` parameter set to `enabled`.

    • receiving

      array — The QoS (quality of service) that the caller receives .

      Items:

      • date_time

        string, format: date-time — The date and time when the QoS was received.

      • qos

        object

        • avg_loss

          string — The average amount of packet loss. For example, the percentage of packets that fail to arrive at their destination.

        • bitrate

          string — The number of bits per second, in kbps, that can be transmitted along a digital network.

        • jitter

          string — The variation in the delay of received packets in milliseconds.

        • max_loss

          string — The maximum amount of packet loss. For example, the maximum percentage of packets that fail to arrive at their destination.

        • mos

          string — The MOS (Mean Opinion Score). MOS measures voice quality on a scale of 1 to 5. A score than or equal to 3.5 means good quality, while below 3.5 means poor quality.

        • network_delay

          string — The amount of time, in milliseconds, it takes for a VoIP (Voice Over IP) packet to travel from one point to another.

    • sending

      array — The QoS that the caller sent.

      Items:

      • date_time

        string, format: date-time — The date and time when the QoS was delivered.

      • qos

        object

        • avg_loss

          string — The average amount of packet loss, i.e., the percentage of packets that fail to arrive at their destination.

        • bitrate

          string — The number of bits per second in kbps that can be transmitted along a digital network.

        • jitter

          string — The variation in the delay of received packets. The value of this field is expressed in milliseconds.

        • max_loss

          string — The maximum amount of packet loss, i.e., the maximum percentage of packets that fail to arrive at their destination.

        • mos

          string — The Mean Opinion Score (MOS) measures voice quality on a scale of one to five. A MOS greater than or equal to 3.5 means good quality, while below 3.5 means poor quality.

        • network_delay

          string — The amount of time (in milliseconds) it takes for a VoIP packet to travel from one point to another.

Example:

{
  "call_id": "7081466125443483485",
  "callee_qos": {
    "device_private_ip": "10.100.111.237",
    "device_public_ip": "38.99.100.2",
    "receiving": [
      {
        "date_time": "2022-04-01T03:05:43Z",
        "qos": {
          "avg_loss": "0.82%",
          "bitrate": "14.98kbps",
          "jitter": "7.53ms",
          "max_loss": "1.51%",
          "mos": "3.6",
          "network_delay": "307"
        }
      }
    ],
    "sending": [
      {
        "date_time": "2022-04-01T03:05:43Z",
        "qos": {
          "avg_loss": "0.82%",
          "bitrate": "14.98kbps",
          "jitter": "7.53ms",
          "max_loss": "1.51%",
          "mos": "3.6",
          "network_delay": "307"
        }
      }
    ]
  },
  "caller_qos": {
    "device_private_ip": "10.100.111.237",
    "device_public_ip": "38.99.100.2",
    "receiving": [
      {
        "date_time": "2022-04-01T03:05:43Z",
        "qos": {
          "avg_loss": "1.29%",
          "bitrate": "16.31kbps",
          "jitter": "5.15ms",
          "max_loss": "2.01%",
          "mos": "3.6",
          "network_delay": "301"
        }
      }
    ],
    "sending": [
      {
        "date_time": "2022-04-01T03:05:43Z",
        "qos": {
          "avg_loss": "1.29%",
          "bitrate": "16.31kbps",
          "jitter": "5.15ms",
          "max_loss": "2.01%",
          "mos": "3.6",
          "network_delay": "303"
        }
      }
    ]
  }
}
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get call details from call log

  • Method: GET
  • Path: /phone/metrics/call_logs/{call_id}
  • Tags: Dashboard

Returns call log details of a specific call.

The call logs provide a record of all incoming and outgoing calls over Zoom Phone in an account.

Prerequisites:

  • Business, or Education account
  • Zoom Phone license

Scopes: phone:read:admin

Granular Scopes: phone:read:call_log:admin

Responses

Status: 200 OK
Content-Type: application/json
  • call_id

    string — The unique identifier of the phone call.

  • callee

    object — The callee object that contains information of the callee.

    • codec

      string — The audio codec.

    • device_private_ip

      string — This setting displays the device's private IP address if the account has the `show_device_ip_for_call_log` parameter set to `enabled`.

    • device_public_ip

      string — This setting displays the device's public IP address if the account has the `show_device_ip_for_call_log` parameter set to `enabled`.

    • device_type

      string — The device type, and if applicable, its version number. Acceptable device types: * `Windows_Client` * `MAC_Client` * `Linux_Client` * `Android_Phone` * `IOS_Phone` * `Android_Pad` * `IOS_Pad` * [Zoom Phone Appliance](https://support.zoom.us/hc/en-us/articles/360001299063#h_cc0dac0d-44aa-4fb6-8e39-359166c38715) * `Windows_VDI_Client` * `MAC_VDI_Client` * `Linux_VDI_Client`

    • display_name

      string — The extension's name.

    • extension_number

      string — The full extension number of the callee.

    • extension_type

      string, possible values: "user", "callQueue", "autoReceptionist", "sharedLineGroup" — The type of extension: * `user` * `callQueue` * `autoReceptionist` * `sharedLineGroup`

    • headset

      string — The headset the callee uses for the call.

    • id

      string — The ID of the extension for `user`, `callQueue`, `autoReceptionist`, or `sharedLineGroup`.

    • isp

      string — ISP.

    • microphone

      string — The microphone the callee uses for the call.

    • phone_number

      string — The phone number of the callee in E164 format.

    • site_id

      string — The unique identifier of the [site](https://support.zoom.us/hc/en-us/articles/360020809672-Managing-multiple-sites).

  • caller

    object — The caller object that contains information of the caller.

    • codec

      string — The audio codec.

    • device_private_ip

      string — This setting displays the device's private IP address if the account has the `show_device_ip_for_call_log` parameter set to `enabled`.

    • device_public_ip

      string — This setting displays the device's public IP address if the account has the `show_device_ip_for_call_log` parameter set to `enabled`.

    • device_type

      string — The device type, and if applicable, its version number. Acceptable device types: * `Windows_Client` * `MAC_Client` * `Linux_Client` * `Android_Phone` * `IOS_Phone` * `Android_Pad` * `IOS_Pad` * [Zoom Phone Appliance](https://support.zoom.us/hc/en-us/articles/360001299063#h_cc0dac0d-44aa-4fb6-8e39-359166c38715) * `Windows_VDI_Client` * `MAC_VDI_Client` * `Linux_VDI_Client`

    • display_name

      string — The extension's name.

    • extension_number

      string — The full extension number of the caller.

    • extension_type

      string, possible values: "user", "callQueue", "autoReceptionist", "sharedLineGroup" — The type of extension: * `user` * `callQueue` * `autoReceptionist` * `sharedLineGroup`

    • headset

      string — The headset the caller uses for the call.

    • id

      string — The ID of the extension for `user`, `callQueue`, `autoReceptionist`, or `sharedLineGroup`.

    • isp

      string — ISP.

    • microphone

      string — The microphone the caller uses for the call.

    • phone_number

      string — The phone number of the caller in E164 format.

    • site_id

      string — The unique identifier of the [site](https://support.zoom.us/hc/en-us/articles/360020809672-Managing-multiple-sites).

  • date_time

    string — The date and time when the call started.

  • direction

    string — The direction of the call. The value of this field can be either `internal` or `outbound`.

  • duration

    integer — The duration of the call in seconds.

  • mos

    string — The Mean Opinion Score (MOS). Zoom uses MOS as the main measurement to report on voice quality. MOS measures voice quality on a scale of one to five. A score of one indicates unacceptable voice quality for all users. A score of five is the best voice quality.

Example:

{
  "call_id": "7081466125443483485",
  "callee": {
    "codec": "ES8311",
    "device_private_ip": "10.100.111.237",
    "device_public_ip": "38.99.100.2",
    "device_type": "MAC_Client",
    "extension_number": "100994",
    "headset": "Edifier",
    "isp": "Cogent Communications",
    "microphone": "+18889843519",
    "phone_number": "+18889843519",
    "site_id": "ZNWikLeVSjuaMvUoxFqCuw",
    "id": "DYHrdpjrS3uaOf7dPkkg8w",
    "extension_type": "user",
    "display_name": "user A"
  },
  "caller": {
    "codec": "ES8311",
    "device_private_ip": "10.100.111.237",
    "device_public_ip": "38.99.100.2",
    "device_type": "MAC_Client",
    "extension_number": "100152",
    "headset": "Edifier",
    "isp": "Cogent Communications",
    "microphone": "+12053194087",
    "phone_number": "+12053194087",
    "site_id": "ZNWikLeVSjuaMvUoxFqCuw",
    "id": "S5ODD6U3RcGs7H01n8vswA",
    "extension_type": "user",
    "display_name": "user B"
  },
  "date_time": "2022-04-01T03:05:18Z",
  "direction": "internal",
  "duration": 27,
  "mos": "3.6"
}
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List default emergency address users

  • Method: GET
  • Path: /phone/metrics/emergency_services/default_emergency_address/users
  • Tags: Dashboard

Returns the users who provide a default personal emergency address rather than a default site address or default account address.

Prerequisites:

  • Pro or higher account plan with Zoom phone license
  • Account owner or admin permissions

Scopes: phone:read:admin

Granular Scopes: phone:read:default_emergency_address:admin

Rate Limit Label: MEDIUM

Responses

Status: 200 **HTTP Status Code:** `200` Locations returned.
Content-Type: application/json
  • next_page_token

    string — The next page token paginates through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • page_size

    number — The total number of records returned from a single API call.

  • records

    array

    Items:

    • email

      string — The user's email.

    • extension_id

      string — The user's extension ID.

    • extension_number

      integer, format: int64 — The user's extension number.

    • site_id

      string — The unique identifier of the site.

    • site_name

      string — The site's name.

    • status

      string, possible values: "set", "not_set" — The status of **Default Emergency Address**.

    • user_display_name

      string — The user's name.

  • total_records

    number — The total number of records found for this query.

Example:

{
  "next_page_token": "6VXOgUaNNeZ7qL7bENvXPgclgeZ3bf3nbj2",
  "page_size": 1,
  "total_records": 6,
  "records": [
    {
      "email": "test.user@gmail.com",
      "user_display_name": "James Lu",
      "extension_id": "VodZOCkyRM-wfOqr1xmuMQ",
      "extension_number": 10010,
      "site_name": "Main Site",
      "site_id": "oB18huSERjqbzrsyL2bD5w",
      "status": "set"
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `802` <br> Data is not ready, please try again later <br> **Error Code:** `8001` <br> Site does not exist <br> **Error Code:** `400` <br> The next page token is invalid or expired. <br> **Error Code:** `400` <br> status can't be empty. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List detectable personal location users

  • Method: GET
  • Path: /phone/metrics/emergency_services/detectable_personal_location/users
  • Tags: Dashboard

Returns the users who created one or more detectable personal locations with associated network data. (Exclude users didn't enable Location Permission on client.)

Prerequisites:

  • Pro or higher account plan with Zoom phone license
  • Account owner or admin permissions

Scopes: phone:read:admin

Granular Scopes: phone:read:detectable_personal_location:admin

Rate Limit Label: MEDIUM

Responses

Status: 200 **HTTP Status Code:** `200` Locations returned.
Content-Type: application/json
  • next_page_token

    string — The next page token paginates through a large set of results. It returns whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • page_size

    number — The total number of records returned from a single API call.

  • records

    array

    Items:

    • email

      string — The user's email.

    • extension_id

      string — The user's extension ID.

    • extension_number

      integer, format: int64 — The user's extension number.

    • site_id

      string — The unique identifier of the site.

    • site_name

      string — The site's name.

    • status

      string, possible values: "set", "not_set" — The status of **Detectable Personal Location**.

    • user_display_name

      string — The user's name.

  • total_records

    number — The total number of records found for this query.

Example:

{
  "next_page_token": "6VXOgUaNNeZ7qL7bENvXPgclgeZ3bf3nbj2",
  "page_size": 1,
  "total_records": 6,
  "records": [
    {
      "email": "test.user@gmail.com",
      "user_display_name": "James Lu",
      "extension_id": "VodZOCkyRM-wfOqr1xmuMQ",
      "extension_number": 10010,
      "site_name": "Main Site",
      "site_id": "oB18huSERjqbzrsyL2bD5w",
      "status": "set"
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `802` <br> Data is not ready, please try again later <br> **Error Code:** `8001` <br> Site does not exist <br> **Error Code:** `400` <br> status can't be empty. <br> **Error Code:** `400` <br> The next page token is invalid or expired. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List users permission for location sharing

  • Method: GET
  • Path: /phone/metrics/emergency_services/location_sharing_permission/users
  • Tags: Dashboard

Returns users that have enabled location services and allowed location sharing with Zoom applications on client devices.

(Excludes users who are unable to use Nomadic Emergency Services, or users on client versions lower than 5.4.0.)

Prerequisites:

  • Pro or higher account plan with Zoom phone license
  • Account owner or admin permissions

Scopes: phone:read:admin

Granular Scopes: phone:read:location_sharing_permission:admin

Rate Limit Label: MEDIUM

Responses

Status: 200 **HTTP Status Code:** `200` Locations returned.
Content-Type: application/json
  • next_page_token

    string — The next page token paginates through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • page_size

    number — The total number of records returned from a single API call.

  • total_records

    number — The total number of records found for this query.

  • user_permissions

    array — The list of users permission for location sharing

    Items:

    • device_permissions

      array — The device's permission list of user.

      Items:

      • last_seen_time

        number — The last seen time stamp of the device.

      • location_sharing

        string, possible values: "allowed", "disallowed" — The status of **Users Permission for Location Sharing**.

      • platform

        string — The platform of the device.

    • email

      string — The user's email.

    • extension_id

      string — The user's extension ID.

    • extension_number

      integer, format: int64 — The user's extension number.

    • site_id

      string — The unique identifier of the site.

    • site_name

      string — The site's name.

    • user_display_name

      string — The user's name.

Example:

{
  "next_page_token": "6VXOgUaNNeZ7qL7bENvXPgclgeZ3bf3nbj2",
  "page_size": 1,
  "total_records": 6,
  "user_permissions": [
    {
      "email": "test.user@gmail.com",
      "user_display_name": "james lu",
      "extension_id": "VodZOCkyRM-wfOqr1xmuMQ",
      "extension_number": 10010,
      "site_name": "Main Site",
      "site_id": "oB18huSERjqbzrsyL2bD5w",
      "device_permissions": [
        {
          "last_seen_time": 1730774641337,
          "location_sharing": "allowed",
          "platform": "win"
        }
      ]
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `8001` <br> Site does not exist <br> **Error Code:** `400` <br> The next page token is invalid or expired. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List nomadic emergency services users

  • Method: GET
  • Path: /phone/metrics/emergency_services/nomadic_emergency_services/users
  • Tags: Dashboard

Returns users who have been enabled for nomadic emergency services.

Prerequisites:

  • Pro or higher account plan with Zoom phone license
  • Account owner or admin permissions

Scopes: phone:read:admin

Granular Scopes: phone:read:nomadic_emergency_services:admin

Rate Limit Label: MEDIUM

Responses

Status: 200 **HTTP Status Code:** `200` Locations returned.
Content-Type: application/json
  • next_page_token

    string — The next page token paginates through a large set of results. It returns whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • page_size

    number — The total number of records returned from a single API call.

  • records

    array

    Items:

    • email

      string — The user's email.

    • extension_id

      string — The user's extension ID.

    • extension_number

      integer, format: int64 — The user's extension number.

    • reason_for_disabling

      integer, format: int32, possible values: 1, 2, 3, 4, 5 — The reason of disabling nomadic emergency services, only returned if service is disabled `1`: Nomadic Emergency Services is disabled `2`: Routing emergency calls to The Safety Team and PSAP is disabled `3`: The assigned number of this user is not a US/CA number `4`: Placing emergency calls to PSAP for extension-only users is disabled, or no US/CA numbers has been assigned to Emergency Number Pool. `5`: This user is only assigned with BYOC numbers and BYOC carriers were set to route the emergency calls, or for extension-only users, only BYOC numbers has been assigned to Emergency Number Pool and the BYOC carrier was set to route the emergency calls.

    • site_id

      string — The unique identifier of the site.

    • site_name

      string — The site's name.

    • status

      string, possible values: "enabled", "disabled" — The status of **Nomadic Emergency Services**.

    • user_display_name

      string — The user's name.

  • total_records

    number — The total number of records found for this query.

Example:

{
  "next_page_token": "6VXOgUaNNeZ7qL7bENvXPgclgeZ3bf3nbj2",
  "page_size": 1,
  "total_records": 6,
  "records": [
    {
      "email": "test.user@gmail.com",
      "user_display_name": "James Lu",
      "extension_id": "VodZOCkyRM-wfOqr1xmuMQ",
      "extension_number": 10010,
      "site_name": "Main Site",
      "site_id": "oB18huSERjqbzrsyL2bD5w",
      "status": "enabled",
      "reason_for_disabling": 2
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `802` <br> Data is not ready, please try again later <br> **Error Code:** `8001` <br> Site does not exist <br> **Error Code:** `400` <br> The next page token is invalid or expired. <br> **Error Code:** `400` <br> status can't be empty. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List real time location for IP phones

  • Method: GET
  • Path: /phone/metrics/emergency_services/realtime_location/devices
  • Tags: Dashboard

Returns currently detected location of IP phones.

Prerequisites:

  • Pro or higher account plan with Zoom phone license
  • Account owner or admin permissions

Scopes: phone:read:admin

Granular Scopes: phone:read:realtime_location_devices:admin

Rate Limit Label: MEDIUM

Responses

Status: 200 **HTTP Status Code:** `200` Locations returned.
Content-Type: application/json
  • next_page_token

    string — The next page token paginates through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • page_size

    integer, default: 30 — The total number of records returned from a single API call.

  • records

    array

    Items:

    • assigned_info

      array

      Items:

      • extension_id

        string — The extension ID of the user's Zoom Phone.

      • extension_number

        integer, format: int64 — The extension number of the user's Zoom Phone.

      • user_display_name

        string — The name of the user.

      • user_email

        string — The email of the user.

    • bssid

      string — The BSSID (Basic Service Set Identifiers) of the wifi network which the device connected to

    • device_id

      string — The device ID.

    • device_name

      string — The device's name.

    • emergency_address

      string — The emergency location's address.

    • location_name

      string — The location's name.

    • location_type

      string, possible values: "company", "personal", "unknown" — The type of location: `personal`, `company`, `unknown`

    • mac_address

      string — The MAC address or serial number of the device.

    • network_switch

      object

      • mac_address

        string — The MAC address or serial number of network switch.

      • port

        string — The port of the network switch.

    • private_ip

      string — The device's subnet or private IP address.

    • public_ip

      string — The device's public IP address.

    • site_id

      string — The unique identifier of the site.

    • site_name

      string — The site name.

  • total_records

    integer — The total number of records found for this query.

Example:

{
  "records": [
    {
      "device_id": "-tDdYIstSumpA0L13GztIQ",
      "device_name": "Desk Phone",
      "site_id": "NjHmTu16Qfe8yOiNJuekXA",
      "site_name": "HF site",
      "public_ip": "192.168.1.1",
      "private_ip": "192.168.1.1",
      "bssid": "SA43YjfBTS6gJbUpfvIziQ",
      "emergency_address": "55 ALMADEN BLVD",
      "mac_address": "543968a78ee7",
      "location_name": "example location",
      "network_switch": {
        "port": "2",
        "mac_address": "543968a78ee7"
      },
      "location_type": "personal",
      "assigned_info": [
        {
          "extension_id": "IqoQmDRqS-aIoXqV_FZ88w",
          "extension_number": 10010,
          "user_email": "test.user@gmai.com",
          "user_display_name": "James Lu"
        }
      ]
    }
  ],
  "total_records": 1,
  "page_size": 30,
  "next_page_token": "T6WMY4fJBIAlxPUiqRtwvQS9dvsq8AoRam2"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `8001` <br> Site does not exist <br> **Error Code:** `400` <br> location_type can't be empty. <br> **Error Code:** `400` <br> The next page token is invalid or expired. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List real time location for users

  • Method: GET
  • Path: /phone/metrics/emergency_services/realtime_location/users
  • Tags: Dashboard

Returns the user's currently detected location. (Excludes users who didn't enable location permission on the client.)

Prerequisites:

  • Pro or higher account plan with Zoom phone license
  • Account owner or admin permissions

Scopes: phone:read:admin

Granular Scopes: phone:read:realtime_location_users:admin

Rate Limit Label: MEDIUM

Responses

Status: 200 **HTTP Status Code:** `200` Locations returned.
Content-Type: application/json
  • next_page_token

    string — The next page token paginates through a large set of results. It returns whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • page_size

    number — The total number of records returned from a single API call.

  • records

    array

    Items:

    • bssid

      string — The BSSID (Basic Service Set Identifiers) of the wifi network which the user is connected to.

    • email

      string — The user's email

    • emergency_address

      string — The emergency location's address.

    • extension_id

      string — The user's extension ID.

    • extension_number

      integer, format: int64 — The user's extension number.

    • location_name

      string — The location's name.

    • location_type

      string, possible values: "company", "personal", "unknown" — The type of location: `company`, `personal`, `unknown`

    • network_switch

      object

      • mac_address

        string — The MAC address or serial number of network switch.

      • port

        string — The port of the network switch.

    • private_ip

      string — The device's subnet or private IP address.

    • public_ip

      string — The device's public IP address.

    • site_id

      string — The unique identifier of the site.

    • site_name

      string — The site's name.

    • user_display_name

      string — The user's name

  • total_records

    number — The total number of records found for this query.

Example:

{
  "next_page_token": "6VXOgUaNNeZ7qL7bENvXPgclgeZ3bf3nbj2",
  "page_size": 1,
  "total_records": 6,
  "records": [
    {
      "email": "test.user@gmail.com",
      "bssid": "d0:15:a6:1f:4f:35",
      "user_display_name": "James Lu",
      "extension_id": "VodZOCkyRM-wfOqr1xmuMQ",
      "extension_number": 10010,
      "site_name": "Main Site",
      "site_id": "oB18huSERjqbzrsyL2bD5w",
      "public_ip": "66.172.49.116",
      "private_ip": "10.100.161.25",
      "emergency_address": "55 ALMADEN BLVD",
      "location_name": "example location",
      "network_switch": {
        "port": "2",
        "mac_address": "543968a78ee7"
      },
      "location_type": "unknown"
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `8001` <br> Site does not exist <br> **Error Code:** `400` <br> location_type can't be empty. <br> **Error Code:** `400` <br> The next page token is invalid or expired. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List tracked locations

  • Method: GET
  • Path: /phone/metrics/location_tracking
  • Tags: Dashboard

Lists the tracked locations.

Prerequisites:

  • Pro or higher account plan with Zoom phone license
  • Account owner or admin permissions

Scopes: phone:read:admin

Granular Scopes: phone:read:list_tracked_locations:admin

Rate Limit Label: Medium

Responses

Status: 200 **HTTP Status Code:** `200` Locations returned.
Content-Type: application/json
  • location_tracking

    array

    Items:

    • assignees

      array

      Items:

      • extension_number

        integer, format: int64 — The extension number of the user's Zoom Phone.

      • id

        string — The user ID of the user with the assigned device.

      • name

        string — The name of the user.

    • city

      string — The city of the location.

    • country

      string — The two-lettered country code (Aplha-2 code in ISO-3166 format) standard of the location.

    • device

      object

      • bssid

        string — The device's BSSIDs (Basic Service Set Identifiers).

      • id

        string — The device ID.

      • mac_address

        string — The MAC address or serial number of the device.

      • name

        string — The device name.

      • private_ip

        string — The device's subnet or private IP address.

      • public_ip

        string — The device's public IP address.

    • emergency_address

      string — The emergency location's address.

    • name

      string — The location's name.

    • network_switch

      object

      • mac_address

        string — The MAC address or serial number of network switch.

      • port

        string — The port of the network switch.

    • site

      object

      • id

        string — The unique identifier of the site.

      • name

        string — The site name.

    • type

      string, possible values: "company", "personal", "unknown" — The type of location

    • zip

      string — The zip code of the location.

  • next_page_token

    string — The next page token paginates through a large set of results. A next page token is returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • page_size

    integer, default: 30 — The total number of records returned from a single API call.

  • total_records

    integer — The total number of records found for this query.

Example:

{
  "location_tracking": [
    {
      "assignees": [
        {
          "extension_number": 10010,
          "id": "IqoQmDRqS-aIoXqV_FZ88w",
          "name": "testUser"
        }
      ],
      "city": "SAN JOSE",
      "country": "US",
      "device": {
        "bssid": "SA43YjfBTS6gJbUpfvIziQ",
        "id": "-tDdYIstSumpA0L13GztIQ",
        "mac_address": "543968a78ee7",
        "name": "Desk Phone",
        "private_ip": "192.168.1.1",
        "public_ip": "192.168.1.1"
      },
      "emergency_address": "55 ALMADEN BLVD",
      "name": "testLocation",
      "network_switch": {
        "mac_address": "543968a78ee7",
        "port": "2"
      },
      "site": {
        "id": "NjHmTu16Qfe8yOiNJuekXA",
        "name": "testSite"
      },
      "type": "personal",
      "zip": "95113"
    }
  ],
  "next_page_token": "T6WMY4fJBIAlxPUiqRtwvQS9dvsq8AoRam2",
  "page_size": 30,
  "total_records": 1
}
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List past call metrics

  • Method: GET
  • Path: /phone/metrics/past_calls
  • Tags: Dashboard

Returns all the call logs metrics of the account from the selected time period. The call logs provide a record of all incoming and outgoing calls over Zoom Phone in an account. You can use query parameters to filter the response by metrics of the call (such as date, phone number, extension number and quality type).

Prerequisites:

  • Business, or Education account
  • Zoom Phone license

Scopes: phone:read:admin

Granular Scopes: phone:read:list_call_logs:admin

Rate Limit Label: Heavy

Responses

Status: 200 **HTTP Status code:** `200` List past call metrics successfully.
Content-Type: application/json
  • call_logs

    array — The call logs.

    Items:

    • call_id

      string — The unique identifier of the phone call.

    • callee

      object — The callee object that contains information of the callee.

      • codec

        string — The audio codec.

      • device_private_ip

        string — This setting displays the device's private IP address if the account has the `show_device_ip_for_call_log` parameter set to `enabled`.

      • device_public_ip

        string — This setting displays the device's public IP address if the account has the `show_device_ip_for_call_log` parameter set to `enabled`.

      • device_type

        string — The device type, and if applicable, its version number. Acceptable device types: * `Windows_Client` * `MAC_Client` * `Linux_Client` * `Android_Phone` * `IOS_Phone` * `Android_Pad` * `IOS_Pad` * [Zoom Phone Appliance](https://support.zoom.us/hc/en-us/articles/360001299063#h_cc0dac0d-44aa-4fb6-8e39-359166c38715) * `Windows_VDI_Client` * `MAC_VDI_Client` * `Linux_VDI_Client`

      • extension_number

        string — The full extension number of the callee.

      • headset

        string — The headset the callee uses for the call.

      • isp

        string — The internet service provider.

      • microphone

        string — The microphone the callee uses for the call.

      • phone_number

        string — The phone number of the callee in E164 format.

      • site_id

        string — The unique identifier of the [site](https://support.zoom.us/hc/en-us/articles/360020809672-Managing-multiple-sites).

    • caller

      object — The caller object that contains information of the caller.

      • codec

        string — The audio codec.

      • device_private_ip

        string — This setting displays the device's private IP address if the account has the `show_device_ip_for_call_log` parameter set to `enabled`.

      • device_public_ip

        string — This setting displays the device's public IP address if the account has the `show_device_ip_for_call_log` parameter set to `enabled`.

      • device_type

        string — The device type, and if applicable, its version number. Acceptable device types: * `Windows_Client` * `MAC_Client` * `Linux_Client` * `Android_Phone` * `IOS_Phone` * `Android_Pad` * `IOS_Pad` * [Zoom Phone Appliance](https://support.zoom.us/hc/en-us/articles/360001299063#h_cc0dac0d-44aa-4fb6-8e39-359166c38715) * `Windows_VDI_Client` * `MAC_VDI_Client` * `Linux_VDI_Client`

      • extension_number

        string — The full extension number of the caller.

      • headset

        string — The headset the caller uses for the call.

      • isp

        string — The internet service provider.

      • microphone

        string — The microphone the caller uses for the call.

      • phone_number

        string — The phone number of the caller in E164 format.

      • site_id

        string — The unique identifier of the [site](https://support.zoom.us/hc/en-us/articles/360020809672-Managing-multiple-sites).

    • date_time

      string — The date and time when the call started.

    • direction

      string, possible values: "inbound", "outbound", "internal" — The direction of the call.

    • duration

      integer — The duration of the call in seconds.

    • mos

      string — The Mean Opinion Score (MOS). Zoom uses (MOS) as the main measurement to report on voice quality. MOS measures voice quality on a scale of one to five. A score of 1 indicates unacceptable voice quality for all users. A score of five is the best voice quality.

  • from

    string — The start time and date of the report.

  • next_page_token

    string — The next page token paginates through a large set of results. A next page token is returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • page_size

    integer — The number of records returned within a single call.

  • to

    string — The end time and date of the report.

  • total_records

    integer — The total number of records available across all pages.

Example:

{
  "call_logs": [
    {
      "call_id": "7081466125443483485",
      "callee": {
        "codec": "ES8311",
        "device_private_ip": "10.100.111.237",
        "device_public_ip": "38.99.100.2",
        "device_type": "MAC_Client",
        "extension_number": "100994",
        "headset": "Edifier",
        "isp": "Cogent Communications",
        "microphone": "+12053194087",
        "phone_number": "+12053194087",
        "site_id": "ZNWikLeVSjuaMvUoxFqCuw"
      },
      "caller": {
        "codec": "ES8311",
        "device_private_ip": "10.100.111.232",
        "device_public_ip": "38.99.100.3",
        "device_type": "MAC_Client",
        "extension_number": "100152",
        "headset": "Edifier",
        "isp": "Cogent Communications",
        "microphone": "+12053194087",
        "phone_number": "+12053194087",
        "site_id": "ZNWikLeVSjuaMvUoxFqCuw"
      },
      "date_time": "2021-04-01T02:59:32Z",
      "direction": "internal",
      "duration": 20,
      "mos": "4.5"
    }
  ],
  "from": "2021-03-31",
  "to": "2021-04-01",
  "next_page_token": "T6WMY4fJBIAlxPUiqRtwvQS9dvsq8AoRam2",
  "page_size": 30,
  "total_records": 20
}
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get device line keys information

  • Method: GET
  • Path: /phone/devices/{deviceId}/line_keys
  • Tags: Device Line Keys

Use this API to get information on the Zoom Phone device line keys settings and position.

Prerequisites:

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:read:admin,phone:read

Granular Scopes: phone:read:device_line_keys,phone:read:device_line_keys:admin

Rate Limit Label: Heavy

Responses

Status: 200 **HTTP Status Code:** `200` Device line keys returned.
Content-Type: application/json
  • device_id

    string — Device ID.

  • device_name

    string — Device name.

  • positions

    array — Device line key position.

    Items:

    • display_name

      string — Display name of the user or common area.

    • extension_id

      string — Extension ID of the `user` or `common area`.

    • extension_number

      integer, format: int64 — Extension number of the Zoom Phone used by the `user` or `commonArea`.

    • extension_type

      string, possible values: "User", "CommonArea" — Type of the assignee. Available only if the device is assigned.

    • index

      integer — The order of the device line key.

    • outbound_caller_ids

      array — Outbound caller ids.

      Items:

      • extension_id

        string — Extension ID of the `user` or `common area`.

      • phone_number

        string — The phone number in E164 format.

      • usage_type

        string, possible values: "Main Company Number", "Additional Company Number", "Direct Number", "Phone Number" — Phone number usage type.

    • owner_extension_name

      string — Port owner name.

    • owner_extension_number

      integer, format: int64 — Port owner extension number.

    • phone_number

      string — The phone number in E164 format.

Example:

{
  "device_id": "yfWfRkZ_QPSNGuWKiAGYbQ",
  "device_name": "ATA Device",
  "positions": [
    {
      "index": 1,
      "owner_extension_name": "Port owner name",
      "owner_extension_number": 123,
      "extension_number": 123,
      "extension_type": "User",
      "extension_id": "MjGXQfCxShapaxJDka7",
      "display_name": "Display name",
      "phone_number": "+12055437350",
      "outbound_caller_ids": [
        {
          "extension_id": "MjGXQfCxShapaxJDka7",
          "phone_number": "+12055437350",
          "usage_type": "Main Company Number"
        }
      ]
    }
  ]
}
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Batch update device line key position

  • Method: PATCH
  • Path: /phone/devices/{deviceId}/line_keys
  • Tags: Device Line Keys

Use this API to batch update the Zoom Phone device line key position information.

Prerequisites:

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:write:admin,phone:write

Granular Scopes: phone:update:device_line_keys,phone:update:device_line_keys:admin

Rate Limit Label: Heavy

Request Body

Content-Type: application/json
  • positions

    array — Device line key position.

    Items:

    • extension_id

      string — Extension ID of the `user` or `common area`.

    • index

      integer — The order of the device line key.

Example:

{
  "positions": [
    {
      "extension_id": "MjGXQfCxShapaxJDka7",
      "index": 1
    }
  ]
}

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Device line keys and positions updated sucessfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Extension ID does not exist: {0}. <br> Index is invalid: {0}.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List users in directory

  • Method: GET
  • Path: /phone/dial_by_name_directory/extensions
  • Tags: Dial by Name Directory

Use this API to get users that are in or not in a directory.

Prerequisites:

  • Business or Education account
  • Zoom Phone license

Scopes: phone:read:admin

Granular Scopes: phone:read:directory:admin

Rate Limit Label: Medium

Responses

Status: 200 **HTTP Status Code:** `200` **OK** Successfully listed the user information.
Content-Type: application/json
  • next_page_token

    string — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of the available result list exceeds the page size.

  • page_size

    integer — The size of the page.

  • result

    array — User list.

    Items:

    • display_name

      string — Display name.

    • email

      string — Email.

    • extension_id

      string — Extension ID.

    • extension_number

      string — Extension number.

    • site

      object — Site.

      • id

        string — Unique identifier of the site.

      • name

        string — Site Name.

Example:

{
  "next_page_token": "FHBv62",
  "page_size": 10,
  "result": [
    {
      "extension_id": "FDFU83j",
      "display_name": "CUSTOMERS",
      "email": "email@example.com",
      "extension_number": "1933",
      "site": {
        "id": "flej2f",
        "name": "New Site"
      }
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2001` <br> Account does not exist.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Add users to a directory

  • Method: POST
  • Path: /phone/dial_by_name_directory/extensions
  • Tags: Dial by Name Directory

Use this API to add users to a directory.

Prerequisites:

  • Business or Education account
  • Zoom Phone license

Scopes: phone:write:admin

Granular Scopes: phone:write:directory:admin

Rate Limit Label: Light

Request Body

Content-Type: application/json

Example:

{
  "site_id": "pei2g0vFDF",
  "extension_ids": [
    "O3JFBAnds"
  ]
}

Responses

Status: 201 **HTTP Status Code:** `201` **Created** Successfully added users to the directory.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2001` <br> Account does not exist.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Delete users from a directory

  • Method: DELETE
  • Path: /phone/dial_by_name_directory/extensions
  • Tags: Dial by Name Directory

Use this API to delete users from the directory.

Prerequisites:

  • Business or Education account
  • Zoom Phone license

Scopes: phone:write:admin

Granular Scopes: phone:delete:directory:admin

Rate Limit Label: Light

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Successfully deleted users from the directory.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2001` <br> Account does not exist.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List users in a directory by site

  • Method: GET
  • Path: /phone/sites/{siteId}/dial_by_name_directory/extensions
  • Tags: Dial by Name Directory

Use this API to get users that are in or not in a directory of the specified site.

Prerequisites:

  • Business or Education account
  • Zoom Phone license

Scopes: phone:read:admin

Granular Scopes: phone:read:directory:admin

Rate Limit Label: Medium

Responses

Status: 200 **HTTP Status Code:** `200` **OK** Successfully listed the user information.
Content-Type: application/json
  • next_page_token

    string — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of the available result list exceeds the page size.

  • page_size

    integer — The size of the page.

  • result

    array — User list.

    Items:

    • display_name

      string — Display name.

    • email

      string — Email.

    • extension_id

      string — Extension ID.

    • extension_number

      string — Extension number.

    • site

      object — Site.

      • id

        string — Unique identifier of the site.

      • name

        string — Site Name.

Example:

{
  "next_page_token": "lfei3g",
  "page_size": 30,
  "result": [
    {
      "extension_id": "feq3g",
      "display_name": "Name",
      "email": "example@example.com",
      "extension_number": "1003",
      "site": {
        "id": "fdjl23",
        "name": "New site"
      }
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2001` <br> Account does not exist.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Add users to a directory of a site

  • Method: POST
  • Path: /phone/sites/{siteId}/dial_by_name_directory/extensions
  • Tags: Dial by Name Directory

Use this API to add users to a directory of the specified site.

Prerequisites:

  • Business or Education account
  • Zoom Phone license

Scopes: phone:write:admin

Granular Scopes: phone:write:directory:admin

Rate Limit Label: Light

Request Body

Content-Type: application/json

Example:

{
  "site_id": "fdfdwb",
  "extension_ids": [
    "qdvd3fg"
  ]
}

Responses

Status: 201 **HTTP Status Code:** `201` **Created** Successfully added users to the directory.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2001` <br> Account does not exist.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Delete users from a directory of a site

  • Method: DELETE
  • Path: /phone/sites/{siteId}/dial_by_name_directory/extensions
  • Tags: Dial by Name Directory

Use this API to delete users from a directory of the specified site.

Prerequisites:

  • Business or Education account
  • Zoom Phone license

Scopes: phone:write:admin

Granular Scopes: phone:delete:directory:admin

Rate Limit Label: Light

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Successfully deleted users from the directory.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2001` <br> Account does not exist.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List emergency addresses

  • Method: GET
  • Path: /phone/emergency_addresses
  • Tags: Emergency Addresses

Lists the emergency addresses.

Prerequisites:

  • Pro or a higher account with Zoom Phone license
  • Account owner or admin permissions

Scopes: phone:read:admin

Granular Scopes: phone:read:list_emergency_addresses:admin

Rate Limit Label: Medium

Responses

Status: 200 **HTTP Status Code:** `200` Emergency addresses listed successfully.
Content-Type: application/json
  • emergency_addresses

    array — Information about emergency addresses.

    Items:

    • address_line1

      string — The emergency address line 1.

    • address_line2

      string — The emergency address line 2.

    • city

      string — The emergency address city.

    • country

      string — The emergency address country.

    • id

      string — The emergency address ID.

    • is_default

      boolean — Indicates whether the emergency address is default or not.

    • level

      integer, possible values: 0, 1, 2 — The emergency address owner level: * `0` - Account/Company-level emergency address. * `1` - User/Personal-level emergency address. * `2` - Unknown company/pending emergency address.

    • owner

      object — The emergency address owner information for a user-level emergency address.

      • extension_number

        integer, format: int64 — The emergency address owner extension number.

      • id

        string — The emergency address owner ID.

      • name

        string — The emergency address owner name.

    • site

      object — The emergency address site information.

      • id

        string — The site's ID.

      • name

        string — The site's name.

    • state_code

      string — The emergency address state code.

    • status

      integer, possible values: 1, 2, 3, 4, 5, 6 — The emergency address verification status: * `1` &mdash; Verification not required. * `2` &mdash; Unverified. * `3` &mdash; Verification requested. * `4` &mdash; Verified. * `5` &mdash; Rejected. * `6` &mdash; Verification failed.

    • zip

      string — The emergency address zip code.

  • next_page_token

    string — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • page_size

    integer — The number of records returned with a single API call.

  • total_records

    integer — The total number of records returned.

Example:

{
  "emergency_addresses": [
    {
      "address_line1": "55 ALMADEN BLVD",
      "address_line2": "8 Floor",
      "city": "SAN JOSE",
      "country": "US",
      "id": "Qza2T_KATwCeUfTkzGsOmQ",
      "is_default": true,
      "level": 1,
      "owner": {
        "extension_number": 101002,
        "id": "y9th648XRfSL9S61p1TsBw",
        "name": "ZOOM_API Test"
      },
      "site": {
        "id": "SQv52YtkRLC2dwrDdYtGsA",
        "name": "Main site"
      },
      "state_code": "CA",
      "status": 1,
      "zip": "95113"
    }
  ],
  "next_page_token": "T6WMY4fJBIAlxPUiqRtwvQS9dvsq8AoRam2",
  "page_size": 30,
  "total_records": 20
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Site does not exist: {site_id}
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Add an emergency address

  • Method: POST
  • Path: /phone/emergency_addresses
  • Tags: Emergency Addresses

Adds an emergency address. If the address provided is not an exact match, the system generated corrected address will be used.

Prerequisites:

  • Pro or a higher account with Zoom Phone license
  • Account owner or admin permissions

Scopes: phone:write:admin

Granular Scopes: phone:write:emergency_address:admin

Rate Limit Label: Light

Request Body

Content-Type: application/json
  • address_line1 (required)

    string — The emergency address line 1.

  • city (required)

    string — The emergency address city.

  • country (required)

    string — The emergency address country.

  • state_code (required)

    string — The emergency address state code.

  • zip (required)

    string — The emergency address zip code.

  • address_line2

    string — The emergency address line 2.

  • is_default

    boolean — Indicates whether the emergency address is default or not.

  • site_id

    string — The site ID. Nullable if 'user_id' is not null.

  • user_id

    string — User ID to which the personal emergency address belongs.

Example:

{
  "address_line1": "55 Almaden Blvd",
  "address_line2": "8 Floor",
  "city": "San Jose",
  "country": "US",
  "is_default": true,
  "site_id": "SQv52YtkRLC2dwrDdYtGsA",
  "state_code": "10",
  "user_id": "fWOgOALdT1ei4vjXK-QYsA",
  "zip": "95113"
}

Responses

Status: 201 **HTTP Status Code:** `201` **Created** Emergency address added successfully.
Content-Type: application/json
  • address_line1

    string — The emergency address line 1.

  • address_line2

    string — The emergency address line 2.

  • city

    string — The emergency address city.

  • country

    string — The emergency address country.

  • id

    string — The emergency address ID.

  • is_default

    boolean — Indicates whether the emergency address is default or not.

  • level

    integer, possible values: 0, 1, 2 — The emergency address owner level: * `0` - Account/Company-level emergency address. * `1` - User/Personal-level emergency address. * `2` - Unknown company/pending emergency address.

  • owner

    object — The emergency address owner information for a user-level emergency address.

    • extension_number

      string — The emergency address owner extension number.

    • id

      string — The emergency address owner ID.

    • name

      string — The emergency address owner name.

  • site

    object — The emergency address site information.

    • id

      string — The site's ID.

    • name

      string — The site's name.

  • state_code

    string — The emergency address state code.

  • status

    integer, possible values: 1, 2, 3, 4, 5, 6 — The emergency address verification status: * `1` &mdash; Verification not required. * `2` &mdash; Unverified. * `3` &mdash; Verification requested. * `4` &mdash; Verified. * `5` &mdash; Rejected. * `6` &mdash; Verification failed.

  • zip

    string — The emergency address zip code.

Example:

{
  "address_line1": "55 Almaden Blvd",
  "address_line2": "8 Floor",
  "city": "San Jose",
  "country": "US",
  "id": "Qza2T_KATwCeUfTkzGsOmQ",
  "is_default": true,
  "level": 1,
  "owner": {
    "extension_number": "101002",
    "id": "y9th648XRfSL9S61p1TsBw",
    "name": "ZOOM_API Test"
  },
  "site": {
    "id": "SQv52YtkRLC2dwrDdYtGsA",
    "name": "Main site"
  },
  "state_code": "CA",
  "status": 1,
  "zip": "95113"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get emergency address details

  • Method: GET
  • Path: /phone/emergency_addresses/{emergencyAddressId}
  • Tags: Emergency Addresses

Gets the emergency address information.

Prerequisites:

  • Pro or a higher account with Zoom Phone license
  • Account owner or admin permissions

Scopes: phone:read:admin

Granular Scopes: phone:read:emergency_address:admin

Rate Limit Label: Light

Responses

Status: 200 **HTTP Status Code:** `200` **OK** Emergency address retrieved successfully.
Content-Type: application/json
  • address_line1

    string — The emergency address line 1.

  • address_line2

    string — The emergency address line 2.

  • city

    string — The emergency address city.

  • country

    string — The emergency address country.

  • id

    string — The emergency address ID.

  • is_default

    boolean — Indicates whether the emergency address is default or not.

  • level

    integer, possible values: 0, 1, 2 — The emergency address owner level: * `0` - Account/Company-level emergency address. * `1` - User/Personal-level emergency address. * `2` - Unknown company/pending emergency address.

  • owner

    object — The emergency address owner information for a user-level emergency address.

    • extension_number

      integer, format: int64 — The extension number of the emergency address owner .

    • id

      string — The emergency address owner ID.

    • name

      string — The emergency address owner name.

  • site

    object — The emergency address site information.

    • id

      string — The site's ID.

    • name

      string — The site's name.

  • state_code

    string — The emergency address state code.

  • status

    integer, possible values: 1, 2, 3, 4, 5, 6 — The emergency address verification status: * `1` &mdash; Verification not required. * `2` &mdash; Unverified. * `3` &mdash; Verification requested. * `4` &mdash; Verified. * `5` &mdash; Rejected. * `6` &mdash; Verification failed.

  • zip

    string — The emergency address zip code.

Example:

{
  "address_line1": "55 ALMADEN BLVD",
  "address_line2": "8 Floor",
  "city": "San Jose",
  "country": "US",
  "id": "Qza2T_KATwCeUfTkzGsOmQ",
  "is_default": true,
  "level": 1,
  "owner": {
    "extension_number": 101002,
    "id": "y9th648XRfSL9S61p1TsBw",
    "name": "ZOOM_API Test"
  },
  "site": {
    "id": "SQv52YtkRLC2dwrDdYtGsA",
    "name": "Main site"
  },
  "state_code": "CA",
  "status": 1,
  "zip": "95113"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Emergency address does not exist {emergencyAddressId}.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Delete an emergency address

  • Method: DELETE
  • Path: /phone/emergency_addresses/{emergencyAddressId}
  • Tags: Emergency Addresses

Removes an emergency address.

Prerequisites:

  • Pro or a higher account with Zoom Phone license
  • Account owner or admin permissions

Scopes: phone:write:admin

Granular Scopes: phone:delete:emergency_address:admin

Rate Limit Label: Heavy

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Emergency address deleted successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update an emergency address

  • Method: PATCH
  • Path: /phone/emergency_addresses/{emergencyAddressId}
  • Tags: Emergency Addresses

Updates an emergency address information. If the address provided is not an exact match, the system generated corrected address will be used.

Prerequisites:

  • Pro or a higher account with Zoom Phone license
  • Account owner or admin permissions

Scopes: phone:write:admin

Granular Scopes: phone:update:emergency_address:admin

Rate Limit Label: Light

Request Body

Content-Type: application/json
  • address_line1

    string — The emergency address line 1.

  • address_line2

    string — The emergency address line 2.

  • city

    string — The emergency address city.

  • country

    string — The emergency address country.

  • is_default

    boolean — Whether the emergency address is default or not.

  • state_code

    string — The emergency address state code.

  • zip

    string — The emergency address zip code.

Example:

{
  "address_line1": "55 Almaden Blvd",
  "address_line2": "8 Floor",
  "city": "San Jose",
  "country": "US",
  "is_default": false,
  "state_code": "CA",
  "zip": "95113"
}

Responses

Status: 200 **HTTP Status Code:** `200` **OK** Emergency address updated successfully.
Content-Type: application/json
  • address_line1

    string — The emergency address line 1.

  • address_line2

    string — The emergency address line 2.

  • city

    string — The emergency address city.

  • country

    string — The emergency address country.

  • id

    string — The emergency address ID.

  • is_default

    boolean — Whether the emergency address is default or not.

  • level

    integer, possible values: 0, 1, 2 — The emergency address owner level: * `0` - Account/Company-level emergency address. * `1` - User/Personal-level emergency address. * `2` - Unknown company/pending emergency address.

  • owner

    object — The emergency address owner information for a user-level emergency address.

    • extension_number

      integer, format: int64 — The extension number of the emergency address owner.

    • id

      string — The ID of the emergency address owner.

    • name

      string — The name of the emergency address owner.

  • site

    object — The information about the emergency address site.

    • id

      string — The site's ID.

    • name

      string — The site's name.

  • state_code

    string — The emergency address state code.

  • status

    integer, possible values: 1, 2, 3, 4, 5, 6 — The emergency address verification status: * `1` &mdash; Verification not required. * `2` &mdash; Unverified. * `3` &mdash; Verification requested. * `4` &mdash; Verified. * `5` &mdash; Rejected. * `6` &mdash; Verification failed.

  • zip

    string — The emergency address zip code.

Example:

{
  "address_line1": "55 ALMADEN BLVD",
  "address_line2": "8 Floor",
  "city": "San Jose",
  "country": "US",
  "id": "Qza2T_KATwCeUfTkzGsOmQ",
  "is_default": true,
  "level": 1,
  "owner": {
    "extension_number": 101002,
    "id": "y9th648XRfSL9S61p1TsBw",
    "name": "ZOOM_API Test"
  },
  "site": {
    "id": "SQv52YtkRLC2dwrDdYtGsA",
    "name": "Main site"
  },
  "state_code": "CA",
  "status": 1,
  "zip": "95113"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Batch add emergency service locations

  • Method: POST
  • Path: /phone/batch_locations
  • Tags: Emergency Service Locations

Adds emergency service locations in batch.

Prerequisites:

  • Pro or higher account plan with Zoom phone license
  • Account owner or admin permissions

Scopes: phone:write:admin

Granular Scopes: phone:write:batch_emergency_locations:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • locations (required)

    array

    Items:

    • company_address (required)

      object

      • address_line1 (required)

        string — The location's physical address.

      • country (required)

        string — The location's country.

      • address_line2

        string — The location's optional physical address information. For example, a suite number.

      • city

        string — The location's city.

      • state_code

        string — The location's state, province, or territory.

      • vat_number

        string — The location's VAT/NIF/CIF number. This number gets a new phone number online. **Note:** For Belgium, Netherlands, Portugal, Spain, and Switzerland, this field is required.

      • zip

        string — The location's ZIP or postal code.

    • display_name (required)

      string — The location's display name.

    • identifier (required)

      string — The location's ID.

    • bssid

      string — The location's BSSID (Basic Service Set Identifier).

    • elin

      string — The location's ELIN (Emergency Location Identification Number). This value can be a BYOC number. If you use a BYOC number, you will need to manually update the BYOC address with your carrier.

    • minimum_match_criteria

      boolean — If true, it requires a user's location match on both public and private IP address, or BSSID, or network switch; detecting only a public IP address is not enough to detect the location.

    • network_switches

      array

      Items:

      • mac_address

        string — The location's assigned MAC address. Required if the `network_switches` value is set.

      • port

        string — The location's port label. You **cannot** pass this parameter with the `port_prefix` and `port_range` parameter.

      • port_prefix

        string — The location's port prefix. The prefix value **cannot** end with a digit. This parameter passes with the `port_range_from` and `port_range_to` parameters.

      • port_range_from

        string — The location's port starting range number. This can be a non-negative integer value. This value **must** be less than or equal to the `port_range_to` value.

      • port_range_to

        string — The location's port ending range number. This can be a non-negative integer value. This value **cannot** be less than the `port_range_from` value.

    • parent_identifier

      string — The location's parent location ID. Leave this value empty if the current location is a top location.

    • private_ip

      string — The location's subnet or private IP address. This field is required if `minimum_match_criteria` is true.

    • public_ip

      string — The location's public IP address. This field is required for top locations.

    • sip_group_name

      string — The location's assigned SIP routing group for outgoing calls. The system routes the call to the defined [SIP trunk](https://en.wikipedia.org/wiki/SIP_trunking) in the SIP groups when location-based routing is enabled. This only affects top locations and ignores all other locations.

  • site_id

    string — The site ID.

Example:

{
  "locations": [
    {
      "bssid": "SA43YjfBTS6gJbUpfvIziQ",
      "company_address": {
        "address_line1": "55 Almaden Boulevard",
        "address_line2": "6th floor",
        "city": "SAN JOSE",
        "country": "United States",
        "state_code": "CA",
        "vat_number": "123456789B01",
        "zip": "95113"
      },
      "display_name": "example location",
      "elin": "+12058945656",
      "identifier": "eRYjZlItQIqlFbCuRA__SQ",
      "network_switches": [
        {
          "mac_address": "0004f25eec3d",
          "port": "11",
          "port_prefix": "1",
          "port_range_from": "10",
          "port_range_to": "20"
        }
      ],
      "parent_identifier": "FksDtQDfR9qs3gWXNDsfIw",
      "private_ip": "192.1.1.2",
      "public_ip": "192.1.1.1",
      "sip_group_name": "band width",
      "minimum_match_criteria": true
    }
  ],
  "site_id": "SQv52YtkRLC2dwrDdYtGsA"
}

Responses

Status: 201 **HTTP Status Code:** `201` Created.
Content-Type: application/json
  • locations

    array

    Items:

    • display_name

      string — The location's display name.

    • location_id

      string — The location ID.

Example:

{
  "locations": [
    {
      "display_name": "example location",
      "location_id": "FwOAeL4TRmqQrmF0jOfzkQ"
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Validation Failed. Location does not exist: {0}. Too many concurrent requests. A request to add locations batch has already been made. Locations size must be less than 10. You can only access up to 5000 locations. Can not bind ELIN if location does not have an emergency address. A phone number can not be bound to multiple locations at the same time. Phone number format invalid. Phone number does not exist. There is an error with the parent location of the sub location. Network switches size must be less than 100. Switch MAC address is required. Duplicate Switch Info found. Mac Address format invalid. Number bssid per location limited to less than 100. BSSID format error. Emergency address Line 1 is required. Emergency address country is required. IP format error. Public IP is required. SIP group does not exist. Identifier can not be matched. You can only access up to {0} level. This location identifier already exists. You cannot have duplicate identifiers. The parent_identifier can not be the value of the identifier of the same location. This location display_name already exists. You cannot have duplicate location names. Identifier is required. Location name is required. Emergency address VAT is required in {0}. Emergency address state code is required in {0}. Emergency address zip is required in {0}. The field can not exceed {0} characters. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List emergency service locations

  • Method: GET
  • Path: /phone/locations
  • Tags: Emergency Service Locations

Returns emergency service locations. Note: When you enable multiple sites, the site_id parameter is required.

Prerequisites:

  • Pro or a higher account with Zoom Phone license
  • Account owner or admin permissions

Scopes: phone:read:admin

Granular Scopes: phone:read:list_emergency_locations:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` Emergency service locations listed successfully.
Content-Type: application/json
  • locations

    array — The information about emergency service locations.

    Items:

    • bssid

      string — The emergency service location's BSSID (Basic Service Set Identifier).

    • elin

      object — The emergency service location's ELIN (Emergency Location Identification Number).

      • phone_number

        string — The emergency service location's phone number.

      • phone_number_id

        string — The emergency service location's phone number ID.

    • emergency_address

      object — The specific emergency address for the location

      • address_line1

        string — The location's physical address.

      • address_line2

        string — The location's optional physical address information. For example, a suite number.

      • city

        string — The location's city.

      • country

        string — The location's country.

      • id

        string — The emergency address ID.

      • state_code

        string — The location's State/Province/Territory.

      • vat_number

        string — The location's VAT/NIF/CIF number. This number is used to get a new phone number online. **Note:** For Belgium, Netherlands, Portugal, Spain, and Switzerland, this field is required.

      • zip

        string — The location's ZIP or postal code.

    • id

      string — The emergency service location's ID.

    • identifier

      string — The emergency service location's unique ID.

    • minimum_match_criteria

      boolean — If true, it requires a user's location match on both public and private IP address, or BSSID, or network switch; detecting only a public IP address is not enough to detect the location.

    • name

      string — The emergency service location's name.

    • network_switches

      array — The network switch information.

      Items:

      • mac_address

        string — The MAC address.

      • port

        string — The port's label.

      • port_prefix

        string — The port's prefix.

      • port_range_from

        string — The port's range from value.

      • port_range_to

        string — The port's range to value.

    • parent_location_id

      string — The parent location's ID.

    • private_ip

      string — The emergency service location's subnet or private IP address.

    • public_ip

      string — The emergency service location's public IP address.

    • sip_group

      object — The emergency service location's SIP group information.

      • display_name

        string — The SIP group's display name.

      • id

        string — The SIP group's ID.

    • site

      object — The emergency service location's site information.

      • id

        string — The site ID.

      • name

        string — The site name.

  • next_page_token

    string — The next page token paginates through a large set of results. A next page token is returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • page_size

    integer — The number of records returned with a single API call.

  • total_records

    integer — The total number of records returned.

Example:

{
  "locations": [
    {
      "bssid": "SA43YjfBTS6gJbUpfvIziQ",
      "elin": {
        "phone_number": "+12058945656",
        "phone_number_id": "9h5vTQJ0TmyKs0wItZ3JAw"
      },
      "id": "eRYjZlItQIqlFbCuRA__SQ",
      "identifier": "FksDtQDfR9qs3gWXNDsfIw",
      "name": "example location",
      "network_switches": [
        {
          "mac_address": "0004f25eec3d",
          "port": "23",
          "port_prefix": "01",
          "port_range_from": "01",
          "port_range_to": "02"
        }
      ],
      "parent_location_id": "RTGmTYafRU24RqJunfotSA",
      "private_ip": "192.1.1.2",
      "public_ip": "192.1.1.1",
      "sip_group": {
        "display_name": "band width",
        "id": "F_WKDH6FRdeddZBcNUlUeA"
      },
      "site": {
        "id": "SQv52YtkRLC2dwrDdYtGsA",
        "name": "Main Site"
      },
      "emergency_address": {
        "id": "Qza2T_KATwCeUfTkzGsOmQ",
        "address_line1": "55 ALMADEN BLVD",
        "address_line2": "6th floor",
        "city": "SAN JOSE",
        "state_code": "CA",
        "country": "US",
        "zip": "95113",
        "vat_number": "123456789B01"
      },
      "minimum_match_criteria": true
    }
  ],
  "next_page_token": "T6WMY4fJBIAlxPUiqRtwvQS9dvsq8AoRam2",
  "page_size": 30,
  "total_records": 20
}
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Add an emergency service location

  • Method: POST
  • Path: /phone/locations
  • Tags: Emergency Service Locations

Adds an emergency service location.

Prerequisites:

  • Pro or a higher account with Zoom Phone license
  • Account owner or admin permissions

Scopes: phone:write:admin

Granular Scopes: phone:write:emergency_location:admin

Rate Limit Label: Light

Request Body

Content-Type: application/json
  • emergency_address_id (required)

    string — The emergency location address ID.

  • name (required)

    string — The emergency service location's name.

  • bssid

    string — A comma-separated list of the emergency service location's BSSIDs (Basic Service Set Identifiers).

  • elin_phone_number_id

    string — The ELIN (Emergency Location Identification Number). This value must be a phone number ID or phone number in [E.164](https://en.wikipedia.org/wiki/E.164) format.

  • minimum_match_criteria

    boolean — If true, it requires a user's location match on both public and private IP address, or BSSID, or network switch; detecting only a public IP address is not enough to detect the location.

  • parent_location_id

    string — The parent location's ID to assign to the emergency service location.

  • private_ip

    string — A comma-separated list of the emergency service location's subnet or private IP addresses. This field is required if `minimum_match_criteria` is true.

  • public_ip

    string — A comma-separated list of the emergency service location's public IP addresses. This parameter is required for top locations.

  • sip_group_id

    string — The SIP group ID to assign to the emergency service location. This value is not required for non-top locations.

  • site_id

    string — The site ID.

Example:

{
  "bssid": "SA43YjfBTS6gJbUpfvIziQ",
  "elin_phone_number_id": "9h5vTQJ0TmyKs0wItZ3JAw",
  "emergency_address_id": "Qza2T_KATwCeUfTkzGsOmQ",
  "name": "example location update",
  "parent_location_id": "FwOAeL4TRmqQrmF0jOfzkQ",
  "private_ip": "192.1.1.3",
  "public_ip": "192.1.1.4",
  "sip_group_id": "SA43YjfBTS6gJbUpfvIziQ",
  "site_id": "F_WKDH6FRdeddZBcNUlUeA",
  "minimum_match_criteria": true
}

Responses

Status: 201 **HTTP Status Code:** `201` Created.
Content-Type: application/json
  • id

    string — The phone's location ID.

  • name

    string — The phone's location name.

Example:

{
  "id": "eRYjZlItQIqlFbCuRA__SQ",
  "name": "example location"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Validation failed. A site ID is required. Parent location does not exist. An emergency address is required. An emergency address is required. A location name is required. A public IP is required. You can only access up to "{0}" level. You can only access up to 5000 locations. The maximum number of "{0}" is {1}. Cannot bind an ELIN if the location does not have an emergency address. IP format error. Duplicate Switch Info found.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get emergency service location details

  • Method: GET
  • Path: /phone/locations/{locationId}
  • Tags: Emergency Service Locations

Returns an emergency service location's information.

Prerequisites:

  • Pro or a higher account with Zoom Phone license
  • Account owner or admin permissions

Scopes: phone:read:admin

Granular Scopes: phone:read:emergency_location:admin

Rate Limit Label: Light

Responses

Status: 200 **HTTP Status Code:** `200` **OK** Emergency service location retrieved successfully.
Content-Type: application/json
  • bssid

    string — The emergency service location's BSSIDs (Basic Service Set Identifiers).

  • elin

    object — The ELIN (Emergency Location Identification Number).

    • phone_number

      string — The emergency location's phone number.

    • phone_number_id

      string — The emergency location's phone number ID.

  • emergency_address

    object — The emergency location's address information.

    • address_line1

      string — The emergency location address line 1.

    • address_line2

      string — The emergency location address line 2.

    • city

      string — The emergency location address's city.

    • country

      string — The emergency location address's country.

    • id

      string — The emergency location address ID.

    • state_code

      string — The emergency location address's state code.

    • zip

      string — The emergency address's zip code.

  • id

    string — The emergency location's ID.

  • minimum_match_criteria

    boolean — If true, it requires a user's location match on both public and private IP address, or BSSID, or network switch; detecting only a public IP address is not enough to detect the location.

  • name

    string — The emergency location's name.

  • network_switches

    array

    Items:

    • mac_address

      string — The emergency location's assigned MAC address.

    • port

      string — The port label.

    • port_prefix

      string — The port prefix.

    • port_range_from

      string — The port starting range number.

    • port_range_to

      string — The port ending range number.

  • parent_location_id

    string — The emergency location's parent location ID.

  • private_ip

    string — The emergency location's subnet or private IP address.

  • public_ip

    string — The emergency location's public IP address.

  • sip_group

    object — The emergency location's SIP group information.

    • display_name

      string — The SIP group's display name.

    • id

      string — The SIP group ID.

  • site

    object — The emergency location's site information.

    • id

      string — The site ID.

    • name

      string — The site name.

Example:

{
  "bssid": "SA43YjfBTS6gJbUpfvIziQ",
  "elin": {
    "phone_number": "+12058945656",
    "phone_number_id": "9h5vTQJ0TmyKs0wItZ3JAw"
  },
  "emergency_address": {
    "address_line1": "55 ALMADEN BLVD",
    "address_line2": "6th floor",
    "city": "SAN JOSE",
    "country": "US",
    "id": "Qza2T_KATwCeUfTkzGsOmQ",
    "state_code": "CA",
    "zip": "95113"
  },
  "id": "eRYjZlItQIqlFbCuRA__SQ",
  "name": "example location",
  "network_switches": [
    {
      "mac_address": "64167f379097",
      "port": "20",
      "port_prefix": "2",
      "port_range_from": "01",
      "port_range_to": "05"
    }
  ],
  "parent_location_id": "FksDtQDfR9qs3gWXNDsfIw",
  "private_ip": "192.1.1.2",
  "public_ip": "192.1.1.1",
  "sip_group": {
    "display_name": "band width",
    "id": "F_WKDH6FRdeddZBcNUlUeA"
  },
  "site": {
    "id": "SQv52YtkRLC2dwrDdYtGsA",
    "name": "Main site"
  },
  "minimum_match_criteria": true
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Location does not exist: {0}.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Delete an emergency location

  • Method: DELETE
  • Path: /phone/locations/{locationId}
  • Tags: Emergency Service Locations

Removes an emergency location.

Prerequisites:

  • Pro or a higher account with Zoom Phone license
  • Account owner or admin permissions

Scopes: phone:write:admin

Granular Scopes: phone:delete:emergency_location:admin

Rate Limit Label: Light

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Location deleted successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update emergency service location

  • Method: PATCH
  • Path: /phone/locations/{locationId}
  • Tags: Emergency Service Locations

Updates an emergency location's information.

Prerequisites:

  • Pro or a higher account with Zoom Phone license
  • Account owner or admin permissions

Scopes: phone:write:admin

Granular Scopes: phone:update:emergency_location:admin

Rate Limit Label: Light

Request Body

Content-Type: application/json
  • bssid

    string — A comma-separated list of the emergency service location's BSSIDs (Basic Service Set Identifiers).

  • elin_phone_number_id

    string — The ELIN (Emergency Location Identification Number). This value must be a phone number ID or phone number in [E.164](https://en.wikipedia.org/wiki/E.164) format.

  • emergency_address_id

    string — The emergency location's address ID.

  • minimum_match_criteria

    boolean — If true, it requires a user's location match on both public and private IP address, or BSSID, or network switch; detecting only a public IP address is not enough to detect the location.

  • name

    string — The emergency location's name.

  • network_switches

    array

    Items:

    • mac_address

      string — The emergency location's assigned MAC address.

    • port

      string — The emergency location's port label. You **cannot** pass this parameter with the `port_prefix` and `port_range` parameter.

    • port_prefix

      string — The emergency location's port prefix. The prefix value **cannot** end with a digit. This parameter passes with the `port_range_from` and `port_range_to` parameters.

    • port_range_from

      string — The emergency location's port starting range number. This can be a non-negative integer value. This value **must** be less than or equal to the `port_range_to` value.

    • port_range_to

      string — The emergency location's port ending range number. This can be a non-negative integer value. This value **cannot** be less than the `port_range_from` value.

  • private_ip

    string — A comma-separated list of the emergency service location's subnet or private IP addresses. This field is required if `minimum_match_criteria` is true.

  • public_ip

    string — A comma-separated list of the emergency service location's public IP addresses. This parameter is **required** for top locations.

  • sip_group_id

    string — The SIP group ID to assign to the emergency service location. This value is not required for non-top locations.

Example:

{
  "bssid": "SA43YjfBTS6gJbUpfvIziQ",
  "elin_phone_number_id": "+12058945656",
  "emergency_address_id": "Qza2T_KATwCeUfTkzGsOmQ",
  "name": "example location",
  "network_switches": [
    {
      "mac_address": "0004f25eec3d",
      "port": "22",
      "port_prefix": "01",
      "port_range_from": "02",
      "port_range_to": "05"
    }
  ],
  "private_ip": "192.1.1.2",
  "public_ip": "192.1.1.1",
  "sip_group_id": "SA43YjfBTS6gJbUpfvIziQ",
  "minimum_match_criteria": true
}

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Location updated successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List external contacts

  • Method: GET
  • Path: /phone/external_contacts
  • Tags: External Contacts

Lists the external contacts.

Prerequisites

  • Pro or a higher account with Zoom Phone license
  • Account owner or admin permissions

Scopes: phone:read:admin

Granular Scopes: phone:read:list_external_contacts:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` External contacts listed successfully.
Content-Type: application/json
  • external_contacts

    array — External contacts information.

    Items:

    • auto_call_recorded

      boolean — Whether to allow the automatic call recording.

    • description

      string — The external contact's description.

    • email

      string — The external contact's email address.

    • enable_internal_extension

      boolean — Whether to treat this contact as an internal extension

    • extension_number

      string — The external contact's extension number.

    • external_contact_id

      string — Zoom-generated external contact ID.

    • id

      string — Customer-configured external contact ID.

    • name

      string — The external contact's username or extension display name.

    • phone_numbers

      array — The external contact's phone numbers.

      Items:

      string

    • profile_picture_download_url

      string — The profile picture's download URL.

  • next_page_token

    string — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • page_size

    integer — The number of records returned with a single API call.

Example:

{
  "external_contacts": [
    {
      "description": "External contact Johnson",
      "email": "example@example.com",
      "extension_number": "101014",
      "external_contact_id": "OJGi5xOFQPmrJbKg68-iWg",
      "id": "external_contact_01",
      "name": "Johnson",
      "phone_numbers": [
        "+12058945656"
      ],
      "auto_call_recorded": true,
      "profile_picture_download_url": "https://file.zoom.us/public/file/NgY6XhB0Q1KUOIpbnjQrTA/MS41Lm3jVUCBCmBzQxZEXUvHcJ_YRtZ-CVuQ68tE7kKC60t_/twP0LQrnQfS7bQ6utANohw.png",
      "enable_internal_extension": true
    }
  ],
  "next_page_token": "BJLYC6PABbAHdjwSkGVQeeR6B1juwHqj3G2",
  "page_size": 30
}
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Add an external contact

  • Method: POST
  • Path: /phone/external_contacts
  • Tags: External Contacts

Adds an external contact.

Prerequisites

  • Pro or a higher account with Zoom Phone license
  • Account owner or admin permissions

Scopes: phone:write:admin

Granular Scopes: phone:write:external_contact:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • name (required)

    string — The external contact's username or extension display name.

  • auto_call_recorded

    boolean — Whether to allow the automatic call recording.

  • description

    string — The external contact's description.

  • email

    string — The external contact's email address.

  • enable_internal_extension

    boolean — This field is set to true when the contact should be treated as an internal extension for users outside their permitted calling locations or during restricted calling hours. Leave blank or set to false if the contact is not intended to be treated as an internal extension.

  • extension_number

    string — The external contact's extension number in the original phone system. Make certain that this extension number is **not** duplicated with an existing extension number in the account.

  • id

    string — The customer-configured external contact ID. It is recommended that you use a primary key from the original phone system. If you do **not** use this parameter, the API automatically generates an `externalContactId`.

  • phone_numbers

    array — A comma-separated list of the external contact's phone numbers. This value **must** be in [E.164](https://en.wikipedia.org/wiki/E.164) format. If you do not provide an extension number, you **must** provide this value.

    Items:

    string

  • profile_picture

    object — This field is optional. If provided, the image will be used as the profile picture. Supported file formats : JPG, PNG, JPEG, GIF, the size limit is 2MB. If you need to use this field, contact Zoom Support.

    • base64_encoding

      string — The ASCII string to send [Base64](https://en.wikipedia.org/wiki/Base64) encoded picture as text. The size limit is 2MB.

    • type

      string, possible values: "JPG", "JPEG", "PNG", "GIF" — The format of attachments. Supported formats: JPG, PNG, JPEG, GIF.

  • routing_path

    string — The external contact's SIP group, to define the call routing path. This is for customers that use SIP trunking.

Example:

{
  "description": "External contact Johnson",
  "email": "example@example.com",
  "extension_number": "101014",
  "id": "external_contact_01",
  "name": "Johnson",
  "phone_numbers": [
    "+12058945656"
  ],
  "routing_path": "PSTN",
  "auto_call_recorded": true,
  "profile_picture": {
    "type": "PNG",
    "base64_encoding": "iVBORw0KGgo..."
  },
  "enable_internal_extension": true
}

Responses

Status: 201 **HTTP Status Code:** `201` **Created** External contact added successfully.
Content-Type: application/json
  • external_contact_id

    string — The Zoom-generated external contact ID.

  • name

    string — The external contact's username or extension display name.

Example:

{
  "name": "Johnson",
  "external_contact_id": "nqerMCD0Tu6RPGoCpVbPtA"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Validation failed. - If you need to use profile_picture field, please contact Zoom Support. - Profile picture size must less than 2 MB. - Profile picture file type error. - Profile picture file data error. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get external contact details

  • Method: GET
  • Path: /phone/external_contacts/{externalContactId}
  • Tags: External Contacts

Returns an external contact's information.

Prerequisites

  • Pro or a higher account with Zoom Phone license
  • Account owner or admin permissions

Scopes: phone:read:admin

Granular Scopes: phone:read:external_contact:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` **OK** External contact information retrieved successfully.
Content-Type: application/json
  • auto_call_recorded

    boolean — Whether to allow the automatic call recording.

  • description

    string — The external contact's description.

  • email

    string — The external contact's email address.

  • enable_internal_extension

    boolean — Whether to treat this contact as an internal extension

  • extension_number

    string — The external contact's extension number.

  • external_contact_id

    string — The Zoom-generated external contact ID.

  • id

    string — The customer-configured external contact ID.

  • name

    string — The external contact's username or extension display name.

  • phone_numbers

    array — The external contact's phone numbers.

    Items:

    string

  • profile_picture_download_url

    string — profile picture download url

Example:

{
  "description": "External contact Johnson",
  "email": "example@example.com",
  "extension_number": "101014",
  "external_contact_id": "OJGi5xOFQPmrJbKg68-iWg",
  "id": "external_contact_01",
  "name": "Johnson",
  "phone_numbers": [
    "+12058945657"
  ],
  "auto_call_recorded": true,
  "profile_picture_download_url": "https://file.zoom.us/public/file/NgY6XhB0Q1KUOIpbnjQrTA/MS41Lm3jVUCBCmBzQxZEXUvHcJ_YRtZ-CVuQ68tE7kKC60t_/twP0LQrnQfS7bQ6utANohw.png",
  "enable_internal_extension": true
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> External contact does not exist: {externalContactId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Delete an external contact

  • Method: DELETE
  • Path: /phone/external_contacts/{externalContactId}
  • Tags: External Contacts

Removes an external contact.

Prerequisites:

  • Pro or a higher account with Zoom Phone license
  • Account owner or admin permissions

Scopes: phone:write:admin

Granular Scopes: phone:delete:external_contact:admin

Rate Limit Label: Light

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** External contact deleted successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update external contact

  • Method: PATCH
  • Path: /phone/external_contacts/{externalContactId}
  • Tags: External Contacts

Updates an external contact's information.

Prerequisites

  • Pro or a higher account with Zoom Phone license
  • Account owner or admin permissions

Scopes: phone:write:admin

Granular Scopes: phone:update:external_contact:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • auto_call_recorded

    boolean — Whether to allow the automatic call recording.

  • description

    string — The external contact's description.

  • email

    string — The external contact's email address.

  • enable_internal_extension

    boolean — This field is set to true when the contact should be treated as an internal extension for users outside their permitted calling locations or during restricted calling hours. Leave blank to retain the existing status of external contact or set to false if the contact is not intended to be treated as an internal extension.

  • extension_number

    string — The external contact's extension number in the original phone system. Make certain that this extension number is **not** duplicated with an existing extension number in the account.

  • id

    string — The customer-configured external contact ID. We recommend that you use a primary key from the original phone system. If you do **not** use this parameter, the API automatically generates an `externalContactId`.

  • name

    string — The external contact's username or extension display name.

  • phone_numbers

    array — A comma-separated list of the external contact's phone numbers. This value **must** be in [E.164](https://en.wikipedia.org/wiki/E.164) format. If you do not provide an extension number, you **must** provide this value.

    Items:

    string

  • profile_picture

    object — The `profile_picture` field is optional. If you need to use this field, please contact Zoom Support. If provided, it determines how the user's profile picture should be handled: - Omit profile_picture field: The profile picture will remain unchanged. - Set type or base64_encoding to empty strings (""): The profile picture will be reset to the system default. - Provide a valid image (such as type is "png" and a valid Base64 string in base64_encoding): The profile picture will be updated accordingly. The following file formats are supported : JPG, PNG, JPEG, GIF, the size limit is 2MB. Example (reset to default): ```json { ... "profile_picture": { "type": "", "base64_encoding": "" } ... } ``` Example (update with a new picture): ```json { "profile_picture": { "type": "png", "base64_encoding": "iVBORw0KGgoAAAANSUhEUgAABVY..." } } ```

    • base64_encoding

      string — The ASCII string to send [Base64](https://en.wikipedia.org/wiki/Base64) encoded picture as text. The size limit is 2MB.

    • type

      string, possible values: "JPG", "JPEG", "PNG", "GIF" — The format of attachments. Supported formats: JPG, PNG, JPEG, GIF.

  • routing_path

    string — The external contact's SIP group, to define the call routing path. This is for customers that use SIP trunking.

Example:

{
  "description": "External contact Johnson",
  "email": "example@example.com",
  "extension_number": "101014",
  "id": "external_contact_01",
  "name": "Johnson",
  "phone_numbers": [
    "+12058945657"
  ],
  "routing_path": "PSTN",
  "auto_call_recorded": true,
  "profile_picture": {
    "type": "PNG",
    "base64_encoding": "iVBORw0KGgo..."
  },
  "enable_internal_extension": true
}

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** External contact updated successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Validation failed. - External contact does not exist: {0}. - If you need to use profile_picture field, please contact Zoom Support. - Profile picture size must less than 2 MB. - Profile picture file type error. - Profile picture file data error. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Upload fax file

  • Method: POST
  • Path: /fax/files
  • Tags: Fax

Uploads fax file

Note:

  • Please use https://fileapi.zoom.us instead of https://api.zoom.us, the full path is https://fileapi.zoom.us/v2/fax/files
  • Supported file formats: .zip
  • The maximum size of file is 50MB

Scopes: phone:write,phone:write:admin

Granular Scopes: phone:write:send_fax,phone:write:send_fax:admin

Rate Limit Label: RESOURCE-INTENSIVE

Request Body

Content-Type: multipart/form-data
  • file (required)

    object — The fax file which need upload. The ZIP file may contain files of the following types: * `pdf` * `jpg` * `jpeg` * `txt` * `png` * `doc` * `docx` The ZIP file should contain files named using the format {order}.{type}. The order defines the page sequence for the fax. For example: * `1.pdf` (first page) * `2.txt` (second page) * `3.png` (third page) For multi-page documents, additional files will be placed immediately after the preceding file in the sequence.

Example:

"Content-Disposition: form-data; name=\"\"; filename=\"Test.zip\" Content-Type: application/zip"

Responses

Status: 201 File successfully uploaded.
Content-Type: application/json
  • file_id (required)

    string — Fax ZIP file ID

Example:

{
  "file_id": "PM6G6YqvTu-7Yg3xJpFpgA"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `1001` <br> File size exceeded maximum 50MB <br> **Error Code:** `1002` <br> Invalid expire, should between 1 and 604800 seconds <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).

Get extension's fax logs

  • Method: GET
  • Path: /phone/extension/{extensionId}/fax/logs
  • Tags: Fax

Returns the extension's fax logs.

Prerequisites

  • User must belong to a Business or Enterprise account.
  • User must have a Zoom Phone license.

Scopes: phone:read,phone:read:admin

Granular Scopes: phone:read:list_fax_log,phone:read:list_fax_log:admin

Rate Limit Label: MEDIUM

Responses

Status: 200 Successful response with fax log records
Content-Type: application/json
  • fax_logs (required)

    array — The list of fax logs.

    Items:

    • create_time

      string, format: date-time — The fax log created time in UTC time zone.

    • direction

      string, possible values: "outbound", "inbound" — The fax log's direction.

    • extension_id

      string — The owner's extension ID.

    • extension_type

      string, possible values: "user", "callQueue", "autoReceptionist", "commonArea", "sharedLineGroup" — The extension type of fax log owner.

    • fax_id

      string — The Zoom phone fax's unique ID.

    • fax_log_id

      string — The Zoom phone fax log's unique ID.

    • file_id

      string — The fax PDF file ID.

    • file_pages_count

      integer — The fax file pages count.

    • read_status

      string, possible values: "read", "unread" — The fax log's read status.

    • receiver_extension_id

      string — The receiver's extension ID.

    • receiver_extension_number

      string — The receiver's extension number.

    • receiver_extension_type

      string, possible values: "user", "callQueue", "autoReceptionist", "commonArea", "sharedLineGroup" — The receiver's extension type.

    • receiver_location

      string — The receiver's location.

    • receiver_name

      string — The receiver's name.

    • receiver_number

      string — The receiver's fax number.

    • receiver_type

      string, possible values: "client", "ata", "pstn" — The receiver's type.

    • receiver_user_agent

      string — The receiver's user agent.

    • sender_extension_id

      string — The sender's extension ID.

    • sender_extension_number

      string — The sender's extension number.

    • sender_extension_type

      string, possible values: "user", "callQueue", "autoReceptionist", "commonArea", "sharedLineGroup" — The sender's extension type.

    • sender_location

      string — The sender's location.

    • sender_name

      string — The sender's name.

    • sender_number

      string — The sender's fax number.

    • sender_type

      string, possible values: "client", "ata", "pstn", "email", "openapi" — The sender's type.

    • sender_user_agent

      string — The sender's user agent.

    • site_id

      string — The site's unique ID.

    • site_name

      string — The site's name.

    • status

      string, possible values: "failed", "processing", "submitted", "sent", "received" — The fax status.

  • total_records (required)

    integer — The total number of matching fax logs.

  • next_page_token

    string — The token to retrieve the next page of results.

Example:

{
  "next_page_token": "w3cCmMNsRc-pMFhksHrRdQ",
  "total_records": 300,
  "fax_logs": [
    {
      "fax_log_id": "w2cCmMNsRc-pMFhksHrRdQ",
      "fax_id": "6A2BE84EE494479B9AFA29F4BB8A8EA6",
      "site_id": "rtZRykrtTmKSWXJeW-xsBg",
      "site_name": "Main Site",
      "direction": "outbound",
      "extension_id": "VLhIp1jHR_Sgu96DLJpjag",
      "extension_type": "callQueue",
      "sender_extension_id": "VLhIp1jHR_Sgu96DLJpjag",
      "sender_extension_type": "user",
      "sender_extension_number": "123",
      "sender_name": "Tester 1",
      "sender_number": "+12092080933",
      "sender_type": "client",
      "sender_location": "California",
      "sender_user_agent": "Poly/PolyATA400-4.0.2.6778",
      "receiver_extension_id": "iKBkkqgGQV-bEttrhP5T0g",
      "receiver_extension_type": "user",
      "receiver_extension_number": "123",
      "receiver_name": "Tester 2",
      "receiver_number": "+12092080933",
      "receiver_type": "ata",
      "receiver_location": "Alabama",
      "receiver_user_agent": "Poly/PolyATA400-4.0.2.6778",
      "file_id": "bayEy0y9RsadUbuEGrZBYA",
      "file_pages_count": 6,
      "status": "sent",
      "read_status": "read",
      "create_time": "2021-10-08T16:12:04Z"
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 404 **HTTP Status Code:** `404` <br> Not Found
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).

Send fax

  • Method: POST
  • Path: /phone/fax/documents
  • Tags: Fax

Sends a fax to receivers.

Prerequisites

  • User must belong to a Business or Enterprise account.
  • User must have a Zoom Phone license.

Note: Faxes sent through the API will first use the account-level page pool, if available.

If no page pool is available, pages meter individually. Unlimited faxing does not apply to faxes sent through the API.

Scopes: phone:write,phone:write:admin

Granular Scopes: phone:write:send_fax,phone:write:send_fax:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • file_id (required)

    string — The fax ZIP file ID. Users can upload a ZIP file with fax files through the Upload Fax File endpoint. The ZIP file may contain files of the following types: * `pdf` * `jpg` * `jpeg` * `txt` * `png` * `doc` * `docx` The ZIP file should contain files named using the format {order}.{type}. The order defines the page sequence for the fax. For example: * `1.pdf` (first page) * `2.txt` (second page) * `3.png` (third page) For multi-page documents, additional files will be placed immediately after the preceding file in the sequence.

  • receivers (required)

    array — A list of fax receivers. A maximum of 50 receivers is allowed.

    Items:

    • receiver_number (required)

      string — The fax receiver's number.

    • receiver_name

      string — The fax receiver's name.

  • sender_number (required)

    string — The fax sender's number.

  • sender_name

    string — The fax sender's name.

Example:

{
  "sender_number": "+12093190827",
  "sender_name": "Kitty",
  "file_id": "9PrstHgaRYW4ywAtCWRXwQ",
  "receivers": [
    {
      "receiver_number": "+12093190827",
      "receiver_name": "Mickey"
    }
  ]
}

Responses

Status: 201 A list of fax delivery results for each recipient.
Content-Type: application/json
  • fax_id

    string — The Zoom Phone fax ID.

  • receivers

    array

    Items:

    • receiver_number (required)

      string — The fax receiver's number.

    • status (required)

      string, possible values: "success", "unknown", "invalid_parameter", "sender_fax_disabled", "invalid_sender_number", "invalid_receiver_number", "receiver_fax_disabled" — The status of the current receiver's number: * `success` - Fax sent successfully * `unknown` - Unknown error occurred * `invalid_parameter` - Invalid parameter provided * `sender_fax_disabled` - Sender's fax feature is disabled * `invalid_sender_number` - Invalid sender number * `invalid_receiver_number` - Invalid receiver number * `receiver_fax_disabled` - Receiver's fax feature is disabled

    • fax_log_id

      string — The Zoom Phone fax log ID.

Example:

{
  "fax_id": "6A2BE84EE494479B9AFA29F4BB8A8EA6",
  "receivers": [
    {
      "receiver_number": "+12093190827",
      "fax_log_id": "Jvj4EboFSLOReVbR24xNkA",
      "status": "success"
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).

Get account's fax logs

  • Method: GET
  • Path: /phone/fax/logs
  • Tags: Fax

Returns the account's fax logs.

Prerequisites

  • User must belong to a Business or Enterprise account.
  • User must have a Zoom Phone license.

Scopes: phone:read:admin

Granular Scopes: phone:read:list_fax_log:admin

Rate Limit Label: HEAVY

Responses

Status: 200 Successful response with fax log records
Content-Type: application/json
  • fax_logs (required)

    array — The list of fax logs.

    Items:

    • create_time

      string, format: date-time — The fax log created time in UTC time zone.

    • direction

      string, possible values: "outbound", "inbound" — The fax log's direction.

    • extension_id

      string — The owner's extension ID.

    • extension_type

      string, possible values: "user", "callQueue", "autoReceptionist", "commonArea", "sharedLineGroup" — The extension type of fax log owner.

    • fax_id

      string — The Zoom phone fax's unique ID.

    • fax_log_id

      string — The Zoom phone fax log's unique ID.

    • file_id

      string — The fax PDF file ID.

    • file_pages_count

      integer — The fax file pages count.

    • read_status

      string, possible values: "read", "unread" — The fax log's read status.

    • receiver_extension_id

      string — The receiver's extension ID.

    • receiver_extension_number

      string — The receiver's extension number.

    • receiver_extension_type

      string, possible values: "user", "call_queue", "auto_receptionist", "common_area", "shared_line_group" — The receiver's extension type.

    • receiver_location

      string — The receiver's location.

    • receiver_name

      string — The receiver's name.

    • receiver_number

      string — The receiver's fax number.

    • receiver_type

      string, possible values: "client", "ata", "pstn" — The receiver's type.

    • receiver_user_agent

      string — The receiver's user agent.

    • sender_extension_id

      string — The sender's extension ID.

    • sender_extension_number

      string — The sender's extension number.

    • sender_extension_type

      string, possible values: "user", "callQueue", "autoReceptionist", "commonArea", "sharedLineGroup" — The sender's extension type.

    • sender_location

      string — The sender's location.

    • sender_name

      string — The sender's name.

    • sender_number

      string — The sender's fax number.

    • sender_type

      string, possible values: "client", "ata", "pstn", "email", "openapi" — The sender's type.

    • sender_user_agent

      string — The sender's user agent.

    • site_id

      string — The site's unique ID.

    • site_name

      string — The site's name.

    • status

      string, possible values: "failed", "processing", "submitted", "sent", "received" — The fax status.

  • total_records (required)

    integer — The total number of matching fax logs.

  • next_page_token

    string — The token to retrieve the next page of results.

Example:

{
  "next_page_token": "w3cCmMNsRc-pMFhksHrRdQ",
  "total_records": 300,
  "fax_logs": [
    {
      "fax_log_id": "w2cCmMNsRc-pMFhksHrRdQ",
      "fax_id": "6A2BE84EE494479B9AFA29F4BB8A8EA6",
      "site_id": "rtZRykrtTmKSWXJeW-xsBg",
      "site_name": "Main Site",
      "direction": "outbound",
      "extension_id": "VLhIp1jHR_Sgu96DLJpjag",
      "extension_type": "callQueue",
      "sender_extension_id": "VLhIp1jHR_Sgu96DLJpjag",
      "sender_extension_type": "user",
      "sender_extension_number": "123",
      "sender_name": "Tester 1",
      "sender_number": "+12092080933",
      "sender_type": "client",
      "sender_location": "California",
      "sender_user_agent": "Poly/PolyATA400-4.0.2.6778",
      "receiver_extension_id": "iKBkkqgGQV-bEttrhP5T0g",
      "receiver_extension_type": "user",
      "receiver_extension_number": "123",
      "receiver_name": "Tester 2",
      "receiver_number": "+12092080933",
      "receiver_type": "ata",
      "receiver_location": "Alabama",
      "receiver_user_agent": "Poly/PolyATA400-4.0.2.6778",
      "file_id": "bayEy0y9RsadUbuEGrZBYA",
      "file_pages_count": 6,
      "status": "sent",
      "read_status": "read",
      "create_time": "2021-10-08T16:12:04Z"
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 404 **HTTP Status Code:** `404` <br> Not Found
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get fax log details

  • Method: GET
  • Path: /phone/fax/logs/{faxLogId}
  • Tags: Fax

Returns the fax log's details.

Prerequisites

  • User must belong to a Business or Enterprise account.
  • User must have a Zoom Phone license.

Scopes: phone:read:admin

Granular Scopes: phone:read:list_fax_log:admin

Rate Limit Label: LIGHT

Responses

Status: 200 The successful response.
Content-Type: application/json

Array of:

  • create_time

    string, format: date-time — The fax log created time in UTC time zone.

  • direction

    string, possible values: "outbound", "inbound" — The fax log's direction.

  • extension_id

    string — The owner's extension ID.

  • extension_type

    string, possible values: "user", "callQueue", "autoReceptionist", "commonArea", "sharedLineGroup" — The extension type of fax log owner.

  • fax_id

    string — The Zoom phone fax's unique ID.

  • fax_log_id

    string — The Zoom phone fax log's unique ID.

  • file_id

    string — The fax PDF file ID.

  • file_pages_count

    integer — The fax file's page count.

  • node

    integer — Inside one fax workflow, this field is a sequential number to indicate the orders of the events which start from 0.

  • read_status

    string, possible values: "read", "unread" — The fax log's read status.

  • receiver_extension_id

    string — The receiver's extension ID.

  • receiver_extension_number

    string — The receiver's extension number.

  • receiver_extension_type

    string, possible values: "user", "callQueue", "autoReceptionist", "commonArea", "sharedLineGroup" — The receiver's extension type.

  • receiver_location

    string — The receiver's location.

  • receiver_name

    string — The receiver's name.

  • receiver_number

    string — The receiver's fax number.

  • receiver_type

    string, possible values: "client", "ata", "pstn" — The receiver's type.

  • receiver_user_agent

    string — The receiver's user agent.

  • retry_times

    integer — This field retries the times for sending or receiving.

  • sender_extension_id

    string — The sender's extension ID.

  • sender_extension_number

    string — The sender's extension number.

  • sender_extension_type

    string, possible values: "user", "callQueue", "autoReceptionist", "commonArea", "sharedLineGroup" — The sender's extension type.

  • sender_location

    string — The sender's location.

  • sender_name

    string — The sender's name.

  • sender_number

    string — The sender's fax number.

  • sender_type

    string, possible values: "client", "ata", "pstn", "email", "openapi" — The sender's type.

  • sender_user_agent

    string — The sender's user agent.

  • site_id

    string — The site's unique ID.

  • site_name

    string — Site's name.

  • status

    string, possible values: "failed", "processing", "submitted", "sent", "received" — The fax status.

  • status_reason

    string, possible values: "success", "no_answer", "number_busy", "invalid_phone_number", "failure_transmission", "internal_system_error", "fax_machine_not_detected" — The reason of fax log's status.

Example:

[
  {
    "fax_log_id": "w2cCmMNsRc-pMFhksHrRdQ",
    "fax_id": "6A2BE84EE494479B9AFA29F4BB8A8EA6",
    "site_id": "rtZRykrtTmKSWXJeW-xsBg",
    "site_name": "Main Site",
    "direction": "outbound",
    "extension_id": "VLhIp1jHR_Sgu96DLJpjag",
    "extension_type": "callQueue",
    "sender_extension_id": "VLhIp1jHR_Sgu96DLJpjag",
    "sender_extension_type": "user",
    "sender_extension_number": "123",
    "sender_name": "Tester 1",
    "sender_number": "+12092080933",
    "sender_type": "client",
    "sender_location": "California",
    "sender_user_agent": "Poly/PolyATA400-4.0.2.6778",
    "receiver_extension_id": "iKBkkqgGQV-bEttrhP5T0g",
    "receiver_extension_type": "user",
    "receiver_extension_number": "123",
    "receiver_name": "Tester 2",
    "receiver_number": "+12092080933",
    "receiver_type": "ata",
    "receiver_location": "Alabama",
    "receiver_user_agent": "Poly/PolyATA400-4.0.2.6778",
    "file_id": "bayEy0y9RsadUbuEGrZBYA",
    "file_pages_count": 6,
    "status": "sent",
    "read_status": "read",
    "status_reason": "no_answer",
    "retry_times": 0,
    "node": 0,
    "create_time": "2021-10-08T16:12:04Z"
  }
]
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `40401` <br> Fax log not found <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).

Delete fax log

  • Method: DELETE
  • Path: /phone/fax/logs/{faxLogId}
  • Tags: Fax

Deletes a specific fax log.

Prerequisites

  • User must belong to a Business or Enterprise account.
  • User must have a Zoom Phone license.

Scopes: phone:write,phone:write:admin

Granular Scopes: phone:delete:fax_log,phone:delete:fax_log:admin

Rate Limit Label: LIGHT

Responses

Status: 204 The fax log was successfully deleted.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request Please Input Message
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `400001` <br> Fax log not found for faxLogId. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).

Update fax log read status

  • Method: PATCH
  • Path: /phone/fax/logs/{faxLogId}
  • Tags: Fax

Updates the read status of a specific fax log.

Prerequisites

  • User must belong to a Business or Enterprise account.
  • User must have a Zoom Phone license.

Scopes: phone:read,phone:read:admin

Granular Scopes: phone:read:fax_log:admin,phone:read:fax_log

Rate Limit Label: LIGHT

Responses

Status: 204 Fax log read status successfully updated.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request Please Input Message **Error Code:** `400001` <br> Fax log not found for faxLogId. <br> **Error Code:** `400201` <br> The read status is invalid. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).

Download fax file

  • Method: GET
  • Path: /phone/fax/logs/{faxLogId}/file/{fileId}
  • Tags: Fax

Downloads the fax file.

*Prerequisites

  • User must belong to a Business or Enterprise account.
  • User must have a Zoom Phone license.

Scopes: phone:read,phone:read:admin

Granular Scopes: phone:read:fax_log,phone:read:fax_log:admin

Rate Limit Label: RESOURCE-INTENSIVE

Responses

Status: 200 **HTTP Status Code:** `200` **OK**
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `40401` <br> Fax log not found for faxLogId: {faxLogId} <br> **Error Code:** `40402` <br> Fax file not found for fileId: {fileId} <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).

List firmware update rules

  • Method: GET
  • Path: /phone/firmware_update_rules
  • Tags: Firmware Update Rules

Use this API to get firmware update rules.

Prerequisites:

  • Business or Education account
  • Zoom Phone license

Scopes: phone:read:admin

Granular Scopes: phone:read:list_firmware_update_rules:admin

Rate Limit Label: Light

Responses

Status: 200 **HTTP Status Code:** `200` **OK** Successfully listed the firmware update rules.
Content-Type: application/json
  • next_page_token

    string — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of the available result list exceeds the page size.

  • page_size

    integer — The size of the page.

  • rules

    array — Firmware update rules list.

    Items:

    • device_model

      string — Device model name.

    • device_type

      string — Device type.

    • rule_id

      string — Unique identifier of the firmware update rule.

    • version

      string — Firmware version.

Example:

{
  "next_page_token": "10mHdrdYyMxKi8LQhL7GPI6BWj65IcrbjJ2",
  "page_size": 30,
  "rules": [
    {
      "rule_id": "3h_bQL5MR_-sCmlJcTclVg",
      "version": "3.4.5.18",
      "device_type": "AudioCodes",
      "device_model": "445hd"
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Add a firmware update rule

  • Method: POST
  • Path: /phone/firmware_update_rules
  • Tags: Firmware Update Rules

Use this API to add a firmware update rule.

Prerequisites:

  • Business, or Education account
  • Zoom Phone license

Scopes: phone:write:admin

Granular Scopes: phone:write:firmware_update_rule:admin

Rate Limit Label: Light

Request Body

Content-Type: application/json

Example:

{
  "site_id": "8f71O6rWT8KFUGQmJIFAdQ",
  "version": "3.4.5.18",
  "device_type": "AudioCodes",
  "device_model": "445hd",
  "restart_type": 1
}

Responses

Status: 201 **HTTP Status Code:** `201` **Created** Successfully added a firmware update rule.
Content-Type: application/json
  • rule_Id

    string — Unique identifier of the firmware update rule.

Example:

{
  "rule_Id": "MRNStlOVS02fJ6pOAzrh0A"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `404` <br> The firmware version does not exist, firmware version:{0}.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get firmware update rule information

  • Method: GET
  • Path: /phone/firmware_update_rules/{ruleId}
  • Tags: Firmware Update Rules

Use this API to get the firmware update rule information.

Prerequisites:

  • Business or Education account
  • Zoom Phone license

Scopes: phone:read:admin

Granular Scopes: phone:read:firmware_update_rule:admin

Rate Limit Label: Light

Responses

Status: 200 **HTTP Status Code:** `200` **OK** Successfully get the firmware update rule.
Content-Type: application/json
  • device_model

    string — Device model name.

  • device_type

    string — Device type.

  • update_log

    string — The update log.

  • version

    string — Firmware version.

Example:

{
  "device_type": "AudioCodes",
  "device_model": "445hd",
  "version": "3.4.5.18",
  "update_log": "1. Supports call forwarding for Zoom Phone"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `404` <br> Firmware rule (ID: {0}) does not exist.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Delete firmware update rule

  • Method: DELETE
  • Path: /phone/firmware_update_rules/{ruleId}
  • Tags: Firmware Update Rules

Use this API to delete the firmware update rule.

Prerequisites:

  • Business or Education account
  • Zoom Phone license

Scopes: phone:write:admin

Granular Scopes: phone:delete:firmware_update_rule:admin

Rate Limit Label: Light

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Successfully deleted firmware update rule.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `404` <br> The rule does not exist, rule id:{0}.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update firmware update rule

  • Method: PATCH
  • Path: /phone/firmware_update_rules/{ruleId}
  • Tags: Firmware Update Rules

Use this API to update a specific firmware update rule.

Prerequisites:

  • Business, or Education account
  • Zoom Phone license

Scopes: phone:write:admin

Granular Scopes: phone:update:firmware_update_rule:admin

Rate Limit Label: Light

Request Body

Content-Type: application/json
  • device_model (required)

    string — Device model name.

  • device_type (required)

    string — Device type.

  • version (required)

    string — Firmware version.

  • restart_type

    integer, possible values: 1, 2, default: 1 — Restart type: `1` - Restart the devices immediately. `2` - Restart with the next resync or auto pull

Example:

{
  "version": "3.4.5.18",
  "device_type": "AudioCodes",
  "device_model": "445hd",
  "restart_type": 1
}

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Successfully updated a firmware update rule.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `404` <br> The rule does not exist, rule id:{0}.<br> The firmware version does not exist, firmware version:{0}.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List updatable firmwares

  • Method: GET
  • Path: /phone/firmwares
  • Tags: Firmware Update Rules

Use this API to get updatable firmwares.

Prerequisites:

  • Business or Education account
  • Zoom Phone license

Scopes: phone:read:admin

Granular Scopes: phone:read:list_firmwares:admin

Rate Limit Label: Light

Responses

Status: 200 **HTTP Status Code:** `200` **OK** Successfully listed the firmwares.
Content-Type: application/json
  • firmwares

    array — Firmwares list.

    Items:

    • device_model

      string — Device model name.

    • device_type

      string — Device type.

    • versions

      array — Firmware versions.

      Items:

      • expire_time

        string — Expire time.

      • status

        integer, possible values: 1, 2, 3 — Version status: * `1` &mdash; Available. * `2` &mdash; Unavailable. * `3` &mdash; Sunset

      • update_log

        string — The update log.

      • version

        string — Firmware version.

Example:

{
  "firmwares": [
    {
      "device_type": "AudioCodes",
      "device_model": "445hd",
      "versions": [
        {
          "version": "3.4.5.18",
          "update_log": "1. Supports call forwarding for Zoom Phone",
          "expire_time": "2021-05-29T00:32:16.000Z",
          "status": 1
        }
      ]
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List group call pickup objects

  • Method: GET
  • Path: /phone/group_call_pickup
  • Tags: Group Call Pickup

Use this API to retrieve a list of Group Call Pickup objects in an account.

Prerequisites:

  • A Pro or higher account plan
  • A Zoom Phone license

Scopes: phone:read:admin

Granular Scopes: phone:read:list_call_pickup_groups:admin

Rate Limit Label: Medium

Responses

Status: 200 **HTTP Status Code:** `200` Group listed successfully.
Content-Type: application/json
  • group_call_pickup

    array

    Items:

    • cost_center

      string — Cost center name.

    • delay

      integer, possible values: 0, 5, 10, 15 — Determines after how much time (in seconds) the group should be notified: default is `0` second.

    • department

      string — Department name.

    • description

      string — Group call pickup description.

    • directed_call_pickup

      boolean — Whether the ringtone is on.

    • display_name

      string — Name of the group.

    • extension_id

      string — Extension ID.

    • extension_number

      integer, format: int64 — Extension number.

    • id

      string — ID of the group.

    • member_count

      integer — Member count of the group.

    • site

      object

  • next_page_token

    string — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • page_size

    integer — The number of records returned within a single API call for each page.

  • total_records

    integer — The total number of records returned.

Example:

{
  "group_call_pickup": [
    {
      "id": "qLZ4vXb8RAydayOR5ckYMg",
      "display_name": "testGCP",
      "extension_id": "testGCP",
      "extension_number": 10002,
      "member_count": 1,
      "description": "test",
      "delay": 0,
      "cost_center": "test",
      "department": "test",
      "site": {
        "id": "8f71O6rWT8KFUGQmJIFAdQ",
        "name": "testGCPSite"
      },
      "directed_call_pickup": true
    }
  ],
  "next_page_token": "BJLYC6PABbAHdjwSkGVQeeR6B1juwHqj3G2",
  "page_size": 30,
  "total_records": 1
}
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Add a group call pickup object

  • Method: POST
  • Path: /phone/group_call_pickup
  • Tags: Group Call Pickup

Use this API to add a Group Call Pickup instance to the account that has the Zoom Phone license assigned.

Prerequisites:

  • A Pro or higher account plan
  • A Zoom Phone license

Scopes: phone:write:admin

Granular Scopes: phone:write:call_pickup_group:admin

Rate Limit Label: Light

Request Body

Content-Type: application/json
  • display_name (required)

    string — Name of the group.

  • site_id (required)

    string — Unique identifier of the [site](https://support.zoom.us/hc/en-us/articles/360020809672-Managing-Multiple-Sites).

  • delay

    integer, possible values: 0, 5, 10, 15, default: 0 — Determines after how much time (in seconds) the group should be notified.

  • description

    string — Group call pickup description.

  • directed_call_pickup

    boolean, default: false — Whether the ringtone is on.

  • extension_number

    integer, format: int64 — Short extension number.

  • member_extension_ids

    array — Extension ID.

    Items:

    string

  • play_incoming_calls_sound

    object — This field is not available when `enable=false`

    • duration

      integer, possible values: 0, 1, 3, 5, default: 0 — Duration (in seconds) between ring tones.

    • enable

      boolean, default: false — Whether to play incoming call sound in Zoom clients.

    • ring_tone

      string, possible values: "ringtone_1", "ringtone_2", "ringtone_3", default: "ringtone_1" — Incoming call sound in Zoom clients.

Example:

{
  "display_name": "test",
  "site_id": "NjHmTu16Qfe8yOiNJuekXA",
  "description": "test",
  "extension_number": 1,
  "delay": 0,
  "play_incoming_calls_sound": {
    "enable": false,
    "ring_tone": "ringtone_1",
    "duration": 0
  },
  "directed_call_pickup": false,
  "member_extension_ids": [
    "RfFxkRTIRnOp6ZYo7c1Ptg"
  ]
}

Responses

Status: 201 **HTTP Status Code:** `201` **Created** Group added successfully.
Content-Type: application/json
  • display_name

    string — Name of the group.

  • id

    string — ID of the group.

Example:

{
  "id": "q5C69v95SPKsZ5uUi-Xbcw",
  "display_name": "testGCP"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get call pickup group by ID

  • Method: GET
  • Path: /phone/group_call_pickup/{groupId}
  • Tags: Group Call Pickup

Use this API to retrieve information on a specific Group Call Pickup object in an account.

Prerequisites:

  • A Pro or higher account plan
  • A Zoom Phone license

Scopes: phone:read:admin

Granular Scopes: phone:read:call_pickup_group:admin

Rate Limit Label: Light

Responses

Status: 200 **HTTP Status Code:** `200` Group returned successfully.
Content-Type: application/json
  • cost_center

    string — Cost center name.

  • delay

    integer, possible values: 0, 5, 10, 15 — Determines after how much time (in seconds) the group should be notified.

  • department

    string — Department name.

  • description

    string — Description of the group.

  • directed_call_pickup

    boolean — Whether the ringtone is on.

  • display_name

    string — Name of the group.

  • extension_id

    string — Extension ID.

  • extension_number

    integer, format: int64 — Extension number.

  • id

    string — ID of the group.

  • member_count

    integer — Member count of the group.

  • play_incoming_calls_sound

    object

    • duration

      integer, possible values: 0, 1, 3, 5 — Duration (in seconds) between ring tones.

    • enable

      boolean — Whether to play incoming call sound in Zoom clients.

    • ring_tone

      string, possible values: "ringtone_1", "ringtone_2", "ringtone_3" — Incoming call sound in Zoom clients.

  • site

    object

Example:

{
  "id": "qLZ4vXb8RAydayOR5ckYMg",
  "display_name": "testGCP",
  "extension_id": "mLG45gHYSVaeVVc64gp1jQ",
  "extension_number": 10002,
  "description": "test",
  "delay": 5,
  "member_count": 1,
  "cost_center": "test",
  "department": "test",
  "site": {
    "id": "8f71O6rWT8KFUGQmJIFAdQ",
    "name": "testGCPSite"
  },
  "play_incoming_calls_sound": {
    "enable": true,
    "ring_tone": "ringtone_1",
    "duration": 0
  },
  "directed_call_pickup": true
}
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Delete group call pickup objects

  • Method: DELETE
  • Path: /phone/group_call_pickup/{groupId}
  • Tags: Group Call Pickup

Use this API to remove a Group Call Pickup object.

Prerequisites:

  • A Pro or higher account plan
  • A Zoom Phone license

Scopes: phone:write:admin

Granular Scopes: phone:delete:call_pickup_group:admin

Rate Limit Label: Light

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Group deleted successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `404` <br> Group call pickup does not exist.<br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update the group call pickup information

  • Method: PATCH
  • Path: /phone/group_call_pickup/{groupId}
  • Tags: Group Call Pickup

Use this API to update a specific Group Call Pickup object information.

Prerequisites:

  • A Pro or higher account plan
  • A Zoom Phone license

Scopes: phone:write:admin

Granular Scopes: phone:update:call_pickup_group:admin

Rate Limit Label: Light

Request Body

Content-Type: application/json
  • cost_center

    string — Cost center name.

  • delay

    integer, possible values: 0, 5, 10, 15 — Determines after how much time (in seconds) the group should be notified.

  • department

    string — Department name.

  • description

    string — Description for the group.

  • directed_call_pickup

    boolean — Whether the ringtone is on.

  • display_name

    string — Name of the group.

  • extension_number

    integer, format: int64 — Short extension number.

  • play_incoming_calls_sound

    object — This field is not available when `enable=false`

    • duration

      integer, possible values: 0, 1, 3, 5, default: 0 — Duration (in seconds) between ring tones.

    • enable

      boolean — Whether to play incoming call sound in Zoom clients.

    • ring_tone

      string, possible values: "ringtone_1", "ringtone_2", "ringtone_3", default: "ringtone_1" — Incoming call sound in Zoom clients.

Example:

{
  "display_name": "test",
  "extension_number": 1,
  "description": "test",
  "delay": 0,
  "cost_center": "testCostCenter",
  "department": "testDepartment",
  "play_incoming_calls_sound": {
    "enable": true,
    "ring_tone": "ringtone_1",
    "duration": 0
  },
  "directed_call_pickup": false
}

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Group details updated successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Validation Failed.<br> Extension number error.<br> Display name must be in the range of 3 to 200.<br> Description is too long.<br> Delay must be in the range of 0 to 15.<br> Duration must be in the range of 0 to 5.<br> **Error Code:** `404` <br> Group call pickup does not exist.<br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List call pickup group members

  • Method: GET
  • Path: /phone/group_call_pickup/{groupId}/members
  • Tags: Group Call Pickup

Use this API to retrieve members of a call pickup group in an account.

Prerequisites:

  • A Pro or higher account plan
  • A Zoom Phone license

Scopes: phone:read:admin

Granular Scopes: phone:read:call_pickup_group_member:admin

Rate Limit Label: Medium

Responses

Status: 200 **HTTP Status Code:** `200` Members listed successfully.
Content-Type: application/json
  • group_call_pickup_member

    array

    Items:

    • display_name

      string — Name of the user.

    • extension_id

      string — Extension ID.

    • extension_number

      integer, format: int64 — Zoom Phone extension number.

    • extension_type

      string, possible values: "user", "commonArea" — Type of the assignee.

    • id

      string — ID of the user to whom the group belongs.

  • next_page_token

    string — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • page_size

    integer — The number of records returned within a single API call for each page.

  • total_records

    integer — The total number of records returned.

Example:

{
  "group_call_pickup_member": [
    {
      "id": "F1r_jMw4SGGljLqKdcMsvw",
      "display_name": "testGCPUser",
      "extension_id": "qLZ4vr_jMw4SFUGQmJI",
      "extension_type": "user",
      "extension_number": 10001
    }
  ],
  "next_page_token": "fefeLbe42",
  "page_size": 30,
  "total_records": 1
}
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Add members to a call pickup group

  • Method: POST
  • Path: /phone/group_call_pickup/{groupId}/members
  • Tags: Group Call Pickup

Use this API to add members to the specified Group Call Pickup object.

Prerequisites:

  • A Pro or higher account plan
  • A Zoom Phone license

Scopes: phone:write:admin

Granular Scopes: phone:write:call_pickup_group_member:admin

Rate Limit Label: Light

Request Body

Content-Type: application/json
  • member_extension_ids

    array

    Items:

    string — Extension ID of user/common areas.

Example:

{
  "member_extension_ids": [
    "SQv52YtkRLC2dwrDdYtGsA"
  ]
}

Responses

Status: 201 **HTTP Status Code:** `201` **Created** Members added successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> **Error Code:** `404` <br> Group call pickup does not exist.<br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Remove members from call pickup group

  • Method: DELETE
  • Path: /phone/group_call_pickup/{groupId}/members/{extensionId}
  • Tags: Group Call Pickup

Use this API to remove member from the Group Call Pickup object.

Prerequisites:

  • A Pro or higher account plan
  • A Zoom Phone license

Scopes: phone:write:admin

Granular Scopes: phone:delete:call_pickup_group_member:admin

Rate Limit Label: Light

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Members removed successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `404` <br> Group call pickup does not exist.<br> Member does not exist.<br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get group policy details

  • Method: GET
  • Path: /phone/groups/{groupId}/policies/{policyType}
  • Tags: Groups

Returns the group policy details.

Prerequisites Pro or higher account plan with Zoom phone license

Scopes: phone:read:admin

Granular Scopes: phone:read:group_policy:admin

Rate Limit Label: MEDIUM

Responses

Status: 200 **HTTP Status Code:** `200` **OK** Get group policy details successfully.
Content-Type: application/json

One of:

  • allow_emergency_calls

    object — The group-level settings for whether emergency calls are allowed for users and from specific device types.

    • allow_emergency_calls_from_clients

      boolean — Whether users are allowed to make emergency calls from Zoom clients.

    • allow_emergency_calls_from_deskphones

      boolean — Whether users are allowed to make emergency calls from desk phones.

    • enable

      boolean — Whether users in this user group are allowed to make emergency calls.

    • locked

      boolean — Whether this setting is locked by the account administrator and cannot be overridden at lower levels (extension).

    • locked_by

      string, possible values: "invalid", "account", "user_group" — This field specifies the configuration level that has enforced the lock. This indicates where the setting was originally locked and cannot be overridden.

    • modified

      boolean — Whether the current settings have been changed from the inherited defaults. If true, the settings can be reset. Applicable only when using the new policy framework.

Example:

{
  "allow_emergency_calls": {
    "enable": true,
    "locked": true,
    "locked_by": "account",
    "modified": true,
    "allow_emergency_calls_from_clients": true,
    "allow_emergency_calls_from_deskphones": true
  }
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Invalid value for parameter 'policyType'. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2040` <br> User group does not exist: {groupId}. <br> **Error Code:** `2001` <br> Account does not exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update group policy

  • Method: PATCH
  • Path: /phone/groups/{groupId}/policies/{policyType}
  • Tags: Groups

Updates the group policy.

Prerequisites

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:write:admin

Granular Scopes: phone:update:group_policy:admin

Rate Limit Label: HEAVY

Request Body

Content-Type: application/json

One of:

  • allow_emergency_calls

    object — The group-level settings for whether emergency calls are allowed for users and from specific device types.

    • allow_emergency_calls_from_clients

      boolean — Whether users are allowed to make emergency calls from Zoom clients.

    • allow_emergency_calls_from_deskphones

      boolean — Whether users are allowed to make emergency calls from desk phones.

    • enable

      boolean — Whether users in this user group are allowed to make emergency calls.

    • locked

      boolean — Whether this setting is locked by the account administrator and cannot be overridden at lower levels (extension).

    • reset

      boolean — Whether the current settings should be reset to inherit from higher-level configurations. Only applicable when the new policy framework is in use.

Example:

{
  "allow_emergency_calls": {
    "enable": true,
    "locked": true,
    "reset": true,
    "allow_emergency_calls_from_clients": true,
    "allow_emergency_calls_from_deskphones": true
  }
}

Responses

Status: 204 **HTTP Status Code:** `204` Site policy updated.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Invalid value for parameter 'policyType'. <br> **Error Code:** `400` <br> Lock and reset operations cannot be performed simultaneously. <br> **Error Code:** `400` <br> Reset cannot be combined with other operations. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2040` <br> User group does not exist: {groupId}. <br> **Error Code:** `2001` <br> Account does not exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get group phone settings

  • Method: GET
  • Path: /phone/groups/{groupId}/settings
  • Tags: Groups

Returns group phone settings.

Prerequisites Account must have a Pro or a higher plan with Zoom Phone license.

Scopes: phone:read:admin

Granular Scopes: phone:read:group_setting:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` Group settings retrieved successfully.
Content-Type: application/json
  • ad_hoc_call_recording

    object — Whether to allow extensions to record and save calls in the cloud.

    • allow_delete

      boolean — Whether to allow user to delete their own ad-hoc recording.

    • allow_download

      boolean — Whether to allow user to download their own ad-hoc recording.

    • enable

      boolean — Whether the current extension can record and save calls to the cloud.

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account", "site" — Which level of administrator prohibits the modification of the current settings.

    • modified

      boolean — Whether the current settings have been modified. If modified, they can be reset (displayed when using the new policy framework).

    • play_recording_beep_tone

      object

      • enable

        boolean — Whether to play the side tone beep for recorded users while recording. It displays only when ad hoc call recording policy uses the new framework.

      • play_beep_member

        string, possible values: "allMember", "recordingSide" — The beep sides. It displays only when the `enable` is set to true.

      • play_beep_time_interval

        integer, possible values: 5, 10, 15, 20, 25, 30, 60, 120 — The beep time interval in seconds. It displays only when the `enable` is set to true.

      • play_beep_volume

        integer, possible values: 0, 20, 40, 60, 80, 100 — The side tone beep volume. It displays only when `enable` is set to `true`.

    • recording_explicit_consent

      boolean — Whether the Press 1 option that provides recording consent is enabled.

    • recording_start_prompt

      boolean — Whether a prompt plays to call participants when the recording has started.

    • recording_transcription

      boolean — Whether the call recording transcription is enabled.

  • advanced_encryption

    object — Whether to allow voicemail to be encrypted with keys which are not accessible to Zoom servers. These voicemails can be decrypted only by the intended user recipient. Shared line appearance, shared line group, call queue, or auto receptionist voicemail will not be encrypted, but can still be played. Email to voicemail, transcriptions, ability to check voicemails by dialing into the voicemail system, or web are not available when this feature is enabled. This policy requires a Power Pack license to be enabled. If the user does who inherits this policy does not have a Power Pack license, the policy will not be applied. Settings is only available with client version 5.12 or later.

    • disable_incoming_unencrypted_voicemail

      boolean — Whether to disable incoming unencrypted voicemail

    • enable

      boolean

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account", "user_group" — Which level of administrator prohibits the modification of the current settings.

    • modified

      boolean — Whether the current settings have been modified. If modified, they can be reset(displayed when using old or new policy framework).

  • allow_emergency_calls

    object — Group-level settings for whether emergency calls are allowed for users and from specific device types.

    • allow_emergency_calls_from_clients

      boolean — Whether users are allowed to make emergency calls from zoom clients.

    • allow_emergency_calls_from_deskphones

      boolean — Whether users are allowed to make emergency calls from desk phones.

    • enable

      boolean — Whether users in this user group are allowed to make emergency calls.

    • locked

      boolean — Whether this setting is locked by the account administrator and cannot be overridden at lower levels (extension).

    • locked_by

      string, possible values: "invalid", "account", "user_group" — This field specifies the configuration level that has enforced the lock. This indicates where the setting was originally locked and cannot be overridden.

    • modified

      boolean — Whether the current settings have been changed from the inherited defaults. If true, the settings can be reset. Applicable only when using the new policy framework.

  • allow_end_user_edit_call_handling

    object — Once disabled, users will not be able to edit their call handling settings on the web portal or enable call forwarding on the client.

    • enable

      boolean — Whether this policy is enabled

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account", "user_group" — Which level of administrator prohibits the modification of the current settings.

    • modified

      boolean — Whether the current settings have been modified. If modified, they can be reset (displayed when using the new policy framework).

  • allow_mobile_home_phone_callout

    object — Allows users to use mobile or home phone to place calls. Zoom app will call this device first before ringing the called number. Users' Call Me On phone number will be masked with Zoom Phone caller ID.

    • enable

      boolean — Whether this policy is enabled

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account", "user_group" — Which level of administrator prohibits the modification of the current settings.

    • modified

      boolean — Whether the current settings have been modified. If modified, they can be reset (displayed when using the new policy framework).

  • allowed_call_locations

    object

    • allow_internal_calls

      boolean — Whether to allow internal calls when outside of allowed locations.

    • enable

      boolean — Whether to define where the extension or user can make and accept calls, and send SMS. When the extension or user is outside of the allowed locations, calls will follow &quot;When a call is not answered&quot; settings. Outbound and inbound emergency calls and SMS will still be allowed. Note: SMS settings will only be available to users.

    • locations_applied

      boolean — Whether locations has been applied.

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account", "user_group" — Which level of administrator prohibits modifying the current settings.

    • modified

      boolean — Whether the current settings have been modified. If modified, they can be reset (displayed when using the new policy framework).

  • audio_intercom

    object — Whether to allow hands-free peer-to-peer conversations. When an intercom call is received, the phone will beep to notify the user of the incoming intercom call, and the user's phone will automatically answer the intercom call.

    • enable

      boolean

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account", "user_group" — Which level of administrator prohibits the modification of the current settings.

    • modified

      boolean — Whether the current settings have been modified. If modified, they can be reset (displayed when using the new policy framework).

  • auto_call_recording

    object — Whether to automatically record all inbound and outbound calls.

    • allow_stop_resume_recording

      boolean — Whether the stop and resume of automatic call recording is enabled.

    • disconnect_on_recording_failure

      boolean — Whether a call disconnects when there is an issue with the automatic call recording and the call cannot reconnect after five seconds. This does **not** include emergency calls.

    • enable

      boolean — Whether automatic call recording is enabled.

    • inbound_audio_notification

      object

      • recording_explicit_consent

        boolean — Whether the **Press 1** option that provides recording consent for inbound call is enabled. <b>Note:</b> * if customers who do not opt OP flag named `Enable Caller Based Consent Options`, the values of `recording_explicit_consent`, `inbound_audio_notification.recording_explicit_consent`, and `outbound_audio_notification.recording_explicit_consent` always remain consistent. * if customers who do not opt OP flag named `Enable Caller Based Consent Options, update both `inbound_audio_notification.recording_explicit_consent` and `outbound_audio_notification.recording_explicit_consent` with the same value.

      • recording_start_prompt

        boolean — Whether a prompt plays to call participants when the recording has started for inbound call is enabled. <b>Note:</b> * if customers who do not opt OP flag named `Enable Caller Based Consent Options`, the values of `recording_start_prompt`, `inbound_audio_notification.recording_start_prompt`, and `outbound_audio_notification.recording_start_prompt` always remain consistent. * if customers who do not opt OP flag named `Enable Caller Based Consent Options`, update both `inbound_audio_notification.recording_start_prompt` and `outbound_audio_notification.recording_start_prompt` with the same value.

      • recording_start_prompt_audio_id

        string — The audio that plays when the recording has started for inbound call. You can use this audio ID to get the audio information using [Get an audio item](https://developer.zoom.us/docs/api-reference/phone/methods#tag/Audio-Library/operation/GetAudioItem) API. <b>Note:</b> * if customers who do not opt OP flag named `Enable Caller Based Consent Options`, the values of `recording_start_prompt_audio_id`, `inbound_audio_notification.recording_start_prompt_audio_id`, and `outbound_audio_notification.recording_start_prompt_audio_id` always remain consistent. * if customers who do not opt OP flag named `Enable Caller Based Consent Options`, update both `inbound_audio_notification.recording_start_prompt_audio_id` and `outbound_audio_notification.recording_start_prompt_audio_id` with the same value.

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account", "user_group" — Which level of administrator prohibits the modification of the current settings.

    • outbound_audio_notification

      object

      • recording_explicit_consent

        boolean — Whether the **Press 1** option that provides recording consent for outbound call is enabled. <b>Note:</b> * if customers who do not opt OP flag named `Enable Caller Based Consent Options`, the values of `recording_explicit_consent`, `inbound_audio_notification.recording_explicit_consent`, and `outbound_audio_notification.recording_explicit_consent` always remain consistent. * if customers who do not opt OP flag named `Enable Caller Based Consent Options`, update both `inbound_audio_notification.recording_explicit_consent` and `outbound_audio_notification.recording_explicit_consent` with the same value.

      • recording_start_prompt

        boolean — Whether a prompt plays to call participants when the recording has started for outbound call is enabled. <b>Note:</b> * if customers who do not opt OP flag named `Enable Caller Based Consent Options`, the values of `recording_start_prompt`, `inbound_audio_notification.recording_start_prompt`, and `outbound_audio_notification.recording_start_prompt` always remain consistent. * if customers who do not opt OP flag named `Enable Caller Based Consent Options`, please update both `inbound_audio_notification.recording_start_prompt` and `outbound_audio_notification.recording_start_prompt` with the same value.

      • recording_start_prompt_audio_id

        string — The audio that plays when the recording has started for outbound call. You can use this audio ID to get the audio information using [Get an audio item](https://developer.zoom.us/docs/api-reference/phone/methods#tag/Audio-Library/operation/GetAudioItem) API. <b>Note:</b> * if customers who do not opt OP flag named `Enable Caller Based Consent Options`, the values of `recording_start_prompt_audio_id`, `inbound_audio_notification.recording_start_prompt_audio_id`, and `outbound_audio_notification.recording_start_prompt_audio_id` always remain consistent. * if customers who do not opt OP flag named `Enable Caller Based Consent Options`, please update both `inbound_audio_notification.recording_start_prompt_audio_id` and `outbound_audio_notification.recording_start_prompt_audio_id` with the same value.

    • play_recording_beep_tone

      object

      • enable

        boolean — Whether to play a side tone beep for recorded users while recording. Only displayed when auto call recording policy uses the new framework.

      • play_beep_member

        string, possible values: "allMember", "recordingSide" — The beep sides. It displays only when `enable` is true.

      • play_beep_time_interval

        integer, possible values: 5, 10, 15, 20, 25, 30, 60, 120 — The beep time interval in seconds. It displays only when `enable` is true.

      • play_beep_volume

        integer, possible values: 0, 20, 40, 60, 80, 100 — The volume of the side tone beep. It displays only when `enable` is set to `true`.

    • recording_calls

      string, possible values: "inbound", "outbound", "both" — The type of calls automatically recorded. * `inbound` * `outbound` * `both`

    • recording_explicit_consent

      boolean — Whether the `Press 1 option that provides recording consent` is enabled. <b>Deprecated:</b> This field will be deprecated in a future release. As an alternative, use the `inbound_audio_notification.recording_explicit_consent` and `outbound_audio_notification.recording_explicit_consent` to operate inbound and outbound prompt separately. <b>Note:</b> * if customers who opt OP flag named `Enable Caller Based Consent Options`, the values of `recording_explicit_consent` and `inbound_audio_notification.recording_explicit_consent` will remain consistent. When the field is updated, the `inbound_audio_notification.recording_explicit_consent` will be also updated. * if customers who do not opt OP flag named `Enable Caller Based Consent Options`, the values of `recording_explicit_consent`, `inbound_audio_notification.recording_explicit_consent`, and `outbound_audio_notification.recording_explicit_consent` always remain consistent. when the field is updated, the `inbound_audio_notification.recording_explicit_consent`, and `outbound_audio_notification.recording_explicit_consent` will be also updated.

    • recording_start_prompt

      boolean — Whether a prompt plays to call participants when the recording has started. <b>Deprecated:</b> This field will be deprecated in a future release. As an alternative, use the `inbound_audio_notification.recording_start_prompt` and `outbound_audio_notification.recording_start_prompt` to operate inbound and outbound prompt separately. <b>Note:</b> * if customers who opt OP flag named `Enable Caller Based Consent Options`, the values of `recording_start_prompt` and `inbound_audio_notification.recording_start_prompt` will remain consistent. When the field is updated, the `inbound_audio_notification.recording_start_prompt` will be also updated. * if customers who do not opt OP flag named `Enable Caller Based Consent Options`, the values of `recording_start_prompt`, `inbound_audio_notification.recording_start_prompt`, and `outbound_audio_notification.recording_start_prompt` always remain consistent. when the field is updated, the `inbound_audio_notification.recording_start_prompt`, and `outbound_audio_notification.recording_start_prompt` will be also updated.

    • recording_start_prompt_audio_id

      string — The audio that plays when the recording has started. You can use this audio ID to get the audio information using [Get an audio item](https://marketplace.zoom.us/docs/api-reference/phone/methods#tag/Audio-Library/operation/GetAudioItem) API. <b>Deprecated:</b> This field will be deprecated in a future release. As an alternative, use the `inbound_audio_notification.recording_start_prompt_audio_id` and `outbound_audio_notification.recording_start_prompt_audio_id` to operate inbound and outbound prompt separately. <b>Note:</b> * if customers who opt OP flag named `Enable Caller Based Consent Options`, the values of `recording_start_prompt_audio_id` and `inbound_audio_notification.recording_start_prompt_audio_id` will remain consistent. When the field is updated, the `inbound_audio_notification.recording_start_prompt_audio_id` will be also updated. * if customers who do not opt OP flag named `Enable Caller Based Consent Options`, the values of `recording_start_prompt_audio_id`, `inbound_audio_notification.recording_start_prompt_audio_id`, and `outbound_audio_notification.recording_start_prompt_audio_id` always remain consistent. when the field is updated, the `inbound_audio_notification.recording_start_prompt_audio_id`, and `outbound_audio_notification.recording_start_prompt_audio_id` will be also updated.

    • recording_transcription

      boolean — Whether the call recording transcription is enabled.

  • auto_delete_data_after_retention_duration

    object — This field allows Zoom to automatically delete data after the retention duration has lapsed.

    • delete_type

      integer, possible values: 1, 2 — The deletion policy. * 1 - soft delete * 2 - permanent delete

    • enable

      boolean — Allows Zoom to automatically delete data after the retention duration has lapsed.

    • items

      array

      Items:

      • duration

        integer — The retention duration where -1 means unlimited. For units of time, see the `time_unit` below. For `year`, the duration:-1, 1-10; for `day`, the duration:-1, 1-60; for `month`, the duration:-1, 1-18.

      • time_unit

        string, possible values: "year", "month", "day" — The unit of time.

      • type

        string, possible values: "callLog", "onDemandRecording", "automaticRecording", "voicemail", "videomail", "sms", "fax" — The data types.

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account", "user_group" — Which level of administrator prohibits the modification of the current settings.

    • modified

      boolean — Whether the current settings have been modified. If modified, they can be reset (displayed when using the new policy framework).

    • permanently_delete_after_days

      integer — The number of days after which the data will be permanently deleted automatically. Use -1 to retain data indefinitely.

  • auto_opt_out_in_call_queue

    object — Once enabled, when Call Queue members log out of Zoom (Except for desk phones and Zoom Phone appliances), they will be automatically Opted-out from the Call Queue as well.

    • enable

      boolean — Whether this policy is enabled

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account", "user_group" — Which level of administrator prohibits the modification of the current settings.

    • modified

      boolean — Whether the current settings have been modified. If modified, they can be reset (displayed when using the new policy framework).

    • prompt_before_opt_out_call_queue

      boolean — Always ask the user if they want to opt-out from the Call Queue when they sign out of Zoom

  • block_calls_without_caller_id

    object — Whether calls without caller ID will be blocked.

    • enable

      boolean

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account", "user_group" — Which level of administrator prohibits the modification of the current settings.

    • modified

      boolean — Whether the current settings have been modified. If modified, they can be reset (displayed when using the new policy framework).

  • block_external_calls

    object — This field allows you to set rules for blocking external calls during business, closed, and holiday hours. This feature is only available for User, Zoom Room and Common Area.

    • block_business_hours

      boolean

    • block_call_action

      integer, possible values: 0, 9 — The action when a call is blocked. `9` - Disconnect, `0`- Forward to voicemail/videomail.

    • block_closed_hours

      boolean

    • block_holiday_hours

      boolean

    • enable

      boolean

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account", "user_group" — Which level of administrator prohibits the modification of the current settings.

    • modified

      boolean — Whether the current settings have been modified. If modified, they can be reset(displayed when using old or new policy framework).

  • block_list_for_inbound_calls_and_messaging

    object

    • enable

      boolean — Whether to allows users and administrators to block inbound calls and SMS/MMS from phone numbers or prefixes.

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account", "user_group" — Which level of administrator prohibits the modification of the current settings.

    • modified

      boolean — Whether the current settings have been modified.

  • call_handling_forwarding

    object — Whether to allow users to forward their calls to other numbers.

    • call_forwarding_type

      integer, possible values: 1, 2, 3, 4 — `1` - Low restriction (external numbers not allowed) `2` - Medium restriction (external numbers and external contacts not allowed) `3` - High restriction (external numbers, external contacts and internal extensions without inbound automatic call recording not allowed) `4` - No restriction

    • enable

      boolean

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account", "user_group" — Which level of administrator prohibits the modification of the current settings.

    • modified

      boolean — Whether the current settings have been modified. If modified, they can be reset (displayed when using the new policy framework).

  • call_live_transcription

    object — Whether to let users turn on live transcriptions for a call.

    • enable

      boolean

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account", "user_group" — Which level of administrator prohibits the modification of the current settings.

    • modified

      boolean — Whether the current settings have been modified.

    • transcription_start_prompt

      object — Whether to play a prompt to call participants when the transcription has started.

  • call_overflow

    object

    • call_overflow_type

      integer, possible values: 1, 2, 3, 4 — `1` - Can forward to internal extensions and to external contacts. `2` - Can forward only to internal extensions. `3` - Can forward only to internal extensions that require inbound Automatic Call Recording. `4` - Can forward to internal extensions, external contacts, and external numbers.

    • enable

      boolean — Whether to allow users to forward their calls to other numbers.

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account", "user_group" — Which level of administrator prohibits the modification of the current settings.

    • modified

      boolean — Whether the current settings have been modified. If modified, they can be reset (displayed when using the new policy framework).

  • call_park

    object

    • call_not_picked_up_action

      integer — The action when a parked call is not picked up. `100` - Ring back to parker `0` - Forward to voicemail of the parker `9` - Disconnect `50` - Forward to another extension

    • enable

      boolean — Whether to allow calls placed on hold to be resumed from another location using a retrieval code.

    • expiration_period

      integer, possible values: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60 — A time limit for parked calls in minutes. After the expiration period ends, the retrieval code is no longer valid and a new code will be generated.

    • forward_to

      object — The extension's forwarding information.

      • display_name

        string — The extension's name.

      • extension_id

        string — The extension ID.

      • extension_number

        integer, format: int64 — The extension's number.

      • extension_type

        string, possible values: "user", "zoomRoom", "commonArea", "ciscoRoom/polycomRoom", "autoReceptionist", "callQueue", "sharedLineGroup" — The type of extension: * `user` * `zoomRoom` * `commonArea` * `ciscoRoom/polycomRoom` * `autoReceptionist` * `sharedLineGroup` * `callQueue`

      • id

        string — The ID of the extension `user`, `zoomRoom`, `commonArea`, `ciscoRoom/polycomRoom`, `autoReceptionist`, `callQueue` or `sharedLineGroup`.

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account", "user_group" — Which level of administrator prohibits the modification of the current settings.

    • modified

      boolean — Whether the current settings have been modified. If modified, they can be reset (displayed when using the new policy framework).

    • music_on_park

      object — Plays music when a call is parked.

    • sequence

      integer, possible values: 0, 1 — This field is only used in the new policy framework. Choose how parked calls are assigned to a BLF (Busy Lamp Field) key. Sequential assignment will park the call at the next available BLF key. Random assignment will park the call at a randomly selected BLF key. `0` - Random `1` - Sequential

  • call_screening

    object — Incoming direct external callers are prompted to respond to a button to reach users, callers who don't respond will be disconnected. Devices will not be able to receive any third party faxes.

    • enable

      boolean — Whether this policy is enabled

    • exclude_user_company_contacts

      boolean — This field excludes the user and company contacts from call screening, calls will reach users as normal

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account", "user_group" — Which level of administrator prohibits the modification of the current settings.

    • modified

      boolean — Whether the current settings have been modified. If modified, they can be reset (displayed when using the new policy framework).

  • call_transferring

    object

    • call_transferring_type

      integer, possible values: 1, 2, 3, 4 — 1-No restriction. 2-Medium restriction (external numbers and external contacts not allowed). 3-High restriction (external numbers, unrecorded external contacts, and internal extensions without inbound automatic recording not allowed). 4-Low restriction (external numbers not allowed).

    • enable

      boolean — Whether to allow user to warm or blind transfer their calls. This does not apply to warm transfer on IP Phones except for Yealink. Voicemail is transferable only to internal extensions.

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account", "user_group" — Which level of administrator prohibits the modification of the current settings.

    • modified

      boolean — Whether the current settings have been modified. If modified, they can be reset (displayed when using the new policy framework).

  • check_voicemails_over_phone

    object — Once enabled, users can check voicemails over phone using a PIN code.

    • enable

      boolean

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account", "user_group" — Which level of administrator prohibits the modification of the current settings.

    • modified

      boolean — Whether the current settings have been modified. If modified, they can be reset (displayed when using the new policy framework).

  • conference_dtmf

    object — Allows users to interact with automated systems, input access codes, or perform other functions without disrupting the call.

    • enable

      boolean — Whether this policy is enabled

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account", "user_group" — Which level of administrator prohibits the modification of the current settings.

    • modified

      boolean — Whether the current settings have been modified. If modified, they can be reset (displayed when using the new policy framework).

  • connect_to_operator

    object — Once disabled, users will not be able to route their calls to an operator as part of the 'When a call is not answered' setting.

    • enable

      boolean — Whether this policy is enabled

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account", "user_group" — Which level of administrator prohibits the modification of the current settings.

    • modified

      boolean — Whether the current settings have been modified. If modified, they can be reset (displayed when using the new policy framework).

  • delegation

    object — Whether to allow users to use delegation.

    • enable

      boolean

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account", "user_group" — Which level of administrator prohibits the modification of the current settings.

    • modified

      boolean — Whether the current settings have been modified. If modified, they can be reset (displayed when using the new policy framework).

  • desk_phone_smart_key_positions_layout

    object — Allows Zoom to move your frequently used line keys to your pre-programmed smart keys layout. Smart keys will be updated on a weekly basis.

    • enable

      boolean — Whether this policy is enabled

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account", "user_group" — Which level of administrator prohibits the modification of the current settings.

    • modified

      boolean — Whether the current settings have been modified. If modified, they can be reset (displayed when using the new policy framework).

  • display_call_feedback_survey

    object — Whether to display a thumbs up or down survey at the end of each call. If participants respond with thumbs down, they can provide additional information about what went wrong.

    • enable

      boolean

    • feedback_duration

      object — The call duration, in seconds, 0-60.

      • enable

        boolean

      • max

        integer

      • min

        integer

    • feedback_mos

      object — The MOS score. Min: 1.0, Max: 3.0, format one decimal point.

      • enable

        boolean

      • max

        string

      • min

        string

    • feedback_type

      integer, possible values: 1, 2 — This field allows you to display feedback survey, `1` - display for every call, `2` - display when call quality issues are detected. Default `1`, if set with value `2`, need to set `feed_back_mos` or `feedback_duration`.

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account", "user_group" — Which level of administrator prohibits the modification of the current settings.

    • modified

      boolean — Whether the current settings have been modified. If modified, they can be reset (displayed when using the new policy framework).

  • e2e_encryption

    object

    • enable

      boolean — Whether to allow users to switch their calls to end-to-end encryption. For users who have Automatic Call Recording turned on, they will need the option **Allow user to stop and resume automatic call recording** to use end-to-end encryption.

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account", "user_group" — Which level of administrator prohibits the modification of the current settings.

    • modified

      boolean — Whether the current settings have been modified. If modified, they can be reset (displayed when using the new policy framework).

  • elevate_to_meeting

    object

    • enable

      boolean — Whether to allow users to elevate their phone calls to a meeting.

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account", "user_group" — Which level of administrator prohibits the modification of the current settings.

    • modified

      boolean — Whether the current settings have been modified. If modified, they can be reset (displayed when using the new policy framework).

  • hand_off_to_room

    object

    • enable

      boolean — Whether to allow users to send a call to a Zoom Room.

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account", "user_group" — Which level of administrator prohibits the modification of the current settings.

    • modified

      boolean — Whether the current settings have been modified. If modified, they can be reset (displayed when using the new policy framework).

  • hide_phone_call_history_in_ios

    object — Hides Zoom Phone calls in iOS/iPadOS device call history.

    • enable

      boolean — Whether this policy is enabled

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account", "user_group" — Which level of administrator prohibits the modification of the current settings.

    • modified

      boolean — Whether the current settings have been modified. If modified, they can be reset (displayed when using the new policy framework).

  • international_calling

    object — Whether the current extension can make international calls outside of their calling plan.

    • enable

      boolean

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account", "user_group" — Which level of administrator prohibits modifying the current settings.

    • modified

      boolean — Whether the current settings have been modified.

  • local_survivability_mode

    object — Whether to allow user or extension to have core phone services in the event of an outage.

    • enable

      boolean

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account", "user_group" — Which level of administrator prohibits the modification of the current settings.

    • modified

      boolean — Whether the current settings have been modified.

  • mobile_switch_to_carrier

    object

    • enable

      boolean — Whether to allow the user to switch from a Zoom Phone to their native carrier.

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account", "user_group" — Which level of administrator prohibits the modification of the current settings.

    • modified

      boolean — Whether the current settings have been modified. If modified, they can be reset (displayed when using the new policy framework).

  • no_hold_conference

    object — Users can set up a conference call without any interruption in the current call

    • enable

      boolean — Whether this policy is enabled

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account", "user_group" — Which level of administrator prohibits the modification of the current settings.

    • modified

      boolean — Whether the current settings have been modified. If modified, they can be reset (displayed when using the new policy framework).

  • obfuscate_sensitive_data_during_call

    object — Obfuscates sensitive data during a call

    • enable

      boolean — Whether this policy is enabled

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account", "user_group" — Which level of administrator prohibits the modification of the current settings.

    • modified

      boolean — Whether the current settings have been modified. If modified, they can be reset (displayed when using the new policy framework).

  • online_fax

    object — Allows user to send and receive faxes.

    • enable

      boolean — Whether this policy is enabled

    • enable_new_fax_email_notifications

      boolean — This field enables email notifications when a new fax is received

    • include_fax_as_attachment

      boolean — This field includes the fax as an attachment in the email notification

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account", "user_group" — Which level of administrator prohibits the modification of the current settings.

    • modified

      boolean — Whether the current settings have been modified. If modified, they can be reset (displayed when using the new policy framework).

  • outbound_calling

    object

    • enable

      boolean — Whether to define calling rules to restrict user or extension from calling specific countries, cities, or numbers.

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account", "user_group" — Which level of administrator prohibits the modification of the current settings.

    • modified

      boolean — Whether the current settings have been modified. If modified, they can be reset (displayed when using the new policy framework).

  • outbound_sms

    object

    • allow_copy

      boolean — This field allows users to copy message.

    • allow_paste

      boolean — This field allows users to use the paste function to paste content (e.g. text or images) into SMS/MMS conversations.

    • enable

      boolean — Whether to allow users to send and receive messages. You will still need to assign a valid calling plan and phone number to each user for them to send and receive messages.

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account", "user_group" — Which level of administrator prohibits the modification of the current settings.

    • modified

      boolean — Whether the current settings have been modified. If modified, they can be reset (displayed when using the new policy framework).

  • peer_to_peer_media

    object — Whether to allow Zoom clients to send media directly to each other. Users or devices that have certain features like recording or monitoring enabled might not be able to use Peer to Peer Media.

    • enable

      boolean

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account", "user_group" — Which level of administrator prohibits the modification of the current settings.

    • modified

      boolean — Whether the current settings have been modified. If modified, they can be reset (displayed when using the new policy framework).

  • personal_audio_library

    object

    • allow_music_on_hold_customization

      boolean — Whether to allow music on hold customization.

    • allow_voicemail_and_message_greeting_customization

      boolean — Whether to allow voicemail and message greeting customization.

    • enable

      boolean — Whether to allow users to change their own audio library.

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account", "user_group" — Which level of administrator prohibits the modification of the current settings.

    • modified

      boolean — Whether the current settings have been modified.

  • prevent_users_upload_audio_files

    object — Prevents users from uploading audio files

    • enable

      boolean — Whether this policy is enabled

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account", "user_group" — Which level of administrator prohibits the modification of the current settings.

    • modified

      boolean — Whether the current settings have been modified. If modified, they can be reset (displayed when using the new policy framework).

  • restricted_call_hours

    object

    • allow_internal_calls

      boolean — Whether to allow internal calls/SMS during restricted hours.

    • enable

      boolean — Whether to define when the user cannot make or accept calls and send SMS. In the restricted hours, calls will follow &quot;When a call is not answered&quot; settings. Outbound and inbound emergency calls will still be allowed.

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account", "user_group" — Which level of administrator prohibits modifying the current settings.

    • modified

      boolean — Whether the current settings have been modified. If modified, they can be reset (displayed when using the new policy framework).

    • restricted_holiday_hours_applied

      boolean — Whether restricted holiday hours has been applied.

    • restricted_hours_applied

      boolean — Whether restricted hours has been applied.

    • time_zone

      object — Sets either time zone `id` or `set_by_extension`.

  • select_outbound_caller_id

    object

    • allow_hide_outbound_caller_id

      boolean — Whether to allow the current extension to hide outbound caller id. Settings is only available with client version 5.13.5 or later.

    • enable

      boolean — Whether to allow extensions to change outbound caller ID when placing calls.

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account", "user_group" — Which level of administrator prohibits the modification of the current settings.

    • modified

      boolean — Whether the current settings have been modified.

  • shared_voicemail_notification_by_email

    object — Once enabled, users receive email notification when there is a new shared voicemail or videomail. If the extension that shares the voicemail or videomail has disabled the voicemail or videomail notification by email policy, then users do not receive notifications.

    • enable

      boolean

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account", "user_group" — Which level of administrator prohibits the modification of the current settings.

    • modified

      boolean — Whether the current settings have been modified. If modified, they can be reset (displayed when using the new policy framework).

  • show_custom_disclaimer_when_using_zoom_phone

    object — Shows a custom disclaimer when starting to use Zoom Phone service.

    • custom_disclaimer_list

      array — The custom disclaimer list.

      Items:

      • body

        string — The custom disclaimer body.

      • language

        string — The audio prompt language code. American English: `en-US` British English: `en-GB` Espa&ntilde;ol americano: `es-US` Fran&ccedil;ais canadien: `fr-CA` Dansk: `da-DK` Deutsch: `de-DE` Espa&ntilde;ol: `es-ES` Fran&ccedil;ais: `fr-FR` Italiano: `it-IT` Nederlands: `nl-NL` Portugues portugal: `pt-PT` Japanese: `ja-JP` Korean: `ko-KO` Portugues brasil: `pt-BR` Chinese: `zh-CN` Taiwanese: `zh-TW`

      • title

        string — The custom disclaimer title.

    • display_frequency

      string, possible values: "first_time_only", "every_time", "every_month", "every_quarter", "every_6_months", "every_year" — The display frequency.

    • enable

      boolean — Whether this policy is enabled

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account", "user_group" — Which level of administrator prohibits the modification of the current settings.

    • modified

      boolean — Whether the current settings have been modified. If modified, they can be reset (displayed when using the new policy framework).

  • sms

    object

    • allow_copy

      boolean — This field allows users to copy message.

    • allow_paste

      boolean — The field allows users to use the paste function to paste content (e.g. text or images) into SMS/MMS conversations.

    • enable

      boolean — Whether to allow user to send and receive messages. You will still need to assign a valid calling plan and phone number to the user in order to send and receive messages.

    • international_sms

      boolean — Whether the user can send and receive international messages.

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account", "user_group" — Which level of administrator prohibits the modification of the current settings.

    • modified

      boolean — Whether the current settings have been modified. If modified, they can be reset (displayed when using the new policy framework).

  • sms_auto_reply

    object — Enables SMS Auto Reply feature for User, Auto Receptionist, and Call Queue. Power Pack license is required for this feature to work.

    • enable

      boolean — Whether this policy is enabled

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account", "user_group" — Which level of administrator prohibits the modification of the current settings.

    • modified

      boolean — Whether the current settings have been modified. If modified, they can be reset (displayed when using the new policy framework).

  • sms_etiquette_tool

    object — This field identifies defined keywords and text patterns over SMS and prevents users from sharing unwanted messages.

    • enable

      boolean

    • modified

      boolean — Whether the current settings have been modified. If modified, they can be reset (displayed when using the new policy framework).

    • sms_etiquette_policy

      array — The SMS etiquette policy. The maximum size is 50.

      Items:

      • action

        integer, possible values: 1, 2 — The actions taken when a policy is triggered, `1` - ask user to confirm sending of message, `2` - block the message.

      • active

        boolean — Whether active or not.

      • content

        string — The SMS etiquette policy content. For rule `1`, add keywords separated by comma, the following characters are supported A-Z, a-z, 0-9. For rule `2`, add regular expressions, back references and zero-width assertions area not supported.

      • description

        string — The SMS etiquette policy description.

      • id

        string — The SMS etiquette policy ID.

      • name

        string — The SMS etiquette policy name.

      • rule

        integer, possible values: 1, 2 — The SMS etiquette policy rule, `1` - Keywords, `2` - Regular Expression.

  • sms_template

    object — Uses pre-defined templates to help users compose messages. Power Pack license is required for this feature to work.

    • enable

      boolean — Whether this policy is enabled

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account", "user_group" — Which level of administrator prohibits the modification of the current settings.

    • modified

      boolean — Whether the current settings have been modified. If modified, they can be reset (displayed when using the new policy framework).

    • sms_template_list

      array — The SMS template list.

      Items:

      • active

        boolean — Whether it is active.

      • content

        string — Text to Display. This text will be editable by users. Customer input fields may be added by using the buttons below. Customer information will be removed if not available.

      • description

        string — The SMS template description.

      • name

        string — The SMS template name.

      • sms_template_id

        string — The SMS template ID.

  • use_callkit_for_incoming_call_notifications_in_ios

    object — Always uses CallKit for Incoming call notifications on iOS/iPadOS devices. When this feature is enabled for a user or common area, their iOS/iPadOS device will always use CallKit for incoming call notifications no matter if the Zoom App is running in the foreground or background, preventing interruptions when receiving inbound calls on the device. This setting only applies to iOS/iPadOS devices with CallKit enabled. If a user modifies this setting on their client, the value will be updated on this policy. Locking this policy will prevent users from making changes to the setting.

    • enable

      boolean — Whether this policy is enabled

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account", "user_group" — Which level of administrator prohibits the modification of the current settings.

    • modified

      boolean — Whether the current settings have been modified. If modified, they can be reset (displayed when using the new policy framework).

  • voicemail

    object

    • allow_delete

      boolean — Whether to allow users to delete their own voicemail.

    • allow_download

      boolean — Whether to allow users to download their own voicemail.

    • allow_share

      boolean — Whether to allow user to share their own voicemail.

    • allow_videomail

      boolean — Whether to allow users to access, share, download or delete video mail.

    • allow_virtual_background

      boolean — Whether to allow virtual background for videomail or video greeting.

    • enable

      boolean — Whether to allow users to access, receive or share voicemail and video mail.

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account", "user_group" — Which level of administrator prohibits the modification of the current settings.

    • modified

      boolean — Whether the current settings have been modified.

  • voicemail_intent_based_prioritization

    object — The voicemail prioritization with AI Companion.

    • enable

      boolean — Whether this policy is enabled

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account", "user_group" — Which level of administrator prohibits the modification of the current settings.

    • modified

      boolean — Whether the current settings have been modified. If modified, they can be reset (displayed when using the new policy framework).

  • voicemail_notification_by_email

    object — Once enabled, users receive email notifications when there is a new voicemail from users, call queues, auto receptionists, or shared line groups. Users who disabled the shared voicemail notification by email policy do not receive notifications.

    • enable

      boolean

    • forward_voicemail_to_email

      boolean — Whether to forward the voicemail to email.

    • include_voicemail_file

      boolean — Whether to include the voicemail file.

    • include_voicemail_transcription

      boolean — Whether to include the voicemail transcription.

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account", "user_group" — Which level of administrator prohibits the modification of the current settings.

    • modified

      boolean — Whether the current settings have been modified. If modified, they can be reset (displayed when using the new policy framework).

  • voicemail_tasks

    object — Voicemail tasks with AI Companion

    • enable

      boolean — Whether this policy is enabled

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account", "user_group" — Which level of administrator prohibits the modification of the current settings.

    • modified

      boolean — Whether the current settings have been modified. If modified, they can be reset (displayed when using the new policy framework).

  • voicemail_transcription

    object

    • enable

      boolean — Whether to enable voicemail or videomail transcription feature for user, auto receptionist, call queue, and shared line groups.

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account", "user_group" — Which level of administrator prohibits the modification of the current settings.

    • modified

      boolean — Whether the current settings have been modified.

  • zoom_phone_on_desktop

    object — Allows users to use Zoom Phone on desktop clients (Mac OS, Windows, VDI client, and Linux).

    • allow_calling_clients

      array — The clients in this list are allowed to make and receive calls.

      Items:

      string, possible values: "mac_os", "windows", "vdi_client", "linux" — The acceptable value is mac_os windows vdi_client linux.

    • allow_sms_mms_clients

      array — The clients in this list are allowed to use the SMS/MMS function.

      Items:

      string, possible values: "mac_os", "windows", "vdi_client", "linux" — The acceptable value is: mac_os windows vdi_client linux.

    • enable

      boolean — Whether to allow users to use Zoom Phone on desktop clients (Mac OS, Windows, VDI clinet and Linux).

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account", "site" — Which level of administrator prohibits the modification of the current settings.

    • modified

      boolean — Whether the current settings have been modified. If modified, you can reset settings to display when using the new policy framework.

  • zoom_phone_on_mobile

    object

    • allow_calling_clients

      array — The clients in this list are allowed to make and receive calls.

      Items:

      string, possible values: "ios", "android", "intune", "blackberry" — The acceptable value is: ios android intune blackberry.

    • allow_calling_sms_mms

      boolean — This field allows calling and SMS/MMS functions on mobile.

    • allow_sms_mms_clients

      array — The clients in this list are allowed to use the SMS/MMS function.

      Items:

      string, possible values: "ios", "android", "intune", "blackberry" — The acceptable value is: ios android intune blackberry.

    • enable

      boolean — This field allows users to use Zoom Phone on mobile clients (iOS, iPad OS, and Android).

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account", "user_group" — Which level of administrator prohibits the modification of the current settings.

    • modified

      boolean — Whether the current settings have been modified. If modified, they can be reset (displayed when using the new policy framework).

  • zoom_phone_on_pwa

    object — Whether to allow user to use Zoom Phone on Zoom Progressive Web App.

    • allow_calling

      boolean — This field allows users to use calling on Zoom Progressive Web App

    • allow_sms_mms

      boolean — This field allows users to use sms/mms on Zoom Progressive Web App

    • enable

      boolean

    • locked

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account", "user_group" — Which level of administrator prohibits the modification of the current settings.

    • modified

      boolean — Whether the current settings have been modified. If modified, they can be reset (displayed when using the new policy framework).

Example:

{
  "call_live_transcription": {
    "enable": true,
    "locked": true,
    "locked_by": "user_group",
    "modified": true,
    "transcription_start_prompt": {
      "enable": true,
      "audio_id": "yCT14TwySDGVUypVlKNEyA",
      "audio_name": "example.mp3"
    }
  },
  "local_survivability_mode": {
    "enable": true,
    "locked": true,
    "locked_by": "user_group",
    "modified": true
  },
  "select_outbound_caller_id": {
    "enable": true,
    "locked": true,
    "locked_by": "user_group",
    "modified": true,
    "allow_hide_outbound_caller_id": true
  },
  "personal_audio_library": {
    "enable": true,
    "locked": true,
    "locked_by": "user_group",
    "modified": true,
    "allow_music_on_hold_customization": true,
    "allow_voicemail_and_message_greeting_customization": true
  },
  "voicemail": {
    "enable": true,
    "locked": true,
    "locked_by": "user_group",
    "modified": true,
    "allow_delete": true,
    "allow_download": false,
    "allow_videomail": true,
    "allow_share": false,
    "allow_virtual_background": false
  },
  "voicemail_transcription": {
    "enable": true,
    "locked": true,
    "locked_by": "user_group",
    "modified": true
  },
  "voicemail_notification_by_email": {
    "include_voicemail_file": true,
    "include_voicemail_transcription": false,
    "forward_voicemail_to_email": true,
    "enable": true,
    "locked": true,
    "locked_by": "user_group",
    "modified": true
  },
  "shared_voicemail_notification_by_email": {
    "enable": true,
    "locked": true,
    "locked_by": "user_group",
    "modified": true
  },
  "restricted_call_hours": {
    "enable": true,
    "locked": true,
    "locked_by": "user_group",
    "modified": true,
    "time_zone": {
      "id": "America/Adak",
      "name": "(GMT-9:00) Adak"
    },
    "restricted_hours_applied": false,
    "restricted_holiday_hours_applied": false,
    "allow_internal_calls": true
  },
  "allowed_call_locations": {
    "enable": true,
    "locked": true,
    "locked_by": "user_group",
    "modified": true,
    "locations_applied": false,
    "allow_internal_calls": true
  },
  "check_voicemails_over_phone": {
    "enable": true,
    "locked": true,
    "locked_by": "user_group",
    "modified": true
  },
  "auto_call_recording": {
    "enable": true,
    "locked": true,
    "locked_by": "user_group",
    "recording_calls": "inbound",
    "recording_transcription": true,
    "allow_stop_resume_recording": true,
    "disconnect_on_recording_failure": true,
    "play_recording_beep_tone": {
      "enable": true,
      "play_beep_volume": 60,
      "play_beep_time_interval": 15,
      "play_beep_member": "allMember"
    },
    "inbound_audio_notification": {
      "recording_start_prompt": true,
      "recording_start_prompt_audio_id": "ySMexBgBQsioV8KKCUybTA",
      "recording_explicit_consent": true
    },
    "outbound_audio_notification": {
      "recording_start_prompt": true,
      "recording_start_prompt_audio_id": "ySMexBgBQsioV8KKCUybTA",
      "recording_explicit_consent": true
    }
  },
  "ad_hoc_call_recording": {
    "enable": true,
    "locked": true,
    "locked_by": "account",
    "modified": true,
    "recording_transcription": true,
    "allow_download": true,
    "allow_delete": true,
    "recording_start_prompt": true,
    "recording_explicit_consent": true,
    "play_recording_beep_tone": {
      "enable": true,
      "play_beep_volume": 60,
      "play_beep_time_interval": 15,
      "play_beep_member": "allMember"
    }
  },
  "zoom_phone_on_mobile": {
    "enable": true,
    "locked": true,
    "locked_by": "user_group",
    "modified": true,
    "allow_calling_clients": [
      "ios"
    ],
    "allow_sms_mms_clients": [
      "ios"
    ]
  },
  "zoom_phone_on_pwa": {
    "allow_calling": true,
    "allow_sms_mms": true,
    "enable": true,
    "locked": true,
    "locked_by": "user_group",
    "modified": true
  },
  "sms_etiquette_tool": {
    "enable": true,
    "modified": true,
    "sms_etiquette_policy": [
      {
        "id": "PdPtFFDbQhKr05WepCHhWQ",
        "name": "invalid symbol",
        "description": "invalid symbol",
        "rule": 1,
        "content": "test",
        "action": 1,
        "active": true
      }
    ]
  },
  "outbound_calling": {
    "enable": true,
    "locked": true,
    "locked_by": "user_group",
    "modified": true
  },
  "outbound_sms": {
    "enable": true,
    "locked": true,
    "locked_by": "user_group",
    "modified": true,
    "allow_copy": true,
    "allow_paste": true
  },
  "international_calling": {
    "enable": true,
    "locked": true,
    "locked_by": "user_group",
    "modified": true
  },
  "sms": {
    "enable": true,
    "international_sms": true,
    "locked": true,
    "locked_by": "user_group",
    "modified": true,
    "allow_copy": true,
    "allow_paste": true
  },
  "e2e_encryption": {
    "enable": true,
    "locked": true,
    "locked_by": "user_group",
    "modified": true
  },
  "call_handling_forwarding": {
    "enable": true,
    "locked": true,
    "locked_by": "user_group",
    "modified": true,
    "call_forwarding_type": 1
  },
  "call_overflow": {
    "enable": true,
    "locked": true,
    "locked_by": "user_group",
    "modified": true,
    "call_overflow_type": 1
  },
  "call_transferring": {
    "enable": true,
    "locked": true,
    "locked_by": "user_group",
    "modified": true,
    "call_transferring_type": 1
  },
  "elevate_to_meeting": {
    "enable": true,
    "locked": true,
    "locked_by": "user_group",
    "modified": true
  },
  "call_park": {
    "enable": true,
    "expiration_period": 3,
    "call_not_picked_up_action": 50,
    "forward_to": {
      "display_name": "ZOOM_API Test",
      "extension_id": "TO586CYlQFC_WCUvPRXytA",
      "extension_number": 100014,
      "extension_type": "user",
      "id": "oG_nYRFuTJiY1tu0Fur_4Q"
    },
    "sequence": 1,
    "music_on_park": {
      "audio_id": "yCT14TwySDGVUypVlKNEyA",
      "audio_name": "example.mp3"
    },
    "locked": false,
    "locked_by": "user_group",
    "modified": true
  },
  "hand_off_to_room": {
    "enable": true,
    "locked": true,
    "locked_by": "user_group",
    "modified": true
  },
  "mobile_switch_to_carrier": {
    "enable": true,
    "locked": true,
    "locked_by": "user_group",
    "modified": true
  },
  "delegation": {
    "enable": true,
    "locked": true,
    "locked_by": "user_group",
    "modified": true
  },
  "audio_intercom": {
    "enable": true,
    "locked": true,
    "locked_by": "user_group",
    "modified": true
  },
  "block_list_for_inbound_calls_and_messaging": {
    "enable": true,
    "locked": true,
    "locked_by": "user_group",
    "modified": true
  },
  "block_calls_without_caller_id": {
    "enable": true,
    "locked": true,
    "locked_by": "user_group",
    "modified": true
  },
  "block_external_calls": {
    "enable": true,
    "locked": true,
    "locked_by": "user_group",
    "modified": true,
    "block_business_hours": true,
    "block_closed_hours": true,
    "block_holiday_hours": true,
    "block_call_action": 0
  },
  "auto_delete_data_after_retention_duration": {
    "enable": true,
    "locked": false,
    "locked_by": "account",
    "modified": true,
    "items": [
      {
        "type": "callLog",
        "duration": -1,
        "time_unit": "year"
      }
    ],
    "delete_type": 1,
    "permanently_delete_after_days": -1
  },
  "peer_to_peer_media": {
    "enable": true,
    "locked": true,
    "locked_by": "user_group",
    "modified": true
  },
  "advanced_encryption": {
    "enable": true,
    "locked": true,
    "locked_by": "user_group",
    "modified": true,
    "disable_incoming_unencrypted_voicemail": true
  },
  "display_call_feedback_survey": {
    "enable": true,
    "locked": true,
    "locked_by": "user_group",
    "modified": true,
    "feedback_type": 1,
    "feedback_mos": {
      "enable": true,
      "min": "1.1",
      "max": "3.0"
    },
    "feedback_duration": {
      "enable": true,
      "min": 0,
      "max": 60
    }
  },
  "zoom_phone_on_desktop": {
    "allow_calling_clients": [
      "mac_os"
    ],
    "allow_sms_mms_clients": [
      "mac_os"
    ],
    "enable": true,
    "locked": true,
    "locked_by": "site",
    "modified": true
  },
  "allow_emergency_calls": {
    "enable": true,
    "locked": true,
    "locked_by": "account",
    "modified": true,
    "allow_emergency_calls_from_clients": true,
    "allow_emergency_calls_from_deskphones": true
  },
  "online_fax": {
    "enable": true,
    "locked": false,
    "locked_by": "account",
    "modified": true,
    "enable_new_fax_email_notifications": true,
    "include_fax_as_attachment": false
  },
  "sms_template": {
    "enable": true,
    "locked": false,
    "locked_by": "account",
    "modified": true,
    "sms_template_list": [
      {
        "sms_template_id": "0qWIP8S8QXmo6KShUIyvZA",
        "name": "name",
        "description": "description",
        "content": "content",
        "active": true
      }
    ]
  },
  "call_screening": {
    "enable": true,
    "locked": false,
    "locked_by": "account",
    "modified": true,
    "exclude_user_company_contacts": true
  },
  "sms_auto_reply": {
    "enable": true,
    "locked": false,
    "locked_by": "account",
    "modified": true
  },
  "allow_end_user_edit_call_handling": {
    "enable": true,
    "locked": false,
    "locked_by": "account",
    "modified": true
  },
  "connect_to_operator": {
    "enable": true,
    "locked": false,
    "locked_by": "account",
    "modified": true
  },
  "no_hold_conference": {
    "enable": true,
    "locked": false,
    "locked_by": "account",
    "modified": true
  },
  "conference_dtmf": {
    "enable": true,
    "locked": false,
    "locked_by": "account",
    "modified": true
  },
  "desk_phone_smart_key_positions_layout": {
    "enable": true,
    "locked": false,
    "locked_by": "account",
    "modified": true
  },
  "auto_opt_out_in_call_queue": {
    "enable": false,
    "locked": false,
    "locked_by": "account",
    "modified": true,
    "prompt_before_opt_out_call_queue": true
  },
  "allow_mobile_home_phone_callout": {
    "enable": true,
    "locked": false,
    "locked_by": "account",
    "modified": true
  },
  "use_callkit_for_incoming_call_notifications_in_ios": {
    "enable": false,
    "locked": false,
    "locked_by": "account",
    "modified": true
  },
  "hide_phone_call_history_in_ios": {
    "enable": false,
    "locked": false,
    "locked_by": "account",
    "modified": true
  },
  "obfuscate_sensitive_data_during_call": {
    "enable": false,
    "locked": false,
    "locked_by": "account",
    "modified": true
  },
  "prevent_users_upload_audio_files": {
    "enable": false,
    "locked": false,
    "locked_by": "account",
    "modified": true
  },
  "voicemail_tasks": {
    "enable": false,
    "locked": false,
    "locked_by": "account",
    "modified": true
  },
  "voicemail_intent_based_prioritization": {
    "enable": false,
    "locked": false,
    "locked_by": "account",
    "modified": true
  },
  "show_custom_disclaimer_when_using_zoom_phone": {
    "enable": false,
    "locked": false,
    "locked_by": "account",
    "modified": true,
    "display_frequency": "first_time_only",
    "custom_disclaimer_list": [
      {
        "language": "en-GB",
        "title": "tilte",
        "body": "body"
      }
    ]
  }
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Setting type(s) `{settingTypes}` supplied in query parameter setting_types is invalid <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2040` <br> User group does not exist: {groupId}. <br> **Error Code:** `2001` <br> Account does not exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get auto receptionist IVR

  • Method: GET
  • Path: /phone/auto_receptionists/{autoReceptionistId}/ivr
  • Tags: IVR

Gets an interactive voice response (IVR) system of the specified auto receptionist.

Prerequisites:

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:read:admin

Granular Scopes: phone:read:auto_receptionist_ivr:admin

Rate Limit Label: Light

Responses

Status: 200 **HTTP Status Code:** `200` Get an interactive voice response (IVR) system of an auto receptionist.
Content-Type: application/json
  • audio_prompt

    object

  • caller_enters_no_action

    object — The action if caller enters no action after the prompt played.

    • action

      integer — The action if the caller enters no action after the prompt played. `-1` Disconnect the call `2` Forward to the user `4` Forward to the common area `5` Forward to Cisco/Polycom Room `6` Forward to the auto receptionist `7` Forward to the call queue `8` Forward to the shared line group `15` Forward to the Contact Center

    • audio_prompt_repeat

      integer, possible values: 1, 2, 3 — The number of times to repeat the audio prompt.

    • forward_to

      object

      • display_name

        string — The display name.

      • extension_id

        string — The extension ID or contact center setting ID.

      • extension_number

        string — The extension number.

      • id

        string — The user, common area, Zoom Room, Cisco/Polycom room, auto receptionist, call queue, or shared line group ID.

  • key_actions

    array — IVR routing options.

    Items:

    • action

      integer — The action after clicking the key. For key `0`-`9` `100` Leave voicemail to the current extension `200` Leave voicemail to the user `300` Leave voicemail to the auto receptionist `400` Leave voicemail to the call queue `500` Leave voicemail to the shared line group `2` Forward to the user `3` Forward to Zoom Room `4` Forward to the common area `5` Forward to Cisco/Polycom Room `6` Forward to the auto receptionist `7` Forward to the call queue `8` Forward to the shared line group `9` Forward to external contacts `10` Forward to a phone number `15` Forward to the contact center `16` Forward to the meeting service `17` Forward to the meeting service number `-1` Disabled For key * or # `21` Repeat menu greeting `22` Return to the root menu `23` Return to the previous menu `-1` Disabled

    • key

      string — The key. The following values are supported: numeric('0'-'9'), *, #.

    • target

      object — The route to an extension, phone number, or a contact center.

      • display_name

        string — The display name.

      • extension_id

        string — The extension ID or contact center setting ID.

      • extension_number

        string — The extension number.

      • id

        string — The user, common area, Zoom Room, Cisco/Polycom room, auto receptionist, call queue, or shared line group ID.

      • phone_number

        string — The phone number to forward to in E164 format.

    • voicemail_greeting

      object — The voicemail greeting.

Example:

{
  "audio_prompt": {
    "id": "yCT14TwySDGVUypVlKNEyA",
    "name": "example.mp3"
  },
  "caller_enters_no_action": {
    "action": 15,
    "audio_prompt_repeat": 3,
    "forward_to": {
      "display_name": "ZOOM_API Test",
      "extension_id": "z97zV9NsSoa846i-ag3uEw",
      "extension_number": "101021",
      "id": "EVqEKnrMRWyPr705Fk5h2w"
    }
  },
  "key_actions": [
    {
      "action": 200,
      "key": "0",
      "target": {
        "display_name": "ZOOM_API Test",
        "extension_id": "TO586CYlQFC_WCUvPRXytA",
        "extension_number": "101002",
        "id": "oG_nYRFuTJiY1tu0Fur_4Q",
        "phone_number": "+12055437350"
      },
      "voicemail_greeting": {
        "id": "j2IsurWLRR-yWcbNGqPnaA",
        "name": "custom.wav"
      }
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Auto Receptionist does not exist: {0}. Holiday hours handling does not exist: {0}.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update auto receptionist IVR

  • Method: PATCH
  • Path: /phone/auto_receptionists/{autoReceptionistId}/ivr
  • Tags: IVR

Updates the interactive voice response (IVR) system of the specified auto receptionist.

Prerequisites:

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:write:admin

Granular Scopes: phone:update:auto_receptionist_ivr:admin

Rate Limit Label: Light

Request Body

Content-Type: application/json
  • audio_prompt_id

    string — The audio prompt file ID.

  • caller_enters_no_action

    object — The action if caller enters no action after the prompt played.

    • action

      integer — The action if caller enters no action after the prompt played. -1 Disconnect the call 2 Forward to the user 4 Forward to the common area 5 Forward to Cisco/Polycom Room 6 Forward to the auto receptionist 7 Forward to the call queue 8 Forward to the shared line group 15 Forward to the Contact Center

    • audio_prompt_repeat

      integer, possible values: 1, 2, 3 — The number of times to repeat the audio prompt.

    • forward_to_extension_id

      string — The extension ID or contact center setting ID.

  • holiday_id

    string — The auto receptionist holiday hours ID. If both `holiday_id` and `hours_type` are passed, `holiday_id` has a high priority and `hours_type` is invalid.

  • hours_type

    string — Hours type: `business_hours` (default) or `closed_hours`.

  • key_action

    object

    • action

      integer — The action after clicking the key. For key `0`-`9` 100 Leave voicemail to the current extension 200 Leave voicemail to the user 300 Leave voicemail to the auto receptionist 400 Leave voicemail to the call queue 500 Leave voicemail to the shared line group 2 Forward to the user 3 Forward to Zoom Room 4 Forward to the common area 5 Forward to Cisco/Polycom Room 6 Forward to the auto receptionist 7 Forward to the call queue 8 Forward to the shared line group 9 Forward to external contacts 10 Forward to a phone number 15 Forward to the contact center 16 Forward to the meeting service 17 Forward to the meeting service number -1 Disabled For key * or # 21 Repeat menu greeting 22 Return to the root menu 23 Return to the previous menu -1 Disabled

    • key

      string — The key. The following values are supported: numeric('0'-'9'), *, #.

    • target

      object

      • extension_id

        string — The extension ID or contact center setting ID.

      • phone_number

        string — The phone number to forward.

    • voicemail_greeting_id

      string — The voicemail greeting file ID.

Example:

{
  "audio_prompt_id": "j2IsurWLRR-yWcbNGqPnaA",
  "caller_enters_no_action": {
    "action": 200,
    "audio_prompt_repeat": 2,
    "forward_to_extension_id": "z97zV9NsSoa846i-ag3uEw"
  },
  "holiday_id": "YpLBylKbQKe1vEB1iSGatQ",
  "hours_type": "closed_hours",
  "key_action": {
    "action": 200,
    "key": "0",
    "target": {
      "extension_id": "CQLPaj0oSCC0olJLmAfgwQ",
      "phone_number": "+12055437350"
    },
    "voicemail_greeting_id": "z97zV9NsSoa846i-ag3uEw"
  }
}

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Auto Receptionist IVR updated.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Auto Receptionist does not exist: {0}. Holiday hours handling does not exist: {0}. **Error Code:** `300` <br> The number of times to repeat the audio prompt is required and can not be greater than 3. The action value set for if caller enters no action after the prompt played is not correct. The action value is not correct. The id for noAction to forward to is not correct. Voicemail greeting file id is required. The phone number to forward to is required.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List an extension's inbound block rules

  • Method: GET
  • Path: /phone/extension/{extensionId}/inbound_blocked/rules
  • Tags: Inbound Blocked List

Returns a list of the given extension's block rule for inbound calls and messaging.

it lists inbound block rule for the given Call Queue, Auto Receptionist, Shared Line Group, Common Area, Zoom Room, or User.

Prerequisites:

  • Pro or a higher account with Zoom Phone license

Scopes: phone:read:admin,phone:read

Granular Scopes: phone:read:list_extension_inbound_block_rules:admin,phone:read:list_extension_inbound_block_rules

Rate Limit Label: MEDIUM

Responses

Status: 200 **HTTP Status Code:** `200` **OK** List inbound calls block rules successfully.
Content-Type: application/json
  • extension_blocked_rules

    array — The inbound blocked rules.

    Items:

    • blocked_number

      string — The block rule phone number prefix, SMS short code, or pure phone number without the country code.

    • country

      string — The [country ISO code](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries). This field is required when the value is as follows: * `match_type` is `phoneNumber` or `prefix`

    • id

      string — The unique identifier of the block rule.

    • match_type

      string, possible values: "prefix", "phoneNumber", "SMS-shortCodes" — The match type for the block rule: * `phoneNumber`: Indicates that only a specific phone number that is shown in the `blocked_number` field is blocked. * `prefix`: Indicates that all numbers starting with the prefix that is shown in the `blocked_number` field are blocked. * `SMS-shortCodes`: Indicates that only a specific sms short code that is shown in the `blocked_number` field is blocked.

    • phone_number

      string — The phone number of the block rule, the value is a combination of the `country` and `prefix_number` values. * when the value of the `match_type` is `phoneNumber`, the value of `phone_number` is displayed in E164 format. * when the value of the `match_type` is `prefix`, the value of `phone_number` is appended with the `country` code.

    • type

      string, possible values: "block_for_other_reasons", "block_as_threat" — The block type for the block rule: * block_for_other_reasons * block_as_threat

  • next_page_token

    string — The next page token paginates through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • page_size

    integer, default: 30 — The total number of records returned from a single API call.

Example:

{
  "extension_blocked_rules": [
    {
      "id": "N9vmnIOHQMSWSL9mrz9jTw",
      "match_type": "phoneNumber",
      "phone_number": "+120665558945",
      "type": "block_for_other_reasons",
      "blocked_number": "20665558945",
      "country": "US"
    }
  ],
  "next_page_token": "uBTK3NzNksdkuCUAQaFVFd86kyOr59zg4U2",
  "page_size": 30
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `13600` <br> You do not enable the block list for inbound calls and messaging policy setting. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `404` <br> Extension does not exist: {extensionId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Add an extension's inbound block rule

  • Method: POST
  • Path: /phone/extension/{extensionId}/inbound_blocked/rules
  • Tags: Inbound Blocked List

Adds the given extension's block rule for inbound calls and messaging.

It adds the inbound block rule for the given Call Queue, Auto Receptionist, Shared Line Group, Common Area, Zoom Room or User.

Prerequisites:

  • Pro or a higher account with Zoom Phone license

Scopes: phone:write:admin,phone:write

Granular Scopes: phone:write:extension_inbound_block_rule:admin,phone:write:extension_inbound_block_rule

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • blocked_number (required)

    string — The block rule phone number prefix, SMS short code, or pure phone number without the country code. * When the value of the `match_type` is `prefix`, enter the prefix of the phone number without the country code. * When the value of the `match_type` is `phoneNumber`, enter the phone number without the country code. * When the value of the `match_type` is `SMS-shortCodes`, enter the SMS short code.

  • match_type (required)

    string, possible values: "prefix", "phoneNumber", "SMS-shortCodes" — The match type for the block rule: * `phoneNumber`: Only a specific phone number that is shown in the `blocked_number` field is blocked. * `prefix`: All numbers starting with the prefix that is shown in the `blocked_number` field are blocked. * `SMS-shortCodes`: Only a specific SMS short code that is shown in the `blocked_number` field is blocked.

  • type (required)

    string, possible values: "block_for_other_reasons", "block_as_threat" — The block type for the block rule: * block_for_other_reasons * block_as_threat **Note**: the value of `block_as_threat` can be available if the `block_calls_as_threat` setting is enabled in [account setting API](https://developers.zoom.us/docs/zoom-phone/apis/#operation/listZoomPhoneAccountSettings).

  • country

    string — The [country ISO code](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries). This field is required when the value is the following: * `match_type` is `phoneNumber` or `prefix`

Example:

{
  "match_type": "phoneNumber",
  "blocked_number": "20665558945",
  "type": "block_for_other_reasons",
  "country": "US"
}

Responses

Status: 201 **HTTP Status Code:** `201` **Created** Created successfully.
Content-Type: application/json
  • id

    string — The unique identifier of the blocked rule.

Example:

{
  "id": "N9vmnIOHQMSWSL9mrz9jTw"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `13600` <br> The block list for inbound calls and messaging policy setting is not enabled. <br> **Error Code:** `13601` <br> Blocked phone number already exists:{blocked_number}. <br> **Error Code:** `13605` <br> The block calls as threat policy setting is not enabled, it is not allowed selecting 'type' as 'block_as_threat. <br> **Error Code:** `400` <br> Invalid country. <br> **Error Code:** `13604` <br> Blocked number:{blocked_number} does not match the country:{country}. <br> **Error Code:** `7015` <br> The phone number {blocked_number} is invalid. <br> **Error Code:** `13606` <br> The match type:{match_type} does not support the type:{type} in extension level. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `404` <br> Extension does not exist: {extensionId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Delete an extension's inbound block rule

  • Method: DELETE
  • Path: /phone/extension/{extensionId}/inbound_blocked/rules
  • Tags: Inbound Blocked List

Deletes the given extension's blocked rule for inbound calls and messaging.

Use this API to delete inbound blocked rule for the given Call Queue, Auto Receptionist, Shared Line Group, Common Area, Zoom Room or User.

Prerequisites:

  • Pro or a higher account with Zoom Phone license

Scopes: phone:write:admin,phone:write

Granular Scopes: phone:delete:extension_inbound_block_rule:admin,phone:delete:extension_inbound_block_rule

Rate Limit Label: LIGHT

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** The blocked rule deleted successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `13600` <br> The block list for inbound calls and messaging policy setting is not enabled. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `404` <br> Blocked rule does not exist: {blocked_rule_id}. <br> **Error Code:** `404` <br> Extension does not exist: {extensionId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List an account's inbound blocked statistics

  • Method: GET
  • Path: /phone/inbound_blocked/extension_rules/statistics
  • Tags: Inbound Blocked List

Returns the list of the statistics of the extensions blocked rule for inbound calls and messaging. (e.g. Call Queue, Auto Receptionist, Shared Line Group, Common Area, Zoom Room and User)

Prerequisites:

  • Pro or higher account plan with Zoom phone license
  • Account owner or admin permissions

Scopes: phone:read:admin

Granular Scopes: phone:read:list_extension_inbound_block_rules_stat:admin

Rate Limit Label: MEDIUM

Responses

Status: 200 **HTTP Status Code:** `200` **OK** Get inbound blocked statistics successfully.
Content-Type: application/json
  • blocked_statistic

    array — The inbound blocked extension rule statistics.

    Items:

    • block_count

      integer — This field counts the number of extensions (phone users, Zoom rooms, common area phones, call queues, etc.) that have marked the `phone_number` as `type` = `block_for_other_reasons`.

    • blocked_number

      string — The block rule phone number prefix, SMS short code, or pure phone number without the country code.

    • country

      string — The [country ISO code](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries). This field is required when the value is as follows: * `match_type` is `phoneNumber` or `prefix`

    • id

      string — The unique identifier of the blocked statistic.

    • match_type

      string, possible values: "prefix", "phoneNumber", "SMS-shortCodes" — The match type for the block rule: * `phoneNumber`: Indicates that only a specific phone number that is shown in the `blocked_number` field is blocked. * `prefix`: Indicates that all numbers starting with the prefix that is shown in the `blocked_number` field are blocked. * `SMS-shortCodes`: Indicates that only a specific sms short code that is shown in the `blocked_number` field is blocked.

    • phone_number

      string — The phone number of the block rule, the value is a combination of the `country` and `blocked_number` values. * when the value of the `match_type` is `phoneNumber`, the value of `phone_number` is displayed in E164 format. * when the value of the `match_type` is `prefix`, the value of `phone_number` is appended with the `country` code.

    • threat_count

      integer — This field counts the number of extensions (phone users, Zoom rooms, common area phones, call queues, etc.) that have marked the `phone_number` as `type` = `block_as_threat`.

    • type

      string, possible values: "block_for_other_reasons", "block_as_threat" — The block type for the block rule: * block_for_other_reasons * block_as_threat

  • next_page_token

    string — The next page token paginates through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • page_size

    integer — The total number of records returned from a single API call.

Example:

{
  "blocked_statistic": [
    {
      "id": "2Iq1GeCiR5WczhV9QgXwFA",
      "match_type": "phoneNumber",
      "phone_number": "+120665558945",
      "type": "1",
      "block_count": 3,
      "threat_count": 2,
      "blocked_number": "20665558945",
      "country": "US"
    }
  ],
  "next_page_token": "uBTK3NzNksdkuCUAQaFVFd86kyOr59zg4U2",
  "page_size": 30
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `13600` <br> You do not enable the block list for inbound calls and messaging policy setting. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Delete an account's inbound blocked statistics

  • Method: DELETE
  • Path: /phone/inbound_blocked/extension_rules/statistics
  • Tags: Inbound Blocked List

Deletes the statistic of extensions blocked rule for inbound calls and messaging. (e.g. Call Queue, Auto Receptionist, Shared Line Group, Common Area, Zoom Room and User)

Prerequisites:

  • Pro or higher account plan with Zoom phone license
  • Account owner or admin permissions

Scopes: phone:write:admin

Granular Scopes: phone:delete:extension_inbound_block_rule_stat:admin

Rate Limit Label: LIGHT

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** The blocked statistics deleted successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `13600` <br> The block list for inbound calls and messaging policy setting is not enabled. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `404` <br> Blocked statistic does not exist: {blocked_statistic_id}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Mark a phone number as blocked for all extensions

  • Method: PATCH
  • Path: /phone/inbound_blocked/extension_rules/statistics/blocked_for_all
  • Tags: Inbound Blocked List

Promotes and applies the phone number blocked from the extension level blocked rule to the account level blocked rule. This action is contingent on the statistics of extensions blocked rule. All extensions under the current account block this phone number.

Prerequisites:

  • Pro or higher account plan with Zoom phone license
  • Account owner or admin permissions

Scopes: phone:write:admin

Granular Scopes: phone:update:inbound_blocked_for_all:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • blocked_statistic_id (required)

    string — The unique identifier of the blocked statistic.

Example:

{
  "blocked_statistic_id": "2Iq1GeCiR5WczhV9QgXwFA"
}

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Blocked for all extensions successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `13600` <br> The block list for inbound calls and messaging policy setting is not enabled. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `404` <br> Blocked statistic does not exist: {blocked_statistic_id}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List an account's inbound block rules

  • Method: GET
  • Path: /phone/inbound_blocked/rules
  • Tags: Inbound Blocked List

Returns a list of account level inbound block rule for inbound calls and messaging.

Prerequisites:

  • Pro or a higher account with Zoom Phone license
  • Account owner or admin permissions

Scopes: phone:read:admin

Granular Scopes: phone:read:list_inbound_block_rules:admin

Rate Limit Label: MEDIUM

Responses

Status: 200 **HTTP Status Code:** `200` **OK** List inbound calls block rules successfully.
Content-Type: application/json
  • account_blocked_rules

    array — The inbound blocked rules.

    Items:

    • blocked_number

      string — The block rule phone number prefix or sms short code or pure phone number without the country code.

    • comment

      string — The comment of the block rule. Enter a comment to help you identify the blocked number or prefix.

    • country

      string — The [country ISO code](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries). This field is required when the value is as follows: * `match_type` is `phoneNumber` or `prefix`

    • id

      string — The unique identifier of the block rule.

    • match_type

      string, possible values: "prefix", "phoneNumber", "SMS-shortCodes" — The match type for the block rule: * `phoneNumber`: Indicates that only a specific phone number that is shown in the `blocked_number` field is blocked. * `prefix`: Indicates that all numbers starting with the prefix that is shown in the `blocked_number` field are blocked. * `SMS-shortCodes`: Indicates that only a specific sms short code that is shown in the `blocked_number` field is blocked.

    • phone_number

      string — The phone number of the block rule, the value is a combination of the `country` and `blocked_number` values. * when the value of the `match_type` is `phoneNumber`, the value of `phone_number` is displayed in E164 format. * when the value of the `match_type` is `prefix`, the value of `phone_number` is appended with the `country` code.

    • status

      string, possible values: "active", "inactive" — Whether the block rule is active or inactive. * `active`: The block rule is active. * `inactive`: The block rule is inactive.

    • type

      string, possible values: "block_for_other_reasons", "block_as_threat" — The block type for the block rule: * block_for_other_reasons * block_as_threat

  • next_page_token

    string — The next page token paginates through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • page_size

    integer, default: 30 — The total number of records returned from a single API call.

Example:

{
  "account_blocked_rules": [
    {
      "id": "N9vmnIOHQMSWSL9mrz9jTw",
      "match_type": "phoneNumber",
      "phone_number": "+120665558945",
      "type": "block_for_other_reasons",
      "status": "active",
      "comment": "test inbound block comment.",
      "blocked_number": "20665558945",
      "country": "US"
    }
  ],
  "next_page_token": "uBTK3NzNksdkuCUAQaFVFd86kyOr59zg4U2",
  "page_size": 30
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `13600` <br> You do not enable the block list for inbound calls and messaging policy setting. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Add an account's inbound block rule

  • Method: POST
  • Path: /phone/inbound_blocked/rules
  • Tags: Inbound Blocked List

Adds an account level block rule for inbound calls and messaging from a phone number. As a result, all extensions block calls and messages to the phone number.

Prerequisites:

  • Pro or a higher account with Zoom Phone license
  • Account owner or admin permissions

Scopes: phone:write:admin

Granular Scopes: phone:write:inbound_block_rule:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • blocked_number (required)

    string — The block rule phone number prefix or SMS short code or pure phone number without the country code. * When the value of the `match_type` is `prefix`, enter the prefix of the phone number without the country code. * When the value of the `match_type` is `phoneNumber`, enter the phone number without the country code. * When the value of the `match_type` is `SMS-shortCodes`, enter the SMS short code.

  • match_type (required)

    string, possible values: "prefix", "phoneNumber", "SMS-shortCodes" — The match type for the block rule: * `phoneNumber`: Only a specific phone number that is shown in the `blocked_number` field is blocked. * `prefix`: All numbers starting with the prefix that is shown in the `blocked_number` field are blocked. * `SMS-shortCodes`: Only a specific SMS short code that is shown in the `blocked_number` field is blocked.

  • status (required)

    string, possible values: "active", "inactive" — Whether the block rule is active or inactive. * `active`: The block rule is active. * `inactive`: The block rule is inactive.

  • type (required)

    string, possible values: "block_for_other_reasons", "block_as_threat" — The block type for the block rule: * `block_for_other_reasons` * `block_as_threat` **Note**: The value of `block_as_threat` can be available if the `block_calls_as_threat` setting is enabled in [account setting API](https://developers.zoom.us/docs/zoom-phone/apis/#operation/listZoomPhoneAccountSettings).

  • comment

    string — The comment of the block rule. Enter a comment to help you identify the blocked number, prefix, or SMS short codes.

  • country

    string — The [country ISO code](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries). This field is required when the value is the following: * `match_type` is `phoneNumber` or `prefix`

Example:

{
  "match_type": "phoneNumber",
  "blocked_number": "20665558945",
  "type": "block_for_other_reasons",
  "comment": "test inbound block comment.",
  "status": "active",
  "country": "US"
}

Responses

Status: 201 **HTTP Status Code:** `201` **Created** Created successfully.
Content-Type: application/json
  • id

    string — The unique identifier of the blocked rule.

Example:

{
  "id": "N9vmnIOHQMSWSL9mrz9jTw"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `13600` <br> The block list for inbound calls and messaging policy setting is not enabled. <br> **Error Code:** `13601` <br> Blocked phone number already exists:{blocked_number}. <br> **Error Code:** `13605` <br> The block calls as threat policy setting is not enabled. It is not allowed selecting 'type' as 'block_as_threat. <br> **Error Code:** `400` <br> Invalid country. <br> **Error Code:** `7015` <br> The phone number {blocked_number} is invalid. <br> **Error Code:** `13604` <br> Blocked number:{blocked_number} does not match the country:{country}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Delete an account's inbound block rule

  • Method: DELETE
  • Path: /phone/inbound_blocked/rules
  • Tags: Inbound Blocked List

Deletes the account level blocked rule for inbound calls and messaging.

Prerequisites:

  • Pro or a higher account with Zoom Phone license
  • Account owner or admin permissions

Scopes: phone:write:admin

Granular Scopes: phone:delete:inbound_block_rule:admin

Rate Limit Label: LIGHT

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** The blocked rule deleted successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `13600` <br> You do not enable the block list for inbound calls and messaging policy setting. <br> **Error Code:** `13602` <br> You can't delete or change the number, because it is marked as Blocked Number more than the 'Automatic Blocking Threshold'. <br> **Error Code:** `13603` <br> You can't delete or change the number, because it is marked as Threat Number more than the 'Automatic Threat Blocking Threshold'. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `404` <br> Blocked rule does not exist: {blocked_rule_id}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update an account's inbound block rule

  • Method: PATCH
  • Path: /phone/inbound_blocked/rules/{blockedRuleId}
  • Tags: Inbound Blocked List

Updates the account level block rule for inbound calls and messaging.

Prerequisites:

  • Pro or a higher account with Zoom Phone license
  • Account owner or admin permissions

Scopes: phone:write:admin

Granular Scopes: phone:update:inbound_block_rule:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • blocked_number (required)

    string — The block rule phone number prefix or SMS short code or pure phone number without the country code.

  • match_type (required)

    string, possible values: "prefix", "phoneNumber", "SMS-shortCodes" — The match type for the block rule: * `phoneNumber`: Indicates that only a specific phone number that is shown in the `blocked_number` field is blocked. * `prefix`: Indicates that all numbers starting with the prefix that is shown in the `blocked_number` field are blocked. * `SMS-shortCodes`: Indicates that only a specific SMS short code that is shown in the `blocked_number` field is blocked.

  • type (required)

    string, possible values: "block_for_other_reasons", "block_as_threat" — The block type for the block rule: * block_for_other_reasons * block_as_threat **Note**: The value of `block_as_threat` can be available if the `block_calls_as_threat` setting is enabled in [account setting API](https://developers.zoom.us/docs/zoom-phone/apis/#operation/listZoomPhoneAccountSettings).

  • comment

    string — The comment of the block rule. Enter a comment to help you identify the blocked number or prefix.

  • country

    string — The [country ISO code](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries). This field is required when the value is as follows: * `match_type` is `phoneNumber` or `prefix`

  • status

    string, possible values: "active", "inactive" — Whether the block rule is active or inactive. * `active`: The block rule is active. * `inactive`: The block rule is inactive.

Example:

{
  "match_type": "phoneNumber",
  "blocked_number": "20665558945",
  "type": "block_for_other_reasons",
  "comment": "test update inbound block comment.",
  "status": "active",
  "country": "US"
}

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** The blocked rule updated successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `13600` <br> The block list for inbound calls and messaging policy setting is not enabled. <br> **Error Code:** `13601` <br> Blocked phone number already exists:{blocked_number}. <br> **Error Code:** `13602` <br> You can't delete or change the number, because it is marked as Blocked Number more than the 'Automatic Blocking Threshold'. <br> **Error Code:** `13603` <br> You can't delete or change the number, because it is marked as Threat Number more than the 'Automatic Threat Blocking Threshold'. <br> **Error Code:** `400` <br> Invalid country. <br> **Error Code:** `7015` <br> The phone number {blocked_number} is invalid. <br> **Error Code:** `13604` <br> Blocked number:{blocked_number} does not match the country:{country}. <br> **Error Code:** `13605` <br> The block calls as threat policy setting is not enabled, it is not allowed selecting 'type' as 'block_as_threat. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `404` <br> Blocked rule does not exist: {blocked_rule_id}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get line key position and settings information

  • Method: GET
  • Path: /phone/extension/{extensionId}/line_keys
  • Tags: Line Keys

Use this API to get the Zoom Phone line key settings information.

Prerequisites:

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:read:admin,phone:read

Granular Scopes: phone:read:line_keys,phone:read:line_keys:admin

Rate Limit Label: Light

Responses

Status: 200 **HTTP Status Code:** `200` Line key and position setting object returned.
Content-Type: application/json
  • line_keys

    array — The line key position.

    Items:

    • alias

      string — The user-defined display name for each line key of the device. The alias can be up to 32 characters in length.

    • index

      integer — The order of the line key on the phone.

    • key_assignment

      object — The line key assignment information.

      • display_name

        string — The display name of the line assigned to the line key.

      • extension_id

        string — The extension ID of the line assigned to the line key.

      • extension_number

        string — The extension number of the line assigned to the line key.

      • phone_number

        string — The phone number of the line assigned to the line key.

      • retrieval_code

        string — The call park retrieval code for `call_park` line key type.

      • speed_dial_number

        string — The speed dial number used for `speed_dial_number` line key type.

    • line_key_id

      string — The line key ID.

    • outbound_caller_id

      string — The outbound caller number for the line.

    • type

      string, possible values: "line", "blf", "speed_dial", "zoom_meeting", "call_park", "group_call_pickup" — The line key type. `line`: Line/Shared line access/ Shared line group. `blf`: Busy lamp field. `speed_dial`: Speed-dial a phone number. `zoom_meeting`: Desk phone companion mode. `call_park`: Call park. Users don't need to dial the retrieval codes with this setting. `group_call_pickup`: Pick up inbound calls for call pickup groups.

Example:

{
  "line_keys": [
    {
      "alias": "Line1",
      "index": 1,
      "key_assignment": {
        "display_name": "Test 123",
        "extension_id": "TO586CYlQFC_WCUvPRXytA",
        "extension_number": "1000001004",
        "phone_number": "+12058945795",
        "retrieval_code": "*801",
        "speed_dial_number": "123456"
      },
      "line_key_id": "BH9SHc4YTnWqQ9u0LC3kkg",
      "outbound_caller_id": "+18108001001",
      "type": "line"
    }
  ]
}
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Batch update line key position and settings information

  • Method: PATCH
  • Path: /phone/extension/{extensionId}/line_keys
  • Tags: Line Keys

Use this API to batch update the Zoom Phone line key settings information.

Prerequisites:

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:write:admin,phone:write

Granular Scopes: phone:update:line_keys,phone:update:line_keys:admin

Rate Limit Label: Light

Request Body

Content-Type: application/json
  • line_keys

    array — The line key position.

    Items:

    • alias

      string — The user-defined display name for each line key of the device. The alias can be up to 32 characters in length.

    • index

      integer — The order of the line key on the phone.

    • key_assignment

      object — The line key assignment information.

      • extension_id

        string — The extension ID of the line assigned to the line key.

      • retrieval_code

        string — The call park retrieval code for `call_park` line key type.

      • speed_dial_number

        string — The speed dial number used for `speed_dial_number` line key type.

    • line_key_id

      string — The line key ID.

    • outbound_caller_id

      string — The mapping ID of the parameter `outbound_caller_number`. Hides the caller ID if set to `anonymous`.

    • type

      string, possible values: "line", "blf", "speed_dial", "zoom_meeting", "call_park", "group_call_pickup" — The line key type. `line`: Line/Shared line access/Shared line group. `blf`: Busy lamp field. `speed_dial`: Speed-dial a phone number. `zoom_meeting`: Desk phone companion mode. `call_park`: Call park. Users don't need to dial the retrieval codes with this setting. `group_call_pickup`: Pick up inbound calls for call pickup groups.

Example:

{
  "line_keys": [
    {
      "line_key_id": "BH9SHc4YTnWqQ9u0LC3kkg",
      "index": 1,
      "type": "line",
      "key_assignment": {
        "extension_id": "TO586CYlQFC_WCUvPRXytA",
        "speed_dial_number": "123456",
        "retrieval_code": "*802"
      },
      "alias": "Line 1",
      "outbound_caller_id": "+18108001001"
    }
  ]
}

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Line keys and positions updated successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Line key ID does not exist: {0}. <br> Line key type is invalid: {0}.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Delete a line key setting.

  • Method: DELETE
  • Path: /phone/extension/{extensionId}/line_keys/{lineKeyId}
  • Tags: Line Keys

Use this API to delete the Zoom Phone line key settings information.

Prerequisites:

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:write:admin,phone:write

Granular Scopes: phone:delete:line_keys,phone:delete:line_keys:admin

Rate Limit Label: Light

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** The line key has been deleted successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Line key ID does not exist: {0}.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get a list of monitoring groups on an account

  • Method: GET
  • Path: /phone/monitoring_groups
  • Tags: Monitoring Groups

Returns an account's monitoring group list.

Prerequisites:

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:read:admin

Granular Scopes: phone:read:list_monitoring_groups:admin

Rate Limit Label: MEDIUM

Responses

Status: 200 **HTTP Status Code:** `200` Account monitoring groups list returned.
Content-Type: application/json
  • monitoring_groups

    array

    Items:

    • id

      string — The monitoring group ID.

    • monitor_members_count

      integer — The number of monitors.

    • monitored_members_count

      integer — The number of monitored users.

    • monitoring_privileges

      array — This field sets the group's monitoring privileges.

      Items:

      string, possible values: "listen", "whisper", "barge", "take_over"

    • name

      string — The monitoring instance name.

    • prompt

      boolean — Whether to play a disclaimer prompt to the call participants

    • site

      object — The site of the monitoring group.

      • id

        string — The site ID.

      • name

        string — The site name.

    • type

      integer, possible values: 1, 2, 3, 4 — The monitoring type. * `1` &mdash; Users &amp; Common Areas. * `2` &mdash; Call Queues. * `3` &mdash; Shared Line Group. * `4` &mdash; Shared Line Appearance.

  • next_page_token

    string — The current page number of returned records.

  • page_size

    integer — The size of the page.

  • total_records

    integer — The total number of records available across all pages.

Example:

{
  "monitoring_groups": [
    {
      "id": "oDmRjKVTRymXGMtgtBK2Sg",
      "monitor_members_count": 1,
      "monitored_members_count": 1,
      "monitoring_privileges": [
        "listen"
      ],
      "name": "pbx_api_test_uacap",
      "prompt": true,
      "site": {
        "id": "8f71O6rWT8KFUGQmJIFAdQ",
        "name": "Main Site"
      },
      "type": 1
    }
  ],
  "next_page_token": "ICF5K4lVmGG4kyIyGxSfBU2LH4QQG95cn32",
  "page_size": 30,
  "total_records": 1
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> The next page token is invalid or expired. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Create a monitoring group

  • Method: POST
  • Path: /phone/monitoring_groups
  • Tags: Monitoring Groups

Creates a monitoring group.

Prerequisites:

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:write:admin

Granular Scopes: phone:write:monitoring_group:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • monitoring_privileges

    array — This field sets monitoring group's privileges.

    Items:

    string, possible values: "listen", "whisper", "barge", "take_over"

  • name

    string — The monitoring group's name.

  • prompt

    boolean — Whether to play a disclaimer prompt to the call participants.

  • site_id

    string — The unique identifier of the monitoring group's site.

  • type

    integer, possible values: 1, 2, 3, 4 — The monitoring type. * `1` &mdash; Users &amp; Common Areas. * `2` &mdash; Call Queues. * `3` &mdash; Shared Line Group. * `4` &mdash; Shared Line Appearance.

Example:

{
  "monitoring_privileges": [
    "listen"
  ],
  "name": "pbx_api_test_uacap",
  "prompt": true,
  "site_id": "8f71O6rWT8KFUGQmJIFAdQ",
  "type": 1
}

Responses

Status: 201 **HTTP Status Code:** `201` Monitoring created.
Content-Type: application/json
  • id

    string — The monitoring group ID.

  • name

    string — The monitoring group's name.

Example:

{
  "id": "oDmRjKVTRymXGMtgtBK2Sg",
  "name": "pbx_api_test_uacap"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Name is required. Type is required Site ID is required. The privilege does not exist. Type should be `1`, `2`, or `3`. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get monitoring group by ID

  • Method: GET
  • Path: /phone/monitoring_groups/{monitoringGroupId}
  • Tags: Monitoring Groups

Returns a monitoring group for the specified ID.

Prerequisites:

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:read:admin

Granular Scopes: phone:read:monitoring_group:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` Monitoring returned.
Content-Type: application/json
  • id

    string — The monitoring group ID.

  • monitor_members_count

    integer — The number of monitors.

  • monitored_members_count

    integer — The number of monitored users.

  • monitoring_privileges

    array — This field sets the group's monitoring privileges.

    Items:

    string, possible values: "listen", "whisper", "barge", "take_over"

  • name

    string — The monitoring group's name.

  • prompt

    boolean — Whether to play a disclaimer prompt to the call participants.

  • site

    object — The site of monitoring group.

    • id

      string — The site ID.

    • name

      string — The site name.

  • type

    integer, possible values: 1, 2, 3, 4 — The monitoring type. * `1` &mdash; Users &amp; Common Areas. * `2` &mdash; Call Queues. * `3` &mdash; Shared Line Group. * `4` &mdash; Shared Line Appearance.

Example:

{
  "id": "oDmRjKVTRymXGMtgtBK2Sg",
  "monitor_members_count": 1,
  "monitored_members_count": 1,
  "monitoring_privileges": [
    "listen"
  ],
  "name": "pbx_api_test_uacap",
  "prompt": true,
  "site": {
    "id": "8f71O6rWT8KFUGQmJIFAdQ",
    "name": "Main Site"
  },
  "type": 1
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `404` <br> The group does not exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Delete a monitoring group

  • Method: DELETE
  • Path: /phone/monitoring_groups/{monitoringGroupId}
  • Tags: Monitoring Groups

Use this API to delete a Monitoring Group.

Prerequisites:

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:write:admin

Granular Scopes: phone:delete:monitoring_group:admin

Rate Limit Label: Light

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Monitoring group deleted.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `404` <br> The group does not exist.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update a monitoring group

  • Method: PATCH
  • Path: /phone/monitoring_groups/{monitoringGroupId}
  • Tags: Monitoring Groups

Use this API to update a Monitoring Group.

Prerequisites:

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:write:admin

Granular Scopes: phone:update:monitoring_group:admin

Rate Limit Label: Light

Request Body

Content-Type: application/json
  • monitoring_privileges

    array — Set of monitoring group's privileges.

    Items:

    string, possible values: "listen", "whisper", "barge", "take_over"

  • name

    string — Monitoring group's name.

  • prompt

    boolean — Whether Play a disclaimer prompt to the call participants

  • site_id

    string — Unique identifier of the monitoring group's site.

Example:

{
  "monitoring_privileges": [
    "take_over"
  ],
  "name": "testUpdateName",
  "prompt": false,
  "site_id": "NjHmTu16Qfe8yOiNJuekXA"
}

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Monitoring group updated.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> The privilege does not exist. **Error Code:** `404` <br> The group does not exist.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get members of a monitoring group

  • Method: GET
  • Path: /phone/monitoring_groups/{monitoringGroupId}/monitor_members
  • Tags: Monitoring Groups

Use this API to return members list of a Monitoring Group.

Prerequisites:

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:read:admin

Granular Scopes: phone:read:list_monitoring_group_members:admin

Rate Limit Label: Medium

Responses

Status: 200 **HTTP Status Code:** `200` Members in a monitoring group returned.
Content-Type: application/json
  • members

    array

    Items:

    • display_name

      string — Member name.

    • extension_id

      string — Extension ID.

    • extension_number

      integer, format: int64 — Extension number.

    • extension_type

      string, possible values: "user", "call_queue", "shared_line_group", "common_area_phone" — Extension type

  • next_page_token

    string — The current page number of returned records.

  • page_size

    integer — The number of records returned within a single API call.

  • total_records

    integer — The number of records

Example:

{
  "members": [
    {
      "display_name": "testUser",
      "extension_id": "JpjPXizWTz-l35tFRUK3Gg",
      "extension_number": 10010,
      "extension_type": "user"
    }
  ],
  "next_page_token": "ICF5K4lVmGG4kyIyGxSfBU2LH4QQG95cn32",
  "page_size": 30,
  "total_records": 1
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Missing 'member_type'. The next page token is invalid or expired.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Add members to a monitoring group

  • Method: POST
  • Path: /phone/monitoring_groups/{monitoringGroupId}/monitor_members
  • Tags: Monitoring Groups

Use this API to add members to a Monitoring Group.

Prerequisites:

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:write:admin

Granular Scopes: phone:write:monitoring_group_member:admin

Rate Limit Label: Light

Request Body

Content-Type: application/json

Array of:

string — Monitor's extension ID

Example:

[
  "JpjPXizWTz-l35tFRUK3Gg"
]

Responses

Status: 201 **HTTP Status Code:** `201` Add members to a monitoring group.
Content-Type: application/json

Example:

null
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> The maximum number of monitors is 100. The maximum number of monitored is 100. The group does not exist. **Error Code:** `409` <br> Cannot create group. 'member_type' member(s) already exist(s) in current monitoring group. Cannot create group. 'member_type' member(s) already exist(s) in other monitoring group.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Remove all monitors or monitored members from a monitoring group

  • Method: DELETE
  • Path: /phone/monitoring_groups/{monitoringGroupId}/monitor_members
  • Tags: Monitoring Groups

Use this API to remove all monitor or monitored members from a Monitoring Group.

Prerequisites:

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:write:admin

Granular Scopes: phone:delete:monitoring_group_member:admin

Rate Limit Label: Light

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Remove all monitor or monitored members from a monitoring group.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `404` <br> The group does not exist.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Remove a member from a monitoring group

  • Method: DELETE
  • Path: /phone/monitoring_groups/{monitoringGroupId}/monitor_members/{memberExtensionId}
  • Tags: Monitoring Groups

Use this API to remove a member from a Monitoring Group.

Prerequisites:

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:write:admin

Granular Scopes: phone:delete:monitoring_group_member:admin

Rate Limit Label: Light

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Remove a member from a monitoring group.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `404` <br> The group does not exist.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get common area level outbound calling countries and regions

  • Method: GET
  • Path: /phone/common_areas/{commonAreaId}/outbound_calling/countries_regions
  • Tags: Outbound Calling

Returns the common area level outbound calling countries and regions.

Prerequisites:

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:read:admin

Granular Scopes: phone:read:common_area_outbound_calling_rule:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` Outbound calling country regions returned.
Content-Type: application/json
  • countries_regions

    array

    Items:

    • code

      integer — The country code.

    • enabled_carrier

      array — The enabled carrier, which could be "ZOOM" or "BYOC".

      Items:

      string

    • iso_code

      string — The [country ISO code](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries).

    • name

      string — The country name.

    • rule

      integer, possible values: 1, 2, 3, 4 — The default outbound calling rule. `1` Allowed `2` Blocked `3` Requires local number, caller ID, or plan `4` Requires the extension number and PIN code

  • next_page_token

    string — The next page token paginates through large set of results. It returns whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • page_size

    integer, default: 30 — The total number of records from a single API call.

Example:

{
  "countries_regions": [
    {
      "name": "United States",
      "code": 1,
      "iso_code": "US",
      "rule": 1,
      "enabled_carrier": [
        "ZOOM"
      ]
    }
  ],
  "next_page_token": "uBTK3NzNksdkuCUAQaFVFd86kyOr59zg4U2",
  "page_size": 30
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `13504` <br> You do not enable the outbound calling policy setting. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `124` <br> Requires an access token. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `13500` <br> The common area does not exist: {commonAreaId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update common area level outbound calling countries or regions

  • Method: PATCH
  • Path: /phone/common_areas/{commonAreaId}/outbound_calling/countries_regions
  • Tags: Outbound Calling

Updates the common area level outbound calling policy country or region.

Prerequisite:

  • Account must have a Pro or a higher plan with a Zoom Phone license.

Scopes: phone:write:admin

Granular Scopes: phone:update:common_area_outbound_calling_rule:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • country_regions

    array

    Items:

    • delete_existing_exception_rules

      boolean — Whether to delete existing exception rules. This field only appears when the default outbound calling rule is changed. The default value is `false`.

    • iso_code

      string — The [country ISO code](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries).

    • rule

      integer, possible values: 1, 2, 3, 4 — The default outbound calling rule. `1` - Allowed `2` - Blocked `3` - Requires local number, caller ID, or plan `4` - Requires the extension number and PIN code

Example:

{
  "country_regions": [
    {
      "iso_code": "US",
      "rule": 1,
      "delete_existing_exception_rules": false
    }
  ]
}

Responses

Status: 204 **HTTP Status Code:** `204` No Content
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `13504` <br> You do not enable the outbound calling policy setting. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `124` <br> Requires an access token. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `13500` <br> The common area does not exist: {commonAreaId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List common area level outbound calling exception rules

  • Method: GET
  • Path: /phone/common_areas/{commonAreaId}/outbound_calling/exception_rules
  • Tags: Outbound Calling

Lists the common area level outbound calling policy exception rules.

Prerequisite:

  • Pro or higher account plan with Zoom phone license

Scopes: phone:read:admin

Granular Scopes: phone:read:common_area_outbound_calling_rule:admin

Rate Limit Label: MEDIUM

Responses

Status: 200 **HTTP Status Code:** `200` **OK** List outbound calling exception rules successfully.
Content-Type: application/json
  • exception_rules

    array

    Items:

    • comment

      string — A comment to help identify the exception rule number or prefix.

    • id

      string — The exception rule ID.

    • match_type

      string, possible values: "phoneNumber", "prefix" — The match type for the exception rule: `phoneNumber`and `prefix`.

    • prefix_number

      string — The exception rule phone number prefix or the phone number without country code.

    • rule

      integer, possible values: 1, 2, 3, 4 — The exception rule type `1` - allowed, `2` - blocked, `3` - require local number, caller ID or plan, `4` - require to enter the extension number and PIN code.

    • status

      string, possible values: "active", "inactive" — Whether the exception rule is active or inactive. `active`: The exception rule is active. `inactive`: The exception rule is inactive.

  • next_page_token

    string — The next page token paginates through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • page_size

    integer, default: 30 — The total number of records in a single API call.

Example:

{
  "exception_rules": [
    {
      "id": "2ypsHHwTTFK-fzZJkudYwA",
      "match_type": "prefix",
      "prefix_number": "20665558945",
      "rule": 1,
      "comment": "test",
      "status": "active"
    }
  ],
  "next_page_token": "uBTK3NzNksdkuCUAQaFVFd86kyOr59zg4U2",
  "page_size": 30
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `13504` <br> You do not enable the outbound calling policy setting. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `124` <br> Requires an access token. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `13000` <br> The common area does not exist: {commonAreaId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Add common area level outbound calling exception rule

  • Method: POST
  • Path: /phone/common_areas/{commonAreaId}/outbound_calling/exception_rules
  • Tags: Outbound Calling

Adds the common area level outbound calling policy exception rule for the country region.

Prerequisites:

  • Pro or a higher account with Zoom Phone license
  • Account owner or admin permissions

Scopes: phone:write:admin

Granular Scopes: phone:write:common_area_outbound_calling_rule:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • exception_rule

    object

    • country (required)

      string — The [country ISO code](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries).

    • match_type (required)

      string, possible values: "phoneNumber", "prefix" — The match type for the exception rule: `phoneNumber` `prefix`

    • prefix_number (required)

      string — The exception rule for the phone number prefix or the phone number without the country code.

    • status (required)

      string, possible values: "active", "inactive" — Whether the exception rule is active or inactive. `active`: The exception rule is active. `inactive`: The exception rule is inactive.

    • comment

      string — A comment that identifies the exception rule number or the prefix.

Example:

{
  "exception_rule": {
    "match_type": "prefix",
    "prefix_number": "20665558945",
    "comment": "test",
    "status": "active",
    "country": "US"
  }
}

Responses

Status: 201 **HTTP Status Code:** `201` **Created** Created successfully.
Content-Type: application/json
  • exception_rule_id

    string — The IDs of the exception rules.

Example:

{
  "exception_rule_id": "jE1rtyf0Tx6N86L4pBYV4Q"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `13504` <br> You do not enable the outbound calling policy setting. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `124` <br> Requires an access token. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `13500` <br> The common area does not exist: {commonAreaId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Delete common area level outbound calling exception rule

  • Method: DELETE
  • Path: /phone/common_areas/{commonAreaId}/outbound_calling/exception_rules/{exceptionRuleId}
  • Tags: Outbound Calling

Deletes the common area level outbound calling exception rule. Prerequisites:

  • Pro or a higher account with Zoom Phone license
  • Account owner or admin permissions

Scopes: phone:write:admin

Granular Scopes: phone:delete:common_area_outbound_calling_rule:admin

Rate Limit Label: LIGHT

Responses

Status: 204 **HTTP Status Code:** `204` **No Content**
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `13504` <br> You do not enable the outbound calling policy setting. <br> **Error Code:** `13508` <br> The exception rule ID has one more record in the DB: {exceptionRuleId}. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `124` <br> Requires an access token. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `13500` <br> The common area does not exist: {commonAreaId}. <br> **Error Code:** `13507` <br> The exception rule does not exist: {exceptionRuleId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update common area level outbound calling exception rule

  • Method: PATCH
  • Path: /phone/common_areas/{commonAreaId}/outbound_calling/exception_rules/{exceptionRuleId}
  • Tags: Outbound Calling

Updates the common area level outbound calling policy for the country region exception rule.

Prerequisites:

  • Pro or a higher account with Zoom Phone license
  • Account owner or admin permissions

Scopes: phone:write:admin

Granular Scopes: phone:update:common_area_outbound_calling_rule:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • exception_rule

    object

    • country (required)

      string — The [country ISO code](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries).

    • match_type (required)

      string, possible values: "phoneNumber", "prefix" — The match type for the exception rule. The values are `phoneNumber` or `prefix`.

    • prefix_number (required)

      string — The exception rule phone number prefix or the phone number without the country code.

    • status (required)

      string, possible values: "active", "inactive" — Whether the exception rule is active or inactive. `active`: The exception rule is active. `inactive`: The exception rule is inactive.

    • comment

      string — A comment to identify the exception rule number or prefix.

Example:

{
  "exception_rule": {
    "match_type": "prefix",
    "prefix_number": "20665558945",
    "comment": "test",
    "status": "active",
    "country": "US"
  }
}

Responses

Status: 204 **HTTP Status Code:** `204` No Content
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `13504` <br> You do not enable the outbound calling policy setting. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `124` <br> Requires an access token. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `13500` <br> The common area does not exist: {commonAreaId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get account level outbound calling countries and regions

  • Method: GET
  • Path: /phone/outbound_calling/countries_regions
  • Tags: Outbound Calling

Returns the account level outbound calling countries and regions.

Prerequisites:

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:read:admin

Granular Scopes: phone:read:list_outbound_calling_rules:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` Outbound calling country regions returned.
Content-Type: application/json
  • countries_regions

    array

    Items:

    • code

      integer — The country code.

    • enabled_carrier

      array — The enabled carrier, which could be "ZOOM" or "BYOC".

      Items:

      string

    • iso_code

      string — The [country ISO code](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries).

    • name

      string — The country name.

    • rule

      integer, possible values: 1, 2, 3, 4 — The default outbound calling rule. `1` Allowed `2` Blocked `3` Requires local number, caller ID, or plan `4` Requires the extension number and PIN code

  • next_page_token

    string — The next page token paginates through large set of results. A next page token returns whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • page_size

    integer, default: 30 — The total number of records in a single API call.

Example:

{
  "countries_regions": [
    {
      "name": "United States",
      "code": 1,
      "iso_code": "US",
      "rule": 1,
      "enabled_carrier": [
        "ZOOM"
      ]
    }
  ],
  "next_page_token": "uBTK3NzNksdkuCUAQaFVFd86kyOr59zg4U2",
  "page_size": 30
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `13504` <br> You do not enable the outbound calling policy setting. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `124` <br> Requires an access token. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update account level outbound calling countries or regions

  • Method: PATCH
  • Path: /phone/outbound_calling/countries_regions
  • Tags: Outbound Calling

Updates the account level outbound calling policy country or region.

Prerequisite:

  • Account must have a Pro or a higher plan with a Zoom Phone license.

Scopes: phone:write:admin

Granular Scopes: phone:update:outbound_calling_rule:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • country_regions

    array

    Items:

    • delete_existing_exception_rules

      boolean — Whether to delete existing exception rules. This field only appears when the default outbound calling rule is changed. The default value is `false`.

    • iso_code

      string — The [country ISO code](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries).

    • rule

      integer, possible values: 1, 2, 3, 4 — The default outbound calling rule. `1` - Allowed `2` - Blocked `3` - Requires local number, caller ID, or plan `4` - Requires the extension number and PIN code

Example:

{
  "country_regions": [
    {
      "iso_code": "US",
      "rule": 1,
      "delete_existing_exception_rules": false
    }
  ]
}

Responses

Status: 204 **HTTP Status Code:** `204` No Content
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `13504` <br> You do not enable the outbound calling policy setting. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `124` <br> Requires an access token. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List account level outbound calling exception rules

  • Method: GET
  • Path: /phone/outbound_calling/exception_rules
  • Tags: Outbound Calling

Lists the account level outbound calling policy exception rules.

Prerequisite:

  • Pro or higher account plan with Zoom phone license

Scopes: phone:read:admin

Granular Scopes: phone:read:list_outbound_calling_rules:admin

Rate Limit Label: MEDIUM

Responses

Status: 200 **HTTP Status Code:** `200` **OK** List outbound calling exception rules successfully.
Content-Type: application/json
  • exception_rules

    array

    Items:

    • comment

      string — A comment to identify the exception rule number or the prefix.

    • id

      string — The exception rule ID.

    • match_type

      string, possible values: "phoneNumber", "prefix" — The match type for the exception rule. The values are `phoneNumber`or `prefix`.

    • prefix_number

      string — The exception rule phone number prefix or the phone number without the country code.

    • rule

      integer, possible values: 1, 2, 3, 4 — The exception rule type. `1` - Allowed `2` - Blocked `3` - Requires local number, caller ID, or plan `4` - Requires the extension number and PIN code

    • status

      string, possible values: "active", "inactive" — Whether the exception rule is active or inactive. `active`: The exception rule is active. `inactive`: The exception rule is inactive.

  • next_page_token

    string — The next page token paginates through a large set of results. It returns whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • page_size

    integer, default: 30 — The total number of records in a single API call.

Example:

{
  "exception_rules": [
    {
      "id": "2ypsHHwTTFK-fzZJkudYwA",
      "match_type": "prefix",
      "prefix_number": "20665558945",
      "rule": 1,
      "comment": "test",
      "status": "active"
    }
  ],
  "next_page_token": "uBTK3NzNksdkuCUAQaFVFd86kyOr59zg4U2",
  "page_size": 30
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `13504` <br> You do not enable the outbound calling policy setting. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `124` <br> Requires an access token. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Add account level outbound calling exception rule

  • Method: POST
  • Path: /phone/outbound_calling/exception_rules
  • Tags: Outbound Calling

Adds the account level outbound calling policy exception rule for country region.

Prerequisites:

  • Pro or a higher account with Zoom Phone license
  • Account owner or admin permissions

Scopes: phone:write:admin

Granular Scopes: phone:write:outbound_calling_rule:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • exception_rule

    object

    • country (required)

      string — The [country ISO code](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries).

    • match_type (required)

      string, possible values: "phoneNumber", "prefix" — The match type for the exception rule: `phoneNumber` `prefix`

    • prefix_number (required)

      string — The exception rule phone number prefix or phone number without the country code.

    • status (required)

      string, possible values: "active", "inactive" — Whether the exception rule is active or inactive. `active`: The exception rule is active. `inactive`: The exception rule is inactive.

    • comment

      string — A comment that identifies the exception rule number or prefix.

Example:

{
  "exception_rule": {
    "match_type": "prefix",
    "prefix_number": "20665558945",
    "comment": "test",
    "status": "active",
    "country": "US"
  }
}

Responses

Status: 201 **HTTP Status Code:** `201` **Created** Created successfully.
Content-Type: application/json
  • exception_rule_id

    string — The IDs of the exception rules.

Example:

{
  "exception_rule_id": "jE1rtyf0Tx6N86L4pBYV4Q"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `13504` <br> You do not enable the outbound calling policy setting. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `124` <br> Requires an access token. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Delete account level outbound calling exception rule

  • Method: DELETE
  • Path: /phone/outbound_calling/exception_rules/{exceptionRuleId}
  • Tags: Outbound Calling

Deletes the account level outbound calling exception rule.

Prerequisites:

  • Pro or a higher account with Zoom Phone license
  • Account owner or admin permissions

Scopes: phone:write:admin

Granular Scopes: phone:delete:outbound_calling_rule:admin

Rate Limit Label: LIGHT

Responses

Status: 204 **HTTP Status Code:** `204` **No Content**
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `13504` <br> You do not enable the outbound calling policy setting. <br> **Error Code:** `13508` <br> The exception rule ID has one more record in the DB: {exceptionRuleId}. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `124` <br> Requires an access token. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `13507` <br> The exception rule does not exist: {exceptionRuleId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update account level outbound calling exception rule

  • Method: PATCH
  • Path: /phone/outbound_calling/exception_rules/{exceptionRuleId}
  • Tags: Outbound Calling

Updates the account level outbound calling policy for the country region exception rule.

Prerequisites:

  • Pro or a higher account with Zoom Phone license
  • Account owner or admin permissions

Scopes: phone:write:admin

Granular Scopes: phone:update:outbound_calling_rule:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • exception_rule

    object

    • country (required)

      string — The [country ISO code](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries).

    • match_type (required)

      string, possible values: "phoneNumber", "prefix" — The match type for the exception rule, The values are `phoneNumber` or `prefix`.

    • prefix_number (required)

      string — The exception rule phone number prefix or the phone number without country code.

    • status (required)

      string, possible values: "active", "inactive" — Whether the exception rule is active or inactive. `active`: The exception rule is active. `inactive`: The exception rule is inactive.

    • comment

      string — A comment to identify the exception rule number or prefix.

Example:

{
  "exception_rule": {
    "match_type": "prefix",
    "prefix_number": "20665558945",
    "comment": "test",
    "status": "active",
    "country": "US"
  }
}

Responses

Status: 204 **HTTP Status Code:** `204` No Content
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `13504` <br> You do not enable the outbound calling policy setting. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `124` <br> Requires an access token. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get site level outbound calling countries and regions

  • Method: GET
  • Path: /phone/sites/{siteId}/outbound_calling/countries_regions
  • Tags: Outbound Calling

Returns the site level outbound calling countries and regions.

Prerequisites:

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:read:admin

Granular Scopes: phone:read:site_outbound_calling_rule:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` Outbound calling country regions returned.
Content-Type: application/json
  • countries_regions

    array

    Items:

    • code

      integer — The country code.

    • enabled_carrier

      array — The enabled carrier, which could be "ZOOM" or "BYOC".

      Items:

      string

    • iso_code

      string — The country ISO code.

    • name

      string — The country name.

    • rule

      integer, possible values: 1, 2, 3, 4 — The default outbound calling rule. `1` Allowed `2` Blocked `3` Requires local number, caller ID, or plan `4` Requires the extension number and PIN code

  • next_page_token

    string — The next page token paginates through large set of results. It returns whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • page_size

    integer, default: 30 — The total number of records in a single API call.

Example:

{
  "countries_regions": [
    {
      "name": "United States",
      "code": 1,
      "iso_code": "US",
      "rule": 1,
      "enabled_carrier": [
        "ZOOM"
      ]
    }
  ],
  "next_page_token": "uBTK3NzNksdkuCUAQaFVFd86kyOr59zg4U2",
  "page_size": 30
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `13504` <br> You do not enable the outbound calling policy setting. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `124` <br> Requires an access token. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `13500` <br> The site does not exist: {siteId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update site level outbound calling countries or regions

  • Method: PATCH
  • Path: /phone/sites/{siteId}/outbound_calling/countries_regions
  • Tags: Outbound Calling

Updates the site level outbound calling policy country or region.

Prerequisites:

  • Account must have a Pro or a higher plan with a Zoom Phone license.

Scopes: phone:write:admin

Granular Scopes: phone:update:site_outbound_calling_rule:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • country_regions

    array

    Items:

    • delete_existing_exception_rules

      boolean — Whether to delete existing exception rules. This field only appears when the default outbound calling rule is changed. The default value is `false`.

    • iso_code

      string — The [country ISO code](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries).

    • rule

      integer, possible values: 1, 2, 3, 4 — The default outbound calling rule. `1` - Allowed `2` - Blocked `3` - Requires local number, caller ID, or plan `4` - Requires the extension number and PIN code

Example:

{
  "country_regions": [
    {
      "iso_code": "US",
      "rule": 1,
      "delete_existing_exception_rules": false
    }
  ]
}

Responses

Status: 204 **HTTP Status Code:** `204` No Content
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `13504` <br> You do not enable the outbound calling policy setting. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `124` <br> Requires an access token. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `13500` <br> The site does not exist: {siteId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List site level outbound calling exception rules

  • Method: GET
  • Path: /phone/sites/{siteId}/outbound_calling/exception_rules
  • Tags: Outbound Calling

Returns a list of site level outbound calling policy exception rules.

Prerequisite:

  • Pro or higher account plan with Zoom phone license

Scopes: phone:read:admin

Granular Scopes: phone:read:site_outbound_calling_rule:admin

Rate Limit Label: MEDIUM

Responses

Status: 200 **HTTP Status Code:** `200` **OK** List outbound calling exception rules successfully.
Content-Type: application/json
  • exception_rules

    array

    Items:

    • comment

      string — A comment to help you identify the exception rule number or prefix.

    • id

      string — The exception rule ID.

    • match_type

      string, possible values: "phoneNumber", "prefix" — The match type for the exception rule: `phoneNumber`and `prefix`.

    • prefix_number

      string — The exception rule phone number prefix or phone number without country code.

    • rule

      integer, possible values: 1, 2, 3, 4 — The exception rule type `1` - allowed, `2` - blocked, `3` - require local number, caller ID or plan, `4` - require to enter the extension number and PIN code.

    • status

      string, possible values: "active", "inactive" — Whether the exception rule is active or inactive. `active`: The exception rule is active. `inactive`: The exception rule is inactive.

  • next_page_token

    string — The next page token paginates through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • page_size

    integer, default: 30 — The total number of records in single API call.

Example:

{
  "exception_rules": [
    {
      "id": "2ypsHHwTTFK-fzZJkudYwA",
      "match_type": "prefix",
      "prefix_number": "20665558945",
      "rule": 1,
      "comment": "test",
      "status": "active"
    }
  ],
  "next_page_token": "uBTK3NzNksdkuCUAQaFVFd86kyOr59zg4U2",
  "page_size": 30
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `13504` <br> You do not enable the outbound calling policy setting. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `124` <br> Requires an access token. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `13000` <br> The site does not exist: {siteId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Add site level outbound calling exception rule

  • Method: POST
  • Path: /phone/sites/{siteId}/outbound_calling/exception_rules
  • Tags: Outbound Calling

Adds the site level outbound calling policy exception rule for the country region.

Prerequisites:

  • Pro or a higher account with Zoom Phone license
  • Account owner or admin permissions

Scopes: phone:write:admin

Granular Scopes: phone:write:site_outbound_calling_rule:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • exception_rule

    object

    • country (required)

      string — The [country ISO code](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries).

    • match_type (required)

      string, possible values: "phoneNumber", "prefix" — The match type for the exception rule. `phoneNumber` `prefix`

    • prefix_number (required)

      string — The exception rule phone number prefix or the phone number without country code.

    • status (required)

      string, possible values: "active", "inactive" — Whether the exception rule is active or inactive. `active`: The exception rule is active. `inactive`: The exception rule is inactive.

    • comment

      string — A comment that identifies the exception rule number or the prefix.

Example:

{
  "exception_rule": {
    "match_type": "prefix",
    "prefix_number": "20665558945",
    "comment": "test",
    "status": "active",
    "country": "US"
  }
}

Responses

Status: 201 **HTTP Status Code:** `201` **Created** Created successfully.
Content-Type: application/json
  • exception_rule_id

    string — The IDs of the exception rules.

Example:

{
  "exception_rule_id": "jE1rtyf0Tx6N86L4pBYV4Q"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `13504` <br> You do not enable the outbound calling policy setting. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `124` <br> Requires an access token. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `13500` <br> The site does not exist: {siteId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Delete site level outbound calling exception rule

  • Method: DELETE
  • Path: /phone/sites/{siteId}/outbound_calling/exception_rules/{exceptionRuleId}
  • Tags: Outbound Calling

Deletes the site level outbound calling exception rule.

Prerequisites:

  • Pro or a higher account with Zoom Phone license
  • Account owner or admin permissions

Scopes: phone:write:admin

Granular Scopes: phone:delete:site_outbound_calling_rule:admin

Rate Limit Label: LIGHT

Responses

Status: 204 **HTTP Status Code:** `204` **No Content**
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `13504` <br> You do not enable the outbound calling policy setting. <br> **Error Code:** `13508` <br> The exception rule ID has one more record in the DB: {exceptionRuleId}. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `124` <br> Requires an access token. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `13500` <br> The site does not exist: {siteId}. <br> **Error Code:** `13507` <br> The exception rule does not exist: {exceptionRuleId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update site level outbound calling exception rule

  • Method: PATCH
  • Path: /phone/sites/{siteId}/outbound_calling/exception_rules/{exceptionRuleId}
  • Tags: Outbound Calling

Updates the site level outbound calling policy for the country region exception rule.

Prerequisites:

  • Pro or a higher account with Zoom Phone license
  • Account owner or admin permissions

Scopes: phone:write:admin

Granular Scopes: phone:update:site_outbound_calling_rule:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • exception_rule

    object

    • country (required)

      string — The [country ISO code](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries).

    • match_type (required)

      string, possible values: "phoneNumber", "prefix" — The match type for the exception rule. The values are `phoneNumber` or `prefix`.

    • prefix_number (required)

      string — The exception rule phone number prefix or the phone number without the country code.

    • status (required)

      string, possible values: "active", "inactive" — Whether the exception rule is active or inactive. `active`: The exception rule is active. `inactive`: The exception rule is inactive.

    • comment

      string — A comment to identify the exception rule number or prefix.

Example:

{
  "exception_rule": {
    "match_type": "prefix",
    "prefix_number": "20665558945",
    "comment": "test",
    "status": "active",
    "country": "US"
  }
}

Responses

Status: 204 **HTTP Status Code:** `204` No Content
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `13504` <br> You do not enable the outbound calling policy setting. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `124` <br> Requires an access token. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `13500` <br> The site does not exist: {siteId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get user level outbound calling countries and regions

  • Method: GET
  • Path: /phone/users/{userId}/outbound_calling/countries_regions
  • Tags: Outbound Calling

Returns the user level outbound calling countries and regions.

Prerequisites:

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:read:admin

Granular Scopes: phone:read:user_outbound_calling_rule:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` Outbound calling country regions returned.
Content-Type: application/json
  • countries_regions

    array

    Items:

    • code

      integer — The country code.

    • enabled_carrier

      array — The enabled carrier, which could be "ZOOM" or "BYOC".

      Items:

      string

    • iso_code

      string — The [country ISO code](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries).

    • name

      string — The country name.

    • rule

      integer, possible values: 1, 2, 3, 4 — The default outbound calling rule. `1` Allowed `2` Blocked `3` Requires local number, caller ID, or plan `4` Requires the extension number and PIN code

  • next_page_token

    string — The next page token paginates through large set of results. The next page token returns whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • page_size

    integer, default: 30 — The total number of records in a single API call.

Example:

{
  "countries_regions": [
    {
      "name": "United States",
      "code": 1,
      "iso_code": "US",
      "rule": 1,
      "enabled_carrier": [
        "ZOOM"
      ]
    }
  ],
  "next_page_token": "uBTK3NzNksdkuCUAQaFVFd86kyOr59zg4U2",
  "page_size": 30
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `13504` <br> You do not enable the outbound calling policy setting. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `124` <br> Requires an access token. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `13500` <br> The user does not exist: {userId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update user level outbound calling countries or regions

  • Method: PATCH
  • Path: /phone/users/{userId}/outbound_calling/countries_regions
  • Tags: Outbound Calling

Updates the user level outbound calling policy country or region.

Prerequisite:

  • Account must have a Pro or a higher plan with a Zoom Phone license.

Scopes: phone:write:admin

Granular Scopes: phone:update:user_outbound_calling_rule:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • country_regions

    array

    Items:

    • delete_existing_exception_rules

      boolean — Whether to delete existing exception rules. This field only appears when the default outbound calling rule is changed. The default value is `false`.

    • iso_code

      string — The [country ISO code](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries).

    • rule

      integer, possible values: 1, 2, 3, 4 — The default outbound calling rule. `1` - Allowed `2` - Blocked `3` - Requires local number, caller ID, or plan `4` - Requires the extension number and PIN code

Example:

{
  "country_regions": [
    {
      "iso_code": "US",
      "rule": 1,
      "delete_existing_exception_rules": false
    }
  ]
}

Responses

Status: 204 **HTTP Status Code:** `204` No Content
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `13504` <br> You do not enable the outbound calling policy setting. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `124` <br> Requires an access token. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `13500` <br> The user does not exist: {userId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List user level outbound calling exception rules

  • Method: GET
  • Path: /phone/users/{userId}/outbound_calling/exception_rules
  • Tags: Outbound Calling

Returns a list of the user level outbound calling policy exception rules.

Prerequisite:

  • Pro or higher account plan with Zoom phone license

Scopes: phone:read:admin

Granular Scopes: phone:read:user_outbound_calling_rule:admin

Rate Limit Label: MEDIUM

Responses

Status: 200 **HTTP Status Code:** `200` **OK** List outbound calling exception rules successfully.
Content-Type: application/json
  • exception_rules

    array

    Items:

    • comment

      string — A comment to identify the exception rule number or prefix.

    • id

      string — The exception rule ID.

    • match_type

      string, possible values: "phoneNumber", "prefix" — The match type for the exception rule: `phoneNumber`and `prefix`.

    • prefix_number

      string — The exception rule phone number prefix or phone number without country code.

    • rule

      integer, possible values: 1, 2, 3, 4 — The exception rule type `1` - allowed, `2` - blocked, `3` - require local number, caller ID or plan, `4` - require to enter the extension number and PIN code.

    • status

      string, possible values: "active", "inactive" — Whether the exception rule is active or inactive. `active`: The exception rule is active. `inactive`: The exception rule is inactive.

  • next_page_token

    string — The next page token paginates through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • page_size

    integer, default: 30 — The total number of records returned from a single API call.

Example:

{
  "exception_rules": [
    {
      "id": "2ypsHHwTTFK-fzZJkudYwA",
      "match_type": "prefix",
      "prefix_number": "20665558945",
      "rule": 1,
      "comment": "test",
      "status": "active"
    }
  ],
  "next_page_token": "uBTK3NzNksdkuCUAQaFVFd86kyOr59zg4U2",
  "page_size": 30
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `13504` <br> You do not enable the outbound calling policy setting. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `124` <br> Requires an access token. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `13000` <br> The user does not exist: {userId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Add user level outbound calling exception rule

  • Method: POST
  • Path: /phone/users/{userId}/outbound_calling/exception_rules
  • Tags: Outbound Calling

Adds an user level outbound calling policy exception rule for the country region.

Prerequisites:

  • Pro or a higher account with Zoom Phone license
  • Account owner or admin permissions

Scopes: phone:write:admin

Granular Scopes: phone:write:user_outbound_calling_rule:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • exception_rule

    object

    • country (required)

      string — The [country ISO code](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries).

    • match_type (required)

      string, possible values: "phoneNumber", "prefix" — The match type for the exception rule. `phoneNumber` `prefix`

    • prefix_number (required)

      string — The exception rule phone number prefix or the phone number without country code.

    • status (required)

      string, possible values: "active", "inactive" — Whether the exception rule is active or inactive. `active`: The exception rule is active. `inactive`: The exception rule is inactive.

    • comment

      string — A comment that identifies the exception rule number or the prefix.

Example:

{
  "exception_rule": {
    "match_type": "prefix",
    "prefix_number": "20665558945",
    "comment": "test",
    "status": "active",
    "country": "US"
  }
}

Responses

Status: 201 **HTTP Status Code:** `201` **Created** Created successfully.
Content-Type: application/json
  • exception_rule_id

    string — The IDs of the exception rules.

Example:

{
  "exception_rule_id": "jE1rtyf0Tx6N86L4pBYV4Q"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `13504` <br> You do not enable the outbound calling policy setting. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `124` <br> Requires an access token. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `13500` <br> The user does not exist: {userId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Delete user level outbound calling exception rule

  • Method: DELETE
  • Path: /phone/users/{userId}/outbound_calling/exception_rules/{exceptionRuleId}
  • Tags: Outbound Calling

Deletes the user level outbound calling exception rule.

Prerequisites:

  • Pro or a higher account with Zoom Phone license
  • Account owner or admin permissions

Scopes: phone:write:admin

Granular Scopes: phone:delete:user_outbound_calling_rule:admin

Rate Limit Label: LIGHT

Responses

Status: 204 **HTTP Status Code:** `204` **No Content**
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `13504` <br> You do not enable the outbound calling policy setting. <br> **Error Code:** `13508` <br> The exception rule ID has one more record in the DB: {exceptionRuleId}. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `124` <br> Requires an access token. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `13500` <br> The user does not exist: {userId}. <br> **Error Code:** `13507` <br> The exception rule does not exist: {exceptionRuleId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update user level outbound calling exception rule

  • Method: PATCH
  • Path: /phone/users/{userId}/outbound_calling/exception_rules/{exceptionRuleId}
  • Tags: Outbound Calling

Updates the user level outbound calling policy for the country region exception rule.

Prerequisites:

  • Pro or a higher account with Zoom Phone license.
  • Account owner or admin permissions.

Scopes: phone:write:admin

Granular Scopes: phone:update:user_outbound_calling_rule:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • exception_rule

    object

    • country (required)

      string — The [country ISO code](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries).

    • match_type (required)

      string, possible values: "phoneNumber", "prefix" — The match type for the exception rule, The values are `phoneNumber` or `prefix`.

    • prefix_number (required)

      string — The exception rule phone number prefix or the phone number without country code.

    • status (required)

      string, possible values: "active", "inactive" — Whether the exception rule is active or inactive. `active`: The exception rule is active. `inactive`: The exception rule is inactive.

    • comment

      string — A comment to identify the exception rule number or prefix.

Example:

{
  "exception_rule": {
    "match_type": "prefix",
    "prefix_number": "20665558945",
    "comment": "test",
    "status": "active",
    "country": "US"
  }
}

Responses

Status: 204 **HTTP Status Code:** `204` No Content
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `13504` <br> You do not enable the outbound calling policy setting. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `124` <br> Requires an access token. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `13500` <br> The user does not exist: {userId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List devices

  • Method: GET
  • Path: /phone/devices
  • Tags: Phone Devices

Lists all the desk phone devices that are configured with Zoom Phone on an account.

Prerequisites:

  • Pro or a higher account with Zoom Phone license
  • Account owner or admin permissions

Scopes: phone:read:admin

Granular Scopes: phone:read:list_devices:admin

Rate Limit Label: MEDIUM

Responses

Status: 200 **HTTP Status Code:** `200` Devices listed successfully.
Content-Type: application/json
  • devices

    array

    Items:

    • assignee

      object

      • extension_number

        integer, format: int64 — The extension number of the Zoom Phone the `user` or `commonArea`uses.

      • extension_type

        string, possible values: "user", "commonArea" — The type of the assignee. It's available only if the device is assigned.

      • id

        string — The ID of the user or commonArea to whom the device has been assigned.

      • name

        string — Name.

    • assignees

      array

      Items:

      • extension_id

        string — The extension ID of the `user` or `common area`.

      • extension_number

        integer, format: int64 — The extension number of the Zoom Phone the `user` or `commonArea`uses.

      • extension_type

        string, possible values: "user", "commonArea" — The type of the assignee. It's available only if the device is assigned.

      • id

        string — The ID of the user or commonArea to whom the device has been assigned.

      • name

        string — Name.

    • description

      string — The description of the device.

    • device_type

      string — This field provides the manufacturer name and the model name.

    • display_name

      string — Display name of the device.

    • firmware_version

      string — The firmware version of the device.

    • id

      string — The device ID.

    • mac_address

      string — The MAC address or serial number of the device.

    • policy

      object — The device policy.

      • call_control

        object

        • status

          string, possible values: "unsupported", "on", "off" — This field enables the call control feature to the current device. It configures the desk phone devices to enable call control, which allows users to perform desk phone's call control actions from the Zoom desktop client, including making and accepting calls. Options include: * `unsupported` * `on` * `off`

      • hot_desking

        object

        • status

          string, possible values: "unsupported", "on", "off" — This field enables the hot desking feature to the current device. It lets the guest user sign in to the desk phone. You can't use the desk phone until the guest user signs out. Options include: * `unsupported` * `on` * `off`

    • private_ip

      string — The private IP of the registered device.

    • provision_template_id

      string — The provision template ID. It's supported only by some devices. An empty string represents 'No value set'

    • public_ip

      string — The public IP of the registered device.

    • site

      object

    • status

      string, possible values: "online", "offline" — The status of the device. The value is either `online` or `offline`.

  • next_page_token

    string — The next page token paginates through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • page_size

    integer — The number of records returned with a single API call.

  • total_records

    integer — The total number of records found for the query across all pages.

Example:

{
  "devices": [
    {
      "assignee": {
        "extension_number": 123,
        "id": "-tDdYIstSumpA0L13GztIQ",
        "name": "Pooja",
        "extension_type": "user"
      },
      "assignees": [
        {
          "extension_number": 123,
          "id": "-tDdYIstSumpA0L13GztIQ",
          "name": "Pooja",
          "extension_type": "user",
          "extension_id": "MjGXQfCxShapaxJDka7"
        }
      ],
      "device_type": "AudioCodes405",
      "display_name": "Pooja's Phone",
      "id": "-tDdYIstSumpA0L13GztIQ",
      "mac_address": "203a07240534",
      "site": {
        "id": "NjHmTu16Qfe8yOiNJuekXA",
        "name": "HQ site"
      },
      "status": "online",
      "provision_template_id": "Ke5Ghevvoo001hr",
      "description": "This device is used for testing.",
      "firmware_version": "108.86.3.9",
      "private_ip": "192.168.10.13",
      "public_ip": "220.143.231.126",
      "policy": {
        "call_control": {
          "status": "off"
        },
        "hot_desking": {
          "status": "off"
        }
      }
    }
  ],
  "next_page_token": "uBTK3NzNksdkuCUAQaFVFd86kyOr59zg4U2",
  "page_size": 30,
  "total_records": 1
}
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Add a device

  • Method: POST
  • Path: /phone/devices
  • Tags: Phone Devices

Adds an unassigned desk phone or an assigned (to a user or a common area) desk phone.

Prerequisites:

  • Pro or a higher account with Zoom Phone license
  • Account owner or admin permissions
  • Supported device

Scopes: phone:write:admin

Granular Scopes: phone:write:device:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • display_name (required)

    string — The display name of the desk phone.

  • mac_address (required)

    string — The MAC address of the desk phone. Note: If you're using a wireless phone, enter the wired MAC address, not the wireless MAC address.

  • type (required)

    string — The manufacturer (brand) name of the device.

  • assigned_to

    string — The user ID or email address of the user to whom this device will be assigned.

  • assignee_extension_ids

    array — An array of extension IDs for users or common areas.

    Items:

    string

  • model

    string — The model name of the device.

  • provision_template_id

    string — The provision template ID. Supported only by some devices. Empty string represents 'No value set'.

  • site_id

    string — The site ID required when adding an unassigned device with multi-site functionality enabled.

Example:

{
  "assigned_to": "-tDdYIstSumpA0L13GztIQ",
  "assignee_extension_ids": [
    "dsH7FaYRHy9gV4Qb8ecku"
  ],
  "display_name": "Desk Phone",
  "mac_address": "543968a78ee7",
  "model": "testModel",
  "type": "DeviceBrand",
  "provision_template_id": "Ke5Ghevvoo001hr",
  "site_id": "9gCxz-nKTzuLBWrMx3lNQw"
}

Responses

Status: 201 **HTTP Status Code:** `201` **Created** Device added successfully.
Content-Type: application/json
  • display_name

    string — The display name of the desk phone.

  • id

    string — The unique identifier of the desk phone.

Example:

{
  "id": "Q3ECfhVES-uS4mew-161rg",
  "display_name": "Desk Phone"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 404 **HTTP Status Code:** `404` <br> Not Found
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).

Sync deskphones

  • Method: POST
  • Path: /phone/devices/sync
  • Tags: Phone Devices

Use this API to resync all online zero-touch or assisted-provisioning devices in an account or a site. Only allows sending one request every 15 minutes.

Prerequisites:

  • Pro or a higher account with Zoom Phone license
  • Account owner or admin permissions

Scopes: phone:write:admin

Granular Scopes: phone:write:sync_device:admin

Rate Limit Label: Heavy

Request Body

Content-Type: application/json
  • level (required)

    integer — Deskphone sync level: 1 - account level, 2 - site level.

  • site_id

    string — Site ID.

Example:

{
  "level": 2,
  "site_id": "NjHmTu16Qfe8yOiNJuekXA"
}

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Device resync command issued.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> **Error Code:** `429` <br> Too many concurrent requests. A request has already been made.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get device details

  • Method: GET
  • Path: /phone/devices/{deviceId}
  • Tags: Phone Devices

Returns detailed information about a specific desk phone device.

Prerequisites:

  • Pro or a higher account with Zoom Phone license
  • Account owner or admin permissions

Scopes: phone:read:admin

Granular Scopes: phone:read:device:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` **OK** Device information retrieved successfully.
Content-Type: application/json
  • assignee

    object — The user to whom the device has been assigned.

    • extension_number

      integer, format: int64 — The extension number of the Zoom Phone the `user` or `commonArea` uses.

    • extension_type

      string, possible values: "user", "commonArea" — The type of the assignee. It's available only if the device is assigned.

    • id

      string — The ID of the user or common area to whom the device has been assigned.

    • name

      string — Name.

  • assignees

    array

    Items:

    • extension_id

      string — The extension ID of the `user` or `common area`.

    • extension_number

      integer, format: int64 — The extension number of the Zoom Phone the `user` or `commonArea` uses.

    • extension_type

      string, possible values: "user", "commonArea" — The type of the assignee. It's available only if the device is assigned.

    • id

      string — The ID of the user or common area to whom the device has been assigned.

    • name

      string — The name.

  • device_type

    string — This field includes the manufacturer name and the model name.

  • display_name

    string — The display name of the device.

  • id

    string — The unique identifier of the device.

  • mac_address

    string — The MAC address or serial number of the device.

  • policy

    object — The device policy.

    • call_control

      object

      • status

        string, possible values: "unsupported", "on", "off" — This field enables the call control feature to the current device. It configures the desk phone devices to enable call control, which allows users to perform desk phone's call control actions from the Zoom desktop client, including making and accepting calls. Options include: * `unsupported` * `on` * `off`

    • hot_desking

      object

      • status

        string, possible values: "unsupported", "on", "off" — This field enables the hot desking feature to the current device. It lets the guest user sign in to the desk phone. You can't use the desk phone until the guest user signs out. Options include: * `unsupported` * `on` * `off`

  • private_ip

    string — The private IP of the registered device

  • provision

    object — The provisioning information of a device.

    • sip_accounts

      array — The SIP Account details registered during the device provisioning process. This object will only be returned if manual provisioning was used for the device.

      Items:

      • authorization_id

        string — The authorization ID of the SIP account provided in the provisioning process.

      • outbound_proxy

        string — The outbound proxy provided in the provisioning process.

      • password

        string — The password entered during the provisioning process.

      • secondary_outbound_proxy

        string — The secondary outbound proxy provided in the provisioning process.

      • shared_line

        object — This field returns additional provisioning information with generic device SIP credentials.

        • alias

          string — The alias.

        • line_subscription

          object — Line subscription.

          • display_name

            string — The display name.

          • extension_number

            integer, format: int64 — The extension number.

          • phone_number

            string — The phone number.

        • outbound_caller_id

          string — The outbound caller ID.

      • sip_domain

        string — The SIP domain provided in the provisioning process.

      • user_name

        string — The user name of the SIP account provided in the provisioning process.

    • type

      string, possible values: "assisted", "ztp", "manual" — The [provisioning type](https://support.zoom.us/hc/en-us/articles/360033223411). The value can be one of the following: * `ztp` : Zero touch provisioning. * `assisted`: Assisted provisioning. * `manual`: Manual provisioning.

    • url

      string — The provisioning URL. This field will only be returned for devices that were provisioned via `assisted` provisioning type.

  • provision_template_id

    string — The provision template ID. Supported only by some devices. Empty string represents 'No value set'

  • public_ip

    string — The public IP of the registered device

  • site

    object

  • status

    string, possible values: "online", "offline" — The status of the device. The value is either `online` or `offline`.

Example:

{
  "assignee": {
    "extension_number": 123,
    "id": "i242djsgrg",
    "name": "Pooja",
    "extension_type": "user"
  },
  "assignees": [
    {
      "extension_number": 123,
      "id": "i242djsgrg",
      "name": "Pooja",
      "extension_type": "user",
      "extension_id": "bdkfdler"
    }
  ],
  "device_type": "Ribbon EdgeMarc302",
  "display_name": "Pooja's Phone",
  "id": "1234324",
  "mac_address": "203a07240534",
  "provision": {
    "sip_accounts": [
      {
        "authorization_id": "123123",
        "outbound_proxy": "123123",
        "password": "1123",
        "secondary_outbound_proxy": "proxy.example.com:5555",
        "shared_line": {
          "alias": "additional information",
          "line_subscription": {
            "display_name": "Pooja",
            "extension_number": 123123,
            "phone_number": "12059535689"
          },
          "outbound_caller_id": "+123123123"
        },
        "sip_domain": "123.zoom.us",
        "user_name": "123123"
      }
    ],
    "type": "manual",
    "url": "wwww.example.com"
  },
  "site": {
    "id": "123123",
    "name": "Main Site"
  },
  "status": "offline",
  "provision_template_id": "Ke5Ghevvoo001hr",
  "private_ip": "192.168.10.13",
  "public_ip": "220.148.231.126",
  "policy": {
    "call_control": {
      "status": "off"
    },
    "hot_desking": {
      "status": "off"
    }
  }
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Device does not exist in the system. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Delete a device

  • Method: DELETE
  • Path: /phone/devices/{deviceId}
  • Tags: Phone Devices

Remove a desk phone device or ATA (Analog Telephone Adapter) from the Zoom Phone System Management.

Prerequisites:

  • Pro or a higher account with Zoom Phone license
  • Account owner or admin permissions
  • Device must not have been assigned to a user.

Scopes: phone:write:admin

Granular Scopes: phone:delete:device:admin

Rate Limit Label: Light

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Device deleted successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update a device

  • Method: PATCH
  • Path: /phone/devices/{deviceId}
  • Tags: Phone Devices

Updates the information of a desk phone device.

Prerequisites:

  • Pro or a higher account with Zoom Phone license* Account owner or admin permissions

Scopes: phone:write:admin

Granular Scopes: phone:update:device:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • assigned_to

    string — The user ID or email address of the user assigned to this device. To retrieve the user ID and the email of the user, use the [List Users](https://marketplace.zoom.us/docs/api-reference/zoom-api/methods#operation/users) API.

  • display_name

    string — The display name of the desk phone.

  • provision_template_id

    string — The provision template ID. It's supported only by some devices. An empty string represents 'No value set'

Example:

{
  "assigned_to": "DnEopNmXQEGU2uvvzjgojw",
  "display_name": "testUser",
  "provision_template_id": "Ke5Ghevvoo001hr"
}

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Device updated successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Validation failed. Device does not exist in the system. Invalid userId. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `1001` <br> User not found: {userId} The user extension does not exist, extensionId: {extensionId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Assign an entity to a device

  • Method: POST
  • Path: /phone/devices/{deviceId}/extensions
  • Tags: Phone Devices

By default, all Zoom Phone users can make and receive calls using the Zoom desktop and mobile applications. Additionally, if a desk phone is required, use this API to add a desk phone and assign it to a user.

Prerequisites:

  • Pro or a higher account with Zoom Phone license
  • Account owner or admin permissions
  • Supported device

Scopes: phone:write:admin

Granular Scopes: phone:write:device_extension:admin

Rate Limit Label: Light

Request Body

Content-Type: application/json

Example:

{
  "assignee_extension_ids": [
    "dsH7FaYRHy9gV4Qb8ecku"
  ]
}

Responses

Status: 201 **HTTP Status Code:** `201` **Created** Assignees assigned successfully.
Content-Type: application/json

Example:

null
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `1001` <br> User extension ID or common area extension ID not found.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Unassign an entity from the device

  • Method: DELETE
  • Path: /phone/devices/{deviceId}/extensions/{extensionId}
  • Tags: Phone Devices

Use this API to unassign a specific assignee from the device.

Prerequisites:

  • Pro or a higher account with Zoom Phone license
  • Account owner or admin permissions.

Scopes: phone:write:admin

Granular Scopes: phone:delete:device_extension:admin

Rate Limit Label: Light

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Assignee unassigned successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update provision template of a device

  • Method: PUT
  • Path: /phone/devices/{deviceId}/provision_templates
  • Tags: Phone Devices

Use this API to assign a provision template to a device or remove a provision template from the device by leaving templateId empty.

Prerequisites:

  • Pro or a higher account with Zoom Phone license
  • Account owner or admin permissions
  • Supported device

Scopes: phone:write:admin

Granular Scopes: phone:update:device_provision_template:admin

Rate Limit Label: Light

Request Body

Content-Type: application/json
  • provision_template_id

    string — The provision template ID. The provision template will be removed when this field is left empty.

Example:

{
  "provision_template_id": "AbSORcqsSnqqrMD3jmZ8yw"
}

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Provision template updated successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> **Error Code:** `404` <br> Provision template does not exist.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Reboot a desk phone

  • Method: POST
  • Path: /phone/devices/{deviceId}/reboot
  • Tags: Phone Devices

Use this API to reboot an online zero-touch or assisted-provisioning device. You can only send one request every second.

Prerequisites:

  • Pro or a higher account with Zoom Phone license
  • Account owner or admin permissions.

Scopes: phone:write:admin

Granular Scopes: phone:write:reboot_device:admin

Rate Limit Label: Heavy

Responses

Status: 202 **HTTP Status Code:** `202` **Accepted** Device reboot command issued.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> The given device type does not support this action<br> *The given device is offline<br> Operation is too frequent. Please try again in a few minutes.<br><br> **Error Code:** `404` <br> Device does not exist: {accountId}.<br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List Smartphones

  • Method: GET
  • Path: /phone/smartphones
  • Tags: Phone Devices

Returns a list of all the smartphones configured with Zoom Phone on an account.

Prerequisites

  • Pro or a higher account with Zoom Phone license
  • Account owner or admin permissions

Scopes: phone:read:admin

Granular Scopes: phone:read:list_devices:admin

Rate Limit Label: LIGHT

Not supported in Gov cluster

Responses

Status: 200 **HTTP Status Code:** `200` Smartphone listed successfully.
Content-Type: application/json
  • smartphones (required)

    array — The array of the smartphones

    Items:

    • activation_status

      string, possible values: "Activated" — The activation status of the smartphone. The values of this field can be `Activated`.

    • activation_time

      string — The time of smartphone activation. If this field is null, the date not available, else this field can format: 'yyyy-MM-ddThh:dd:ssZ'.

    • assignee

      object — The assignee of the smartphone.

      • common_area_id

        string — The common area ID or common area extension ID.

      • extension_number

        integer — The extension number of the common area.

      • name

        string — The display name of the common area.

    • device_name

      string — The name of the smartphone.

    • device_type

      string — The device type of the smartphone.

    • public_ip

      string — The public IPv4 or IPv6 of the smartphone.

    • serial_number

      string — The serial number of the smartphone.

    • site

      object — The [site](https://support.zoom.com/hc/en/article?id=zm_kb&sysparm_article=KB0069716) of the smartphone.

    • smartphone_id

      string — The ID of the smartphone.

  • next_page_token

    string — The next page token paginates through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • page_size

    integer — The number of records returned with a single API call.

  • total_records

    integer — The total number of records found for the query across all pages.

Example:

{
  "smartphones": [
    {
      "smartphone_id": "3WWAEiEjTj2IQuyDiKMd_A",
      "device_name": "EC50",
      "device_type": "Zebra TechnologiesEC50S",
      "serial_number": "202355225D0174",
      "public_ip": "38.99.100.2",
      "activation_status": "Activated",
      "activation_time": "2021-10-08T16:12:04Z",
      "assignee": {
        "common_area_id": "JOZmuJ30Spyrw-v9vUzIrA",
        "name": "test_ca",
        "extension_number": 123
      },
      "site": {
        "site_id": "NjHmTu16Qfe8yOiNJuekXA",
        "name": "HQ site"
      }
    }
  ],
  "next_page_token": "uBTK3NzNksdkuCUAQaFVFd86kyOr59zg4U2",
  "page_size": 30,
  "total_records": 1
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> The next page token is invalid or expired. <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `403` <br> You do not have permission, because the current site `{site_id}` does not belong to the target sites. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Add BYOC phone numbers ⚠️ Deprecated

  • Method: POST
  • Path: /phone/byoc_numbers
  • Tags: Phone Numbers

Adds BYOC (Bring Your Own Carrier) phone numbers to Zoom Phone.

Prerequisites

  • A Business or Enterprise plan
  • A Zoom Phone license

Scopes: phone:write:admin

Granular Scopes: phone:write:byo_carrier_number:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json

Example:

{
  "carrier": "Bandwidth",
  "phone_numbers": [
    "+8618251885564"
  ],
  "sip_group_id": "GgyGPoRESCKAD8JpGXjJ8w",
  "site_id": "8f71O6rWT8KFUGQmJIFAdQ"
}

Responses

Status: 201 **HTTP Status Code:** `201` **Created**
Content-Type: application/json
  • phone_numbers

    array

    Items:

    • id

      string — Unique identifier of the phone number.

    • number

      string — Phone number in e164 format.

Example:

{
  "phone_numbers": [
    {
      "id": "LzPlp8GwR6iytydAq2luIg",
      "number": "8618251885565"
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `124` <br> Account does not exist: {accountId}. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List phone numbers ⚠️ Deprecated

  • Method: GET
  • Path: /phone/numbers
  • Tags: Phone Numbers

Returns a list all Zoom Phone numbers in a Zoom account.

Prerequisites:

  • A Pro or higher account plan
  • A Zoom Phone license

Scopes: phone:read:admin

Granular Scopes: phone:read:list_numbers:admin

Rate Limit Label: MEDIUM

Responses

Status: 200 **HTTP Status Code:** `200` **OK** Phone numbers listed successfully.
Content-Type: application/json
  • next_page_token

    string — The next page token paginates through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.)

  • page_size

    integer — The number of records returned within a single API call.

  • phone_numbers

    array

    Items:

  • total_records

    integer — The total number of records returned.

Example:

{
  "next_page_token": "bkOcmnm6mn6ioYAi10BcgRiEL38WzAo6jP2",
  "page_size": 30,
  "phone_numbers": [
    {
      "assignee": {
        "extension_number": 1000001101,
        "id": "Y40mS72DRamFgGh0V1Ul_Q",
        "name": "User Name",
        "type": "user"
      },
      "capability": [
        "incoming"
      ],
      "carrier": {
        "code": 1,
        "name": "Bandwidth"
      },
      "display_name": "abc",
      "emergency_address": {
        "address_line1": "55 ALMADEN BLVD",
        "address_line2": "test 7",
        "city": "SAN JOSE",
        "country": "US",
        "state_code": "CA",
        "zip": "95113"
      },
      "emergency_address_status": 1,
      "emergency_address_update_time": "2022-02-18T07:20:19Z",
      "id": "aMy7P9DMS9iNRkpwXNfRbw",
      "location": "United States",
      "number": "+12008001005",
      "number_type": "toll",
      "sip_group": {
        "display_name": "RRRR",
        "id": "8MhK7ea4Q4ihIQ4TD_g0kw"
      },
      "site": {
        "id": "8f71O6rWT8KFUGQmJIFAdQ",
        "name": "Main Site"
      },
      "source": "external",
      "status": "available"
    }
  ],
  "total_records": 50
}
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Delete unassigned phone numbers ⚠️ Deprecated

  • Method: DELETE
  • Path: /phone/numbers
  • Tags: Phone Numbers

Deletes unassigned phone numbers. Up to 20 phone numbers can be removed in a single request.

Prerequisites:

  • A Business or Enterprise account
  • A Zoom Phone license
  • The user must have been previously assigned a Zoom Phone number

Scopes: phone:write:admin

Granular Scopes: phone:delete:number:admin

Rate Limit Label: MEDIUM

Responses

Status: 204 **HTTP Status Code:** `204` The Phone numbers successfully removed.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update a site's unassigned phone numbers

  • Method: PATCH
  • Path: /phone/numbers/sites/{siteId}
  • Tags: Phone Numbers

Updates a site's unassigned phone numbers. Up to 20 phone numbers can be updated in a single request.

Prerequisites:

  • A Pro or higher account plan
  • A Zoom Phone license

Scopes: phone:write:admin

Granular Scopes: phone:update:site_number:admin

Rate Limit Label: Medium

Request Body

Content-Type: application/json
  • phone_numbers

    array — The phone number ID or a phone number in E164 format.

    Items:

    string

Example:

{
  "phone_numbers": [
    "8_RkKw9OQ42oYsXqJJjs4A"
  ]
}

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Site successfully updated.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get a phone number ⚠️ Deprecated

  • Method: GET
  • Path: /phone/numbers/{phoneNumberId}
  • Tags: Phone Numbers

Returns information about an account's Zoom Phone number.

Prerequisites:

  • A Pro or higher account plan
  • A Zoom phone license

Scopes: phone:read:admin

Granular Scopes: phone:read:numbers:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` **OK** Phone number details retrieved successfully.
Content-Type: application/json
  • assignee

    object

    • audio_prompt_language

      string

    • display_number

      string — This field indicates the meeting service, defines the format, and displays the number in meeting invitations and emails.

    • extension_number

      integer, format: int64 — The extension number of the phone.

    • greeting

      object — This field indicates the meeting service. You can only upload one audio file. The accepted format is .wav (also 8k, mono, ULAW or ALAW). If no audio file uploads, Zoom uses the &quot;Telephone welcome message&quot; setting in account settings.

    • id

      string — The ID of the user. The following are assigned: emergency number pool (if the account has multiple sites enabled, the ID is `siteId`, else `accountId`), and company location.

    • label

      string — Optional. This field indicates the meeting service. This label will be appended to the number in parentheses, and will appear in meeting invitations and the zoom client. Formatting rules: Maximum 32 characters Do not use digits Do not use characters &quot;(&quot; &quot;)&quot; &quot;,&quot; &quot;;&quot; or &quot;:&quot;

    • meeting_id

      string — The meeting ID for the meeting service.

    • name

      string — The name of the user to whom the number, emergency number pool, and company location are assigned.

    • on_hold_music

      object — This field indicates the meeting service. You can only upload one audio file. The accepted format is .wav (also 8k, mono, ULAW or ALAW). If no audio file uploads, Zoom uses the &quot;Telephone on-hold music&quot; setting in account settings.

    • type

      string, possible values: "user", "callQueue", "autoReceptionist", "commonArea", "emergencyNumberPool", "companyLocation", "meetingService" — This field indicates to whom the phone number belongs. `user`: Number has been assigned to an existing phone user and allows them to receive calls through their extension number or direct phone number. `callQueue`: Phone number has been assigned to a [call queue](https://support.zoom.us/hc/en-us/articles/360021524831-Managing-Call-Queues). `autoReceptionist`: Phone number has been assigned to an [auto receptionist](https://support.zoom.us/hc/en-us/articles/360021121312-Managing-Auto-Receptionists-and-Integrated-Voice-Response-IVR-). `commonArea`: Phone number has been assigned to a common area(https://support.zoom.us/hc/en-us/articles/4481136653709-May-2022-New-Common-Area-Experience). `emergencyNumberPool` `companyLocation` `meetingService`

  • capability

    array — The capability of the phone number to receive incoming calls, make outgoing calls, or both. Values are `incoming`, `outgoing`, or both values.

    Items:

    string

  • carrier

    object

    • code

      integer — The carrier code.

    • name

      string — The carrier name.

  • display_name

    string — The display name of the phone number.

  • emergency_address

    object — This field displays when the number is a `byoc` number.

  • emergency_address_status

    integer, possible values: 1, 2 — This field displays when the number is a `byoc` number. The emergency address status: 1-carrier update required, 2-confirmed

  • emergency_address_update_time

    string — Thia fieild displays when the number is a `byoc` number. The emergency address information update time(format: 'yyyy-MM-ddThh:dd:ssZ').

  • id

    string — The unique identifier of the phone number.

  • location

    string — The assigned location (city, state and country) of the phone number.

  • number

    string — The phone number in E164 format.

  • number_type

    string, possible values: "toll", "tollfree" — The type of number. The values can be one of the following: `toll`, `tollfree`

  • sip_group

    object

    • display_name

      string — The SIP group display name.

    • id

      string — The SIP group ID.

  • site

    object

  • source

    string, possible values: "internal", "external" — The source of phone number.

  • status

    string, possible values: "pending", "available" — The status of the number.

Example:

{
  "assignee": {
    "audio_prompt_language": "en-GB",
    "display_number": "display_name_123",
    "extension_number": 1000001101,
    "greeting": {
      "id": "4CRwFZtVTa67JcfO37iQqA",
      "name": "TestName"
    },
    "id": "rYgfsrduSXWCxr94poMN5g",
    "label": "abcd",
    "meeting_id": "abcd",
    "name": "Test name",
    "on_hold_music": {
      "id": "4CRwFZtVTa67JcfO37iQqA",
      "name": "Audio1"
    },
    "type": "user"
  },
  "capability": [
    "incoming"
  ],
  "carrier": {
    "code": 2,
    "name": "Inteliquent"
  },
  "display_name": "Display name",
  "emergency_address": {
    "address_line1": "55 ALMADEN BLVD",
    "address_line2": "test 7",
    "city": "SAN JOSE",
    "country": "US",
    "state_code": "CA",
    "zip": "95113"
  },
  "emergency_address_status": 1,
  "emergency_address_update_time": "2022-02-18T07:20:19Z",
  "id": "iHE1MQAET2iV85MbfaQmwg",
  "location": "Mz83e03MT1efcUvxdKlq3w",
  "number": "+18886510412",
  "number_type": "toll",
  "sip_group": {
    "display_name": "RRRR",
    "id": "8MhK7ea4Q4ihIQ4TD_g0kw"
  },
  "site": {
    "id": "8f71O6rWT8KFUGQmJIFAdQ",
    "name": "Main Site"
  },
  "source": "external",
  "status": "available"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Phone number does not exist, phonenumberId:{phoneNumberId} <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update a phone number ⚠️ Deprecated

  • Method: PATCH
  • Path: /phone/numbers/{phoneNumberId}
  • Tags: Phone Numbers

Updates a Zoom Phone number's information.

Prerequisites:

  • A Paid account

Scopes: phone:write:admin

Granular Scopes: phone:update:number:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • capability

    array — THe phone number's capability. Values: `outgoing` or `incoming`. Add one or both.

    Items:

    string

  • display_name

    string — The phone number display name.

  • emergency_address_status

    integer — This field confirms BYOC phone number's emergency address status. 2-confirmed

  • sip_group_id

    string — The SIP group ID, only used for BYOC phone number update.

Example:

{
  "capability": [
    "incoming"
  ],
  "display_name": "Display Name",
  "emergency_address_status": 1,
  "sip_group_id": "8MhK7ea4Q4ihIQ4TD_g0kw"
}

Responses

Status: 204 **HTTP Status Code:** `204` No Content
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> The value of capability is invalid. Provide a valid capability and try again. You cannot update it to a non-BYOC trunk group, because some BYOC numbers are using the SIP Group. The phone number is not in binding. The phone number is not BYOC phone number. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Assign a phone number to a user

  • Method: POST
  • Path: /phone/users/{userId}/phone_numbers
  • Tags: Phone Numbers

Assigns a phone number to a user who has already enabled Zoom Phone.Prerequisites: * A Business or Enterprise account * A Zoom Phone license

Scopes: phone:write,phone:write:admin

Granular Scopes: phone:write:user_number,phone:write:user_number:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • phone_numbers

    array

    Items:

    • id

      string — ID for phone number

    • number

      string — Phone number in E164 format.

Example:

{
  "phone_numbers": [
    {
      "id": "iHE1MQAET2iV85MbfaQmwg",
      "number": "+18887193005"
    }
  ]
}

Responses

Status: 200 **HTTP Status Code:** `200` Phone number assigned successfully.
Content-Type: application/json
  • phone_numbers

    array — Assigned phone number

    Items:

    • id

      string — ID of the phone number

    • number

      string — The phone number that is assigned to the user.

Example:

{
  "phone_numbers": [
    {
      "id": "iHE1MQAET2iV85MbfaQmwg",
      "number": "+18887193005"
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Invalid user id. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `1001` <br> This user does not exist: {userId}. <br> **Error Code:** `2001` <br> Account does not exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Unassign a phone number

  • Method: DELETE
  • Path: /phone/users/{userId}/phone_numbers/{phoneNumberId}
  • Tags: Phone Numbers

Unassigns Zoom Phone user's phone number.

After assigning a phone number, you can remove it if you do not want it to be assigned to anyone.

Prerequisites:

  • A Business or Enterprise account
  • A Zoom Phone license
  • The user must have been previously assigned a Zoom Phone number

Scopes: phone:write,phone:write:admin

Granular Scopes: phone:delete:user_number,phone:delete:user_number:admin

Rate Limit Label: LIGHT

Responses

Status: 204 **HTTP Status Code:** `204` The phone number has been unassigned successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Invalid user id. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `1001` <br> User does not exist. <br> **Error Code:** `2001` <br> Account does not exist. <br> **Error Code:** `400` <br> Invalid query parameter "phone_number". <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List calling plans

  • Method: GET
  • Path: /phone/calling_plans
  • Tags: Phone Plans

Returns all of an account's Zoom Phone calling plans.

Prerequisites

  • A Pro or a higher account
  • A Zoom Phone license

Scopes: phone:read:admin

Granular Scopes: phone:read:list_calling_plans:admin

Rate Limit Label: MEDIUM

Responses

Status: 200 **HTTP Status Code:** `200` **OK** Calling plans listed successfully.
Content-Type: application/json
  • calling_plans

    array

    Items:

    • assigned

      integer — The total number of plan used.

    • available

      integer — The remaining number of calling plans that can be assigned.

    • billing_account_id

      string — The billing account ID. It displays when the account is an Indian account.

    • billing_account_name

      string — The billing account name. It displays when the account is an Indian account.

    • billing_subscription_id

      string — The billing subscription ID. It displays when the account supports billing multiple subscriptions.

    • billing_subscription_name

      string — The billing subscription name. It displays when the account supports billing multiple subscriptions. It can be edited through the Billing page.

    • name

      string — The name of the plan.

    • subscribed

      integer — The total number of plan subscriptions bought.

    • type

      integer — The type of plan. Refer to the Plan Number section [here](https://marketplace.zoom.us/docs/api-reference/other-references/plans#zoom-phone-calling-plans).

Example:

{
  "calling_plans": [
    {
      "assigned": 28,
      "available": 72,
      "name": "US/CA Metered Calling Plan",
      "subscribed": 100,
      "type": 100,
      "billing_account_id": "3WWAEiEjTj2IQuyDiKMd_A",
      "billing_account_name": "Delhi billing",
      "billing_subscription_id": "FT-SUBREF-21168178",
      "billing_subscription_name": "My Subscription"
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List plan information ⚠️ Deprecated

  • Method: GET
  • Path: /phone/plans
  • Tags: Phone Plans

Returns all of an account's Zoom Phone plan package, phone number usage, and availability.

Prerequisites

  • A Pro or a higher account
  • A Zoom Phone license

Scopes: phone:read:admin

Granular Scopes: phone:read:list_calling_plans:admin

Rate Limit Label: MEDIUM

Responses

Status: 200 **HTTP Status Code:** `200` **OK** Phone plans listed successfully.
Content-Type: application/json
  • calling_plans

    array — The information about unprocessed phone numbers.

    Items:

    • assigned

      integer — Total number of plans used.

    • available

      integer — Remaining number of calling plans that can be assigned.

    • billing_subscription_id

      string — The billing subscription ID. It displays when the account supports billing multiple subscriptions.

    • billing_subscription_name

      string — The billing subscription name. It displays when the account supports billing multiple subscriptions. It can be edited through the Billing page.

    • name

      string — Name of the plan.

    • subscribed

      integer — Total number of plan subscriptions bought.

    • type

      integer — Plan type. Refer to the phone plan code in the [Zoom Phone calling plans](https://marketplace.zoom.us/docs/api-reference/other-references/plans#zoom-phone-calling-plans).

  • phone_numbers

    array

    Items:

    • assigned

      integer — Total number of phone number plans used.

    • available

      integer — Remaining number of phone number plans that can be assigned.

    • name

      string — Name of the phone number plan.

    • subscribed

      integer — Total number of phone number plan subscriptions bought.

Example:

{
  "calling_plans": [
    {
      "assigned": 28,
      "available": 72,
      "name": "US/CA Metered Calling Plan",
      "subscribed": 100,
      "type": 100,
      "billing_subscription_id": "FT-SUBREF-21168178",
      "billing_subscription_name": "My Subscription"
    }
  ],
  "phone_numbers": [
    {
      "assigned": 28,
      "available": 72,
      "name": "US/CA Included Phone Numbers",
      "subscribed": 100
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `403` <br> You do not have permission. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2001` <br> Account does not exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List phone roles

  • Method: GET
  • Path: /phone/roles
  • Tags: Phone Roles

Returns the phone roles.

Prerequisites:

  • Business or Education account
  • Zoom Phone license

Scopes: phone:read:admin

Granular Scopes: phone:read:list_roles:admin

Rate Limit Label: MEDIUM

Responses

Status: 200 **HTTP Status Code:** `200` **OK** Successfully listed phone roles.
Content-Type: application/json

Example:

{
  "roles": [
    {
      "id": "MRNStlOVS02fJ6pOAzrh0A",
      "name": "Phone Super Admin",
      "description": "Admin has full privileges to access and manage the Zoom Phone (default).",
      "total_members": 1,
      "is_default": true
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `401` <br> Invalid access token. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2001` <br> Account does not exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Duplicate a phone role

  • Method: POST
  • Path: /phone/roles
  • Tags: Phone Roles

Use this API to duplicate a phone role.

Prerequisites:

  • Business or Education account
  • Zoom Phone license

Scopes: phone:write:admin

Granular Scopes: phone:write:role:admin

Rate Limit Label: Light

Request Body

Content-Type: application/json

Example:

{
  "role_id": "MRNStlOVS02fJ6pOAzrh0B",
  "name": "Phone Super Admin",
  "description": "Admin has full privileges to access and manage the Zoom Phone (default)."
}

Responses

Status: 201 **HTTP Status Code:** `201` **Created** Successfully duplicated a phone role.
Content-Type: application/json

Example:

{
  "id": "MRNStlOVS02fJ6pOAzrh0A",
  "name": "Compliance Admin (Copy)"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get role information

  • Method: GET
  • Path: /phone/roles/{roleId}
  • Tags: Phone Roles

Use this API to get information on a phone role.

Prerequisites:

  • Business, or Education account
  • Zoom Phone license

Scopes: phone:read:admin

Granular Scopes: phone:read:role:admin

Rate Limit Label: Medium

Responses

Status: 200 **Status Code:** `200` Information about a specific role returned.
Content-Type: application/json
  • description

    string — Description of the role.

  • id

    string — The role ID.

  • is_default

    boolean — Indicates whether it is a default role.

  • name

    string — Name of the role.

  • total_members

    integer — Total members assigned to that role.

Example:

{
  "description": "Admin has full privileges to access and manage the Zoom Phone (default).",
  "id": "MRNStlOVS02fJ6pOAzrh0A",
  "name": "Phone Super Admin",
  "total_members": 1,
  "is_default": true
}
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Delete a phone role

  • Method: DELETE
  • Path: /phone/roles/{roleId}
  • Tags: Phone Roles

Use this API to delete a phone role.

Prerequisites:

  • Business, or Education account
  • Zoom Phone license

Scopes: phone:write:admin

Granular Scopes: phone:delete:role:admin

Rate Limit Label: Light

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Successfully deleted a phone role.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update a phone role

  • Method: PATCH
  • Path: /phone/roles/{roleId}
  • Tags: Phone Roles

Use this API to update a role.

Prerequisites:

  • Business, or Education account
  • Zoom Phone license

Scopes: phone:write:admin

Granular Scopes: phone:update:role:admin

Rate Limit Label: Light

Request Body

Content-Type: application/json

Example:

{
  "name": "Phone Super Admin",
  "description": "Admin has full privileges to access and manage the Zoom Phone (default)."
}

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Successfully updated a role.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List members in a role

  • Method: GET
  • Path: /phone/roles/{roleId}/members
  • Tags: Phone Roles

Use this API to get members (not) in a role.

Prerequisites:

  • Business or Education account
  • Zoom Phone license

Scopes: phone:read:admin

Granular Scopes: phone:read:role_member:admin

Rate Limit Label: Medium

Responses

Status: 200 **HTTP Status Code:** `200` **OK** Successfully listed members (not) in the role.
Content-Type: application/json
  • members

    array — Member list.

    Items:

    • display_name

      string — Display name.

    • email

      string — Email.

    • extension_number

      integer, format: int64 — Extension number.

    • site

      object — Site.

      • id

        string — Unique identifier of the site.

      • name

        string — Site name.

    • user_id

      string — The user ID.

Example:

{
  "members": [
    {
      "user_id": "1PXbl7s6Q52nbePrUxUZTg",
      "display_name": "ZOOM_API Test",
      "email": "2020042400000003@qq.com",
      "extension_number": 1000123460,
      "site": {
        "id": "8f71O6rWT8KFUGQmJIFAdQ",
        "name": "Main Site"
      }
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2001` <br> Account does not exist.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Add members to roles

  • Method: POST
  • Path: /phone/roles/{roleId}/members
  • Tags: Phone Roles

Use this API to add members to roles.

Prerequisites:

  • Business or Education account
  • Zoom Phone license

Scopes: phone:write:admin

Granular Scopes: phone:write:role_member:admin

Rate Limit Label: Light

Request Body

Content-Type: application/json
  • copy_all_members

    boolean, default: false — Whether to copy all members with the role: used when copying members' role.

  • copy_targets

    boolean, default: false — Whether to copy the target: used when copying members' role.

  • role_id

    string — Unique identifier of the existing [role](https://support.zoom.us/hc/en-us/articles/360042099012-Using-Zoom-Phone-role-management) assigned to the user: used when copying members' role.

  • user_ids

    array — The user IDs or email addresses of the user

    Items:

    string

Example:

{
  "role_id": "Ft0H7NYlSX6EeO-rwaZW-Q",
  "copy_targets": true,
  "copy_all_members": true,
  "user_ids": [
    "1PXbl7s6Q52nbePrUxUZTg"
  ]
}

Responses

Status: 201 **HTTP Status Code:** `201` **No Content** Successfully added members to a role.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> **Error Code:** `400` <br> There are invalid emails:{0} There are invalid user ids:{0}
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Delete members in a role

  • Method: DELETE
  • Path: /phone/roles/{roleId}/members
  • Tags: Phone Roles

Use this API to delete member(s) in a role.

Prerequisites:

  • Business or Education account
  • Zoom Phone license

Scopes: phone:write:admin

Granular Scopes: phone:delete:role_member:admin

Rate Limit Label: Light

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Successfully deleted members in a role.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> There are invalid emails:{0} There are invalid user ids:{0} **Error Code:** `300` <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List phone role targets

  • Method: GET
  • Path: /phone/roles/{roleId}/targets
  • Tags: Phone Roles

Targets of a phone role.

Prerequisites:

  • Business or Education account
  • Zoom Phone license

Scopes: phone:read:admin

Granular Scopes: phone:read:list_roles:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` **OK** Successfully listed the role targets.
Content-Type: application/json
  • next_page_token

    string — The next page token paginates through a large set of results. A next page token is returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • page_size

    integer — The number of records returned from a single API call.

  • targets

    array — The list of role member targets.

    Items:

    • extension_number

      integer — The extension number of the target.

    • site_id

      string — The unique identifier of the site.

    • site_name

      string — The site name.

    • target_id

      string — The target ID.

    • target_name

      string — The target name.

    • target_type

      string, possible values: "site", "callQueue", "autoReceptionist", "user", "group", "sharedLineGroup", "commonArea" — The target type. Different types of roles manage different types of targets: * super_admin: need not manage targets. * site_admin: support site type. * callQueue_admin: support callQueue type. * autoReceptionist_admin: support autoReceptionist type. * sharedLineGroup_admin: support sharedLineGroup type. * commonArea_admin: support site type. * recording_admin: support site, callQueue, autoReceptionist, user, group types. * compliance_admin: support site, callQueue, user, group, sharedLineGroup, commonArea types.

  • total_records

    integer — The total records found for this query.

Example:

{
  "next_page_token": "nav48KOj42vYPSG4f0cCdT575bZ980did22",
  "page_size": 30,
  "total_records": 45,
  "targets": [
    {
      "target_id": "zSBIkYJzS6KkQqu5nFxvgg",
      "target_type": "user",
      "target_name": "Test name",
      "extension_number": 1234503,
      "site_id": "8f71O6rWT8KFUGQmJIFAdQ",
      "site_name": "Main Site"
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Validation Failed { "field": "target_type", "message": "Invalid field." } <br> **Error Code:** `400` <br> The next page token is invalid or expired. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `404` <br> Phone role does not exist for role Id: {roleId}. <br> **Error Code:** `1001` <br> User does not exist for user id: {user_id}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Add phone role targets

  • Method: POST
  • Path: /phone/roles/{roleId}/targets
  • Tags: Phone Roles

Adds targets to phone roles.

Prerequisites:

  • Business or Education account
  • Zoom Phone license

Scopes: phone:write:admin

Granular Scopes: phone:write:role:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • targets (required)

    array — The targets you want to add.

    Items:

    • target_ids (required)

      array — The list of target IDs.

      Items:

      string — The target ID.

    • target_type

      string, possible values: "site", "callQueue", "autoReceptionist", "user", "group", "sharedLineGroup", "commonArea" — The target type. Different types of roles manage different types of targets: * super_admin: need not manage targets. * site_admin: support site type. * callQueue_admin: support callQueue type. * autoReceptionist_admin: support autoReceptionist type. * sharedLineGroup_admin: support sharedLineGroup type. * commonArea_admin: support site type. * recording_admin: support site, callQueue, autoReceptionist, user, group types. * compliance_admin: support site, callQueue, user, group, sharedLineGroup, commonArea types.

  • is_default

    boolean, default: false — If `is_default`=`true`, then it manages the role default targets. If `is_default`=`false`, then it manages the role member targets.

  • user_id

    string — The role member ID. It's required if `is_default`=`false`.

Example:

{
  "is_default": false,
  "user_id": "1PXbl7s6Q52nbePrUxUZTg",
  "targets": [
    {
      "target_type": "user",
      "target_ids": [
        "GP2lPCb_Tm2j9uJwmgsMBQ"
      ]
    }
  ]
}

Responses

Status: 201 **HTTP Status Code:** `201` **OK** Successfully added the role targets.
Content-Type: application/json
  • is_default

    boolean, default: false — `is_default`=`true`, manage the role default targets; `is_default`=`false`, manage the role member targets.

  • targets

    array — The targets you want to add.

    Items:

    • target_ids

      array — If the target type is site, then the target ID refers to the site ID; otherwise, it refers to the extension ID.

      Items:

      string — The target id.

    • target_type

      string, possible values: "site", "callQueue", "autoReceptionist", "user", "group", "sharedLineGroup", "commonArea" — The target type. Different types of roles manage different types of targets. * super_admin: need not manage targets. * site_admin: support site type. * callQueue_admin: support callQueue type. * autoReceptionist_admin: support autoReceptionist type. * sharedLineGroup_admin: support sharedLineGroup type. * commonArea_admin: support site type. * recording_admin: support site, callQueue, autoReceptionist, user, group types. * compliance_admin: support site, callQueue, user, group, sharedLineGroup, commonArea types.

  • user_id

    string — The member ID. Required if `is_default`=`false`.

Example:

{
  "is_default": false,
  "user_id": "1PXbl7s6Q52nbePrUxUZTg",
  "targets": [
    {
      "target_type": "user",
      "target_ids": [
        "GP2lPCb_Tm2j9uJwmgsMBQ"
      ]
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Validation Failed <br> **Error Code:** `400` <br> There are invalid target ids: {target_ids}. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `404` <br> Phone role does not exist for role id: {roleId}. <br> **Error Code:** `1001` <br> User does not exist for user id: {user_id}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Delete phone role targets

  • Method: DELETE
  • Path: /phone/roles/{roleId}/targets
  • Tags: Phone Roles

Deletes the targets of a phone role.

Prerequisites:

  • Business or Education account
  • Zoom Phone license

Scopes: phone:write:admin

Granular Scopes: phone:delete:role:admin

Rate Limit Label: MEDIUM

Request Body

Content-Type: application/json
  • targets (required)

    array — The targets you want to delete.

    Items:

    • target_ids (required)

      array — The list of target ID.

      Items:

      string — The target ID.

    • target_type

      string, possible values: "site", "callQueue", "autoReceptionist", "user", "group", "sharedLineGroup", "commonArea" — The target type. Different types of roles manage different types of targets: * super_admin: need not manage targets. * site_admin: support site type. * callQueue_admin: support callQueue type. * autoReceptionist_admin: support autoReceptionist type. * sharedLineGroup_admin: support sharedLineGroup type. * commonArea_admin: support site type. * recording_admin: support site, callQueue, autoReceptionist, user, group types. * compliance_admin: support site, callQueue, user, group, sharedLineGroup, commonArea types.

  • is_default

    boolean, default: false — If`is_default`=`true`, then it manages the role default targets. If `is_default`=`false`, then it manages the role member targets.

  • user_id

    string — The role member ID. It's required if `is_default`=`false`.

Example:

{
  "is_default": false,
  "user_id": "1PXbl7s6Q52nbePrUxUZTg",
  "targets": [
    {
      "target_type": "user",
      "target_ids": [
        "GP2lPCb_Tm2j9uJwmgsMBQ"
      ]
    }
  ]
}

Responses

Status: 204 **HTTP Status Code:** `201` **OK** Successfully deleted the role targets.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Validation Failed. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `404` <br> Phone role does not exist for role Id: {roleId}. <br> **Error Code:** `1001` <br> User does not exist for user id: {user_id}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List private directory members

  • Method: GET
  • Path: /phone/private_directory/members
  • Tags: Private Directory

Returns the member list of a private directory.

Scopes: phone:read:admin

Granular Scopes: phone:read:list_private_directory_members:admin

Rate Limit Label: MEDIUM

Responses

Status: 200 **HTTP Status Code:** `200` Private direcotry member list returned.
Content-Type: application/json
  • next_page_token

    string — The next page token paginates through large set of results.

  • page_size

    integer — The number of records returned within a single API call.

  • private_directory_members

    array

    Items:

    • extension_display_name (required)

      string — The member's display name.

    • extension_id (required)

      string — The member's extension ID.

    • extension_number (required)

      integer — The member's extension number.

    • extension_type (required)

      string, possible values: "user", "zoom_room", "common_area", "auto_receptionist", "call_queue", "shared_line_group" — The member extension's type. The valid value is: * user * zoom_room * common_area * auto_receptionist * call_queue * shared_line_group

    • searchable_on_web_portal (required)

      string, possible values: "everybody", "admins_only", "nobody" — The value indicates who is allowed to access to this member, valid value is: * everybody * admins_only * nobody

    • extension_email

      string — The member's email address, this field should be returned when "extension_type" is user.

    • site_id

      string — The unique identifier of the [site](https://support.zoom.us/hc/en-us/articles/360020809672-Managing-multiple-sites) that you would like to use for the push to talk channel. You will only be able to add members that belong to this site to the push to talk channel. This field is required only if the [multiple sites](https://support.zoom.us/hc/en-us/articles/360020809672-Managing-multiple-sites) option has been enabled for the account.

    • site_name

      string — The name of the site to which the private directory belongs. This field is required only if the [multiple sites](https://support.zoom.us/hc/en-us/articles/360020809672-Managing-multiple-sites) option has been enabled for the account.

  • total_records

    integer — The total number of records available across all pages.

Example:

{
  "next_page_token": "ICF5K4lVmGG4kyIyGxSfBU2LH4QQG95cn32",
  "page_size": 30,
  "total_records": 1,
  "private_directory_members": [
    {
      "extension_id": "JpjPXizWTz-l35tFRUK3Gg",
      "extension_type": "user",
      "extension_number": 800,
      "extension_display_name": "sample extension",
      "extension_email": "sample@zooom.us",
      "searchable_on_web_portal": "everybody",
      "site_id": "vkBoHKaRTxeBiTLRsdEwTQ",
      "site_name": "sample site"
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `2001` <br> Account does not exist. <br> **Error Code:** `8001` <br> Site does not exist: {siteId} <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Add members to a private directory

  • Method: POST
  • Path: /phone/private_directory/members
  • Tags: Private Directory

Adds members to a private directory.

Scopes: phone:write:admin

Granular Scopes: phone:write:private_directory_member:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json

Example:

{
  "site_id": "vkBoHKaRTxeBiTLRsdEwTQ",
  "members": [
    {
      "extension_id": "JpjPXizWTz-l35tFRUK3Gg",
      "searchable_on_web_portal": "everybody"
    }
  ]
}

Responses

Status: 201 **HTTP Status Code:** `201` **Created** Members added successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `2001` <br> Account does not exist. <br> **Error Code:** `8001` <br> Site does not exist: {siteId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Remove a member from a private directory

  • Method: DELETE
  • Path: /phone/private_directory/members/{extensionId}
  • Tags: Private Directory

Removes a member from a private directory.

Scopes: phone:write:admin

Granular Scopes: phone:delete:private_directory_member:admin

Rate Limit Label: LIGHT

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** A member was removed successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `2001` <br> Account does not exist. <br> **Error Code:** `8001` <br> Site does not exist: {siteId}. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `404` <br> Extension does not exist: {extensionId} <br> **Error Code:** `404` <br> Extension does not exist in the private directory: {extensionId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update a private directory member

  • Method: PATCH
  • Path: /phone/private_directory/members/{extensionId}
  • Tags: Private Directory

Updates a member of a private directory.

Scopes: phone:write:admin

Granular Scopes: phone:update:private_directory_member:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • searchable_on_web_portal (required)

    string, possible values: "everybody", "admins_only", "nobody" — The value indicates who can access this member. The valid value is: * everybody * admins_only * nobody

  • site_id

    string — The unique identifier of the [site](https://support.zoom.us/hc/en-us/articles/360020809672-Managing-multiple-sites) that you would like to use for the private directory. This field is required only if the multiple sites option has been enabled for the account.

Example:

{
  "site_id": "vkBoHKaRTxeBiTLRsdEwTQ",
  "searchable_on_web_portal": "everybody"
}

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Members updated successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `2001` <br> Account does not exist. <br> **Error Code:** `8001` <br> Site does not exist: {siteId}. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `404` <br> Extension does not exist: {extensionId} <br> **Error Code:** `404` <br> Extension does not exist in the private directory: {extensionId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List carrier peering phone numbers. ⚠️ Deprecated

  • Method: GET
  • Path: /phone/carrier_peering/numbers
  • Tags: Provider Exchange

Returns phone numbers that the carrier pushed to different customers. To become a peering provider/ carrier, submit your request.

Prerequisites:

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:read:admin,phone_peering:read:admin

Granular Scopes: phone:read:list_peering_numbers:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` **OK** Carrier peering numbers successfully returned.
Content-Type: application/json
  • next_page_token

    string — The next page token paginates through a large set of results. A next page token is returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • numbers

    array — The information about the phone numbers pushed by the carrier to different customers.

    Items:

    • assigned (required)

      integer — Whether the phone number is assigned: * `0` &mdash; Unassigned. * `1` &mdash; Assigned.

    • phone_number (required)

      string — The phone number in [E.164 format](https://en.wikipedia.org/wiki/E.164).

    • sip_trunk_name (required)

      string — The phone number's [SIP trunk](https://en.wikipedia.org/wiki/SIP_trunking).

    • status (required)

      integer — The phone number's status: * `0` &mdash; Inactive. * `1` &mdash; Active.

    • billing_reference_id

      string — The carrier's billing reference ID.

    • customer_account_name

      string — The customer's account name.

    • customer_account_number

      string — The customer's account number.

    • service_info

      string — The carrier's service information.

  • total_records

    integer — The total number of records returned for this API call.

Example:

{
  "next_page_token": "8X8xSdRVKHsabD6Im4tIPODq6GzDOvV5fO1",
  "numbers": [
    {
      "customer_account_name": "Some customer's account name",
      "customer_account_number": "Some customer's account number",
      "assigned": 1,
      "billing_reference_id": "Some billing referenceId",
      "phone_number": "+18108001001",
      "service_info": "Some service info",
      "sip_trunk_name": "test-carrier-sip-trunk",
      "status": 0
    }
  ],
  "total_records": 20
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List peering phone numbers ⚠️ Deprecated

  • Method: GET
  • Path: /phone/peering/numbers
  • Tags: Provider Exchange

Returns phone numbers to Zoom through the Provider Exchange.

Note: Phone peering API and events are for partners who have completed the MoU to peer with Zoom. To become a peering provider/ carrier, submit your request.

Prerequisites:

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:read:admin,phone_peering:read:admin

Granular Scopes: phone:read:list_peering_numbers:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` **OK** Carrier peering numbers successfully returned.
Content-Type: application/json
  • next_page_token

    string — The next page token paginates through a large set of results. A next page token is returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • numbers

    array — The information about the carrier's phone numbers.

    Items:

    • assigned (required)

      integer — Whether the phone number is assigned: * `0` &mdash; Unassigned. * `1` &mdash; Assigned.

    • phone_number (required)

      string — The phone number in [E.164 format](https://en.wikipedia.org/wiki/E.164).

    • sip_trunk_name (required)

      string — The phone number's [SIP trunk](https://en.wikipedia.org/wiki/SIP_trunking).

    • status (required)

      integer — The phone number's status: * `0` &mdash; Inactive. * `1` &mdash; Active.

    • billing_reference_id

      string — The carrier's billing reference ID.

    • service_info

      string — The carrier's service information.

  • total_records

    integer — The total number of records returned for this API call.

Example:

{
  "next_page_token": "8X8xSdRVKHsabD6Im4tIPODq6GzDOvV5fO1",
  "numbers": [
    {
      "assigned": 1,
      "billing_reference_id": "Some billing referenceId",
      "phone_number": "+18108001001",
      "service_info": "Some service info",
      "sip_trunk_name": "test-carrier-sip-trunk",
      "status": 0
    }
  ],
  "total_records": 20
}
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2001` <br> Account does not exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Add peering phone numbers ⚠️ Deprecated

  • Method: POST
  • Path: /phone/peering/numbers
  • Tags: Provider Exchange

Adds phone numbers to Zoom through the Provider Exchange.

Note: Phone peering API and events are for partners who have completed the MoU to peer with Zoom. To become a peering provider/ carrier, submit your request.

Prerequisites:

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:write:admin,phone_peering:write:admin

Granular Scopes: phone:write:peering_number:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • carrier_code

    integer — The carrier's code. The `clientId` maps to a carrier peered with Zoom. This parameter is required if you do **not** use an OAuth token or the OAuth token does not contain the `clientId`.

  • phone_numbers

    array — The information about the added phone numbers. Maximum of 200.

    Items:

    • phone_number (required)

      string — The phone number in [E.164 format](https://en.wikipedia.org/wiki/E.164).

    • sip_trunk_name (required)

      string — The phone number's [SIP trunk](https://en.wikipedia.org/wiki/SIP_trunking).

    • status (required)

      integer — The phone number's status: * `0` &mdash; Inactive. * `1` &mdash; Active.

    • billing_reference_id

      string — The carrier's billing reference ID. Maximum of 32 characters

    • service_info

      string — The carrier's service information. Maximum of 255 characters

Example:

{
  "carrier_code": 3456,
  "phone_numbers": [
    {
      "billing_reference_id": "Some billing referenceId",
      "phone_number": "+18008001011",
      "service_info": "Some service info",
      "sip_trunk_name": "first-markert-carrier-trunk",
      "status": 1
    }
  ]
}

Responses

Status: 201 **HTTP Status Code:** `201` **Created** Peering phone numbers successfully added. Check the API response for any failures.
Content-Type: application/json
  • unprocessed_numbers

    array — The information about unprocessed phone numbers.

    Items:

Example:

{
  "unprocessed_numbers": [
    {
      "failure_reason": "Invalid status",
      "phone_number": "+15556660100"
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `124` <br> Account does not exist: "{accountId}". <br> **Error Code:** `300` <br> Validation Failed. Batch adding phone numbers is limited to 200 per request. <br> **Error Code:** `404` <br> Unknown carrier. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Remove peering phone numbers ⚠️ Deprecated

  • Method: DELETE
  • Path: /phone/peering/numbers
  • Tags: Provider Exchange

Removes phone numbers added to Zoom through the provider exchange.

Note: Phone peering API and events are for partners who have completed the MoU to peer with Zoom. To become a peering provider or carrier, submit your request.

Prerequisites:

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:write:admin,phone_peering:write:admin

Granular Scopes: phone:delete:peering_number:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` **Created** Phone number successfully deleted. Check the API response for any failures.
Content-Type: application/json
  • unprocessed_numbers

    array — The information about unprocessed phone numbers.

    Items:

Example:

{
  "unprocessed_numbers": [
    {
      "failure_reason": "Number not exist.",
      "phone_number": "+15556660100"
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `124` <br> Account does not exist: "{accountId}". <br> **Error Code:** `300` <br> Validation Failed. Batch adding phone numbers is limited to 200 per request. <br> **Error Code:** `404` <br> Unknown carrier. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update peering phone numbers ⚠️ Deprecated

  • Method: PATCH
  • Path: /phone/peering/numbers
  • Tags: Provider Exchange

Updates phone numbers to Zoom through the Provider Exchange.

Note: Phone peering API and events are for partners that have completed the MoU to peer with Zoom. To become a peering provider/ carrier, submit your request.

Prerequisites:

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:write:admin,phone_peering:write:admin

Granular Scopes: phone:update:peering_number:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • carrier_code

    integer — The carrier's code. The `clientId` maps to a carrier peered with Zoom. This parameter is required if you do **not** use an OAuth token or the OAuth token does not contain the `clientId`.

  • phone_numbers

    array — A maximum of 200.

    Items:

    • phone_number (required)

      string — The phone number in [E.164 format](https://en.wikipedia.org/wiki/E.164).

    • billing_reference_id

      string — The carrier's billing reference ID. Maximum of 32 characters.

    • service_info

      string — The carrier's service information. Maximum of 255 characters.

    • sip_trunk_name

      string — The SIP trunk for the number

    • status

      integer — The phone number's status: * `0` &mdash; Inactive. * `1` &mdash; Active.

Example:

{
  "carrier_code": 1234,
  "phone_numbers": [
    {
      "billing_reference_id": "Some billing referenceId",
      "phone_number": "+18008001000",
      "service_info": "The encoding used to copy filtered properties files have not been set.",
      "sip_trunk_name": "first-markert-carrier-trunk",
      "status": 0
    }
  ]
}

Responses

Status: 200 **HTTP Status Code:** `200` **OK** Phone number successfully updated. Check the API response for any failures.
Content-Type: application/json
  • unprocessed_numbers

    array — The information about unprocessed phone numbers.

    Items:

Example:

{
  "unprocessed_numbers": [
    {
      "failure_reason": "Invalid status",
      "phone_number": "+15556660100"
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `124` <br> Account does not exist: "{accountId}". <br> **Error Code:** `300` <br> Validation Failed. Batch adding phone numbers is limited to 200 per request. <br> **Error Code:** `404` <br> Unknown carrier. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List provision templates

  • Method: GET
  • Path: /phone/provision_templates
  • Tags: Provision Templates

Use this API to list all provision templates in a Zoom account.

Prerequisites:

  • A Pro or higher account plan
  • A Zoom Phone license

Scopes: phone:read:admin

Granular Scopes: phone:read:list_provision_templates:admin

Rate Limit Label: Medium

Responses

Status: 200 **HTTP Status Code:** `200` **OK** Provision template listed successfully.
Content-Type: application/json
  • next_page_token

    string — The next page token paginates through large set of results. A next page token is returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.)

  • page_size

    integer — The number of records returned within a single API call.

  • provision_templates

    array

    Items:

    • bound_device_count

      integer — The number of devices using the provision template.

    • description

      string — The description for the provision template.

    • id

      string — The provision template ID.

    • name

      string — The display name for the provision template.

  • total_records

    integer — The total number of records returned.

Example:

{
  "next_page_token": "bkOcmnm6mn6ioYAi10BcgRiEL38WzAo6jP2",
  "page_size": 30,
  "provision_templates": [
    {
      "id": "CLbU64xzTzCUXz58e2Lo-w",
      "name": "Test Provision Template",
      "description": "provision template",
      "bound_device_count": 2
    }
  ],
  "total_records": 1
}
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Add a provision template

  • Method: POST
  • Path: /phone/provision_templates
  • Tags: Provision Templates

Use this API to create a provision template in a Zoom account.

Prerequisites:

  • A Pro or higher account plan
  • A Zoom Phone license

Scopes: phone:write:admin

Granular Scopes: phone:write:provision_template:admin

Rate Limit Label: Light

Request Body

Content-Type: application/json

Example:

{
  "name": "test-provision-template",
  "description": "Test provision template created by API.",
  "content": "provisioning/firmware/url=https://..."
}

Responses

Status: 201 **HTTP Status Code:** `201` **Created** Template added successfully.
Content-Type: application/json
  • id

    string — The template ID.

  • name

    string — The template name.

Example:

{
  "id": "q5C69v95SPKsZ5uUi-Xbcw",
  "name": "test-provision-template"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> **Error Code:** `400` <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get a provision template

  • Method: GET
  • Path: /phone/provision_templates/{templateId}
  • Tags: Provision Templates

Use this API to get a specific provision template.

Prerequisites:

  • A Pro or higher account plan
  • A Zoom Phone license

Scopes: phone:read:admin

Granular Scopes: phone:read:provision_template:admin

Rate Limit Label: Light

Responses

Status: 200 **HTTP Status Code:** `200` **OK** Provision template details retrieved successfully.
Content-Type: application/json

Example:

{
  "id": "CLbU64xzTzCUXz58e2Lo-w",
  "name": "Test provision template",
  "description": "provision template",
  "content": "provisioning/firmware/url=https://...",
  "bound_device_count": 2
}
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Delete a provision template

  • Method: DELETE
  • Path: /phone/provision_templates/{templateId}
  • Tags: Provision Templates

Use this API to delete a provision template in a Zoom account.

Prerequisites:

  • A Pro or higher account plan
  • A Zoom Phone license

Scopes: phone:write:admin

Granular Scopes: phone:delete:provision_template:admin

Rate Limit Label: Light

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Template deleted successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `404` <br> Provision template does not exist.<br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update a provision template

  • Method: PATCH
  • Path: /phone/provision_templates/{templateId}
  • Tags: Provision Templates

Use this API to update a provision template in a Zoom account.

Prerequisites:

  • A Pro or higher account plan
  • A Zoom Phone license

Scopes: phone:write:admin

Granular Scopes: phone:update:provision_template:admin

Rate Limit Label: Light

Request Body

Content-Type: application/json

Example:

{
  "name": "test-provision-template-byAPI",
  "description": "test provision template by api.",
  "content": "static.firmware.url = https://..."
}

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Template details updated successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> **Error Code:** `404` <br> Provision template does not exist.<br> **Error Code:** `400` <br> Provision template name ({0}) already exists.<br> template should not contain reserved parameters (Key: {0}).<br> Provision template name ({0}) already exists.<br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get recording by call ID

  • Method: GET
  • Path: /phone/call_logs/{id}/recordings
  • Tags: Recordings

Returns an account's call recording by the recording's callId or callLogId.

Note: Returns the file_url in the JSON query results.

Prerequisites

  • A Pro or higher account with Zoom Phone license
  • Account owner or admin privileges

Scopes: phone:read:admin,phone_recording:read,phone_recording:read:admin

Granular Scopes: phone:read:call_recording,phone:read:call_recording:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` OK.
Content-Type: application/json
  • accepted_by

    object — The call-receiving user. The current recording must belong to the receiver and call queue for it to be available.

    • extension_number

      string — The user's extension number.

    • name

      string — The user's name.

  • call_element_id

    string — The phone call element's unique ID.

  • call_history_id

    string — The phone call history's unique ID.

  • call_id

    string — The phone call's unique ID.

  • call_log_id

    string — The phone call log's unique ID.

  • callee_account_code

    string — The callee's account code. To dial between accounts, use the format: [Account code] - [extension number].

  • callee_name

    string — The callee's contact name.

  • callee_number

    string — The callee's phone number.

  • callee_number_type

    integer, possible values: 1, 2, 3 — The callee's number type: * `1` — Internal number. * `2` — External number. * `3` — Customized emergency number.

  • caller_account_code

    string — The caller's account code. To dial between accounts, use the format: [Account code] - [extension number].

  • caller_name

    string — The caller's contact name.

  • caller_number

    string — The caller's phone number.

  • caller_number_type

    integer, possible values: 1, 2 — The caller's number type: * `1` — Internal number. * `2` — External number.

  • date_time

    string, format: date-time — The date and time when the recording was received.

  • days_left_auto_permantely_delete

    integer — The number of days left until recording is permanently deleted. If the recording never auto deletes, the value is '-1'. It exists only when recording is from trash.

  • deleted_time

    string, format: date-time — The time and date the recording was deleted. It exists only when recording is from trash.

  • direction

    string — The call's direction: * `inbound` * `outbound`

  • disclaimer_status

    integer, possible values: 0, 1, 2 — The status of disclaimer for recording: * `0` - passive/implicit * `1` - agree (active/explicit and press 1) * `2` - passive agree (active/explicit and no press)

  • download_url

    string — The URL from which to download the recording. For security purposes, you **must** provide an OAuth access token in the Authorization header to download the recording file using this URL. For example: ```curl --request GET \ --url {download_url} \ --header 'authorization: Bearer {access_token} \ --header 'content-type: application/json' ```

  • duration

    integer — The call recording's duration, in seconds.

  • end_time

    string, format: date-time — The recording's end time.

  • file_url

    string — The download URL for the recording. For security purposes, you must provide an OAuth access token in the auth header to download the recording file using this url. Example request: ``` curl --request GET \ --url {download_url} \ --header 'authorization: Bearer {access_token}' \ --header 'content-type: application/json' ```

  • id

    string — The recording's ID.

  • meeting_uuid

    string — The meeting ID associated with the recording, if any.

  • outgoing_by

    object — The user who initiates the call. The current recording must belong to the initiator and the call queue for it to be available.

    • extension_number

      string — The user's extension number.

    • name

      string — The user's name.

  • owner

    object — The owner of the recording.

    • extension_deleted_time

      string — The date time the extension was deleted. It exists only when extension_status is `deleted`.

    • extension_number

      integer, format: int64 — The extension number associated with the call number.

    • extension_status

      string, possible values: "inactive", "deleted" — This field indicates the status of extension. * `inactive` * `deleted`

    • id

      string — The owner's ID.

    • name

      string — The name of the owner.

    • type

      string, possible values: "user", "callQueue", "commonArea" — The owner's type, can be `user`, `callQueue`, or `sharedOffice`(deprecated and to be replaced by `commonArea` after the transition period.)

  • recording_type

    string, possible values: "OnDemand", "Automatic" — The recording type. The allowed value is `OnDemand` or `Automatic`.

  • soft_deleted_type

    string, possible values: "Manual", "Data Retention" — This field indicates how the recording was deleted. It exists only when the recording is from trash.

Example:

{
  "call_id": "7069775907364530379",
  "call_element_id": "20210609-a297ae04-a875-4cfd-85ab-4adcead91edb",
  "callee_name": "User A",
  "callee_number": "1000001004",
  "callee_number_type": 1,
  "caller_name": "User B",
  "caller_number": "1000123476",
  "caller_number_type": 1,
  "outgoing_by": {
    "name": "User B",
    "extension_number": "123476"
  },
  "accepted_by": {
    "name": "User A",
    "extension_number": "132001"
  },
  "date_time": "2022-03-08T05:37:23Z",
  "direction": "inbound",
  "download_url": "https://domain/recording/download/EvVNLihbQ1WpeG_ALwnNzg",
  "duration": 115,
  "end_time": "2022-03-08T05:39:19Z",
  "id": "1dfe35c05f0f4bf1b2e4a8869a731178",
  "meeting_uuid": "egLSRuj2SlWet+wLi87LNA==",
  "owner": {
    "extension_number": 1000123476,
    "id": "NL3cEpSdRc-c2t8aLoZqiw",
    "name": "user@test.com",
    "type": "user",
    "extension_status": "deleted",
    "extension_deleted_time": "2022-10-14T22:10:54Z"
  },
  "deleted_time": "2023-04-18T22:10:49.907Z",
  "days_left_auto_permantely_delete": 30,
  "soft_deleted_type": "Manual",
  "recording_type": "OnDemand",
  "file_url": "https://domain/recording/download/8f7345c50a654182ab1672fdb3be61ff",
  "disclaimer_status": 0,
  "caller_account_code": "111",
  "callee_account_code": "222"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `124` <br> Account does not exist: "{accountId}". <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `1001` <br> Recording does not exist: "{callId or callLogId}". <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Download a phone recording

  • Method: GET
  • Path: /phone/recording/download/{fileId}
  • Tags: Recordings

Downloads the phone recording.

Prerequisites:

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:read,phone:read:admin,phone_recording:read,phone_recording:read:admin

Granular Scopes: phone:read:call_recording,phone:read:call_recording:admin

Rate Limit Label: MEDIUM

Responses

Status: 200 **HTTP Status Code:** `200` **OK**
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `404` <br> File does not exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Download a phone recording transcript

  • Method: GET
  • Path: /phone/recording_transcript/download/{recordingId}
  • Tags: Recordings

Downloads the phone recording transcript.

Prerequisites

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:read,phone:read:admin,phone_recording:read,phone_recording:read:admin

Granular Scopes: phone:read:recording_transcript,phone:read:recording_transcript:admin

Rate Limit Label: LIGHT

Responses

Status: 302 **HTTP Status Code:** `302` **OK** You will be redirected to a download URL where you can access the transcript file in JSON format. The file will have a structure similar to the following ```json { "type": "zoom_transcript", "ver": 1, "recording_id": "RECORDING_ID", "meeting_id": "MEETING_ID", "account_id": "ACCOUNT_ID", "host_id": "HOST_ID", "recording_start": "YYYY-MM-DDThh:mm:ssZ", "recording_end": "YYYY-MM-DDThh:mm:ssZ", "timeline": [ { "text": "TRANSCRIPTED TEXT APPEARS HERE", "raw_text": "TRANSCRIPTED RAW TEXT APPEARS HERE", "ts": "00:00:00.000", "end_ts": "00:00:00.600", "users": [], "userId": "USER PHONE EXTENSION NUMBER APPEARS HERE", "userIds": [], "channelMark": "L" } ] } ```
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `404` <br> File does not exist.<br> <br> **Error Code:** `12000` <br> Unable to transcribe this recording.<br> <br> **Error Code:** `12001` <br> Admin has disabled this transcription.<br> <br> **Error Code:** `12002` <br> This recording is still in the process of being transcribed. Reopen this recording in a few minutes.<br> <br> **Error Code:** `12003` <br> Transcripts failed to download. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get call recordings

  • Method: GET
  • Path: /phone/recordings
  • Tags: Recordings

Returns an account's call recordings.

Prerequisites:

  • A Pro or higher account plan
  • A Zoom Phone license
  • Account owner or admin privileges

Scopes: phone:read:admin,phone_recording:read:admin

Granular Scopes: phone:read:list_call_recordings:admin

Rate Limit Label: MEDIUM

Responses

Status: 200 **HTTP Status Code** `200` OK.
Content-Type: application/json
  • next_page_token

    string — The current page number of returned records.

  • page_size

    integer — The number of records returned within a single API call. The default is **30**, and the maximum is **300**.

  • recordings

    array

    Items:

    • accepted_by

      object — The call-receiving user. The current recording must belong to the receiver and call queue for it to be available.

      • extension_number

        string — The user's extension number

      • name

        string — The user's name

    • auto_delete_enable

      boolean — This field indicates whether the recording has Auto Delete Data After Retention Duration setting enabled or not.

    • auto_delete_policy

      string — The time to allow Zoom to automatically delete recordings after retention duration. To see this field, the 'Auto Delete Data After Retention Duration' setting must be enabled in Account Settings .

    • call_element_id

      string — The phone call element's unique ID.

    • call_id

      string — The phone call's unique ID.

    • call_log_id

      string — The phone call log's unique ID.

    • callee_account_code

      string — The callee's account code. To dial between accounts, use the format: [Account code] - [extension number].

    • callee_name

      string — The contact name of the callee.

    • callee_number

      string — The phone number of the callee. It could be an e164 number or an extension. The extension number is a combination of the site number and a short extension.

    • callee_number_type

      integer, possible values: 1, 2, 3 — The callee's number type: * `1` — Internal number. * `2` — External number. * `3` — Customized emergency number.

    • caller_account_code

      string — The caller's account code. To dial between accounts, use the format: [Account code] - [extension number].

    • caller_name

      string — The contact name of the caller.

    • caller_number

      string — The phone number associated with the caller. It could be an e164 number or an extension. The extension number is a combination of the site number and the short extension.

    • caller_number_type

      integer, possible values: 1, 2 — The caller's number type: * `1` — Internal number. * `2` — External number.

    • date_time

      string, format: date-time — The date and time when the recording was received.

    • direction

      string, possible values: "inbound", "outbound" — The direction of the call. The values are `inbound` or `outbound`.

    • disclaimer_status

      integer, possible values: 0, 1, 2 — The status of disclaimer for recording: * `0` - passive/implicit * `1` - agree (active/explicit and press 1) * `2` - passive agree (active/explicit and no press)

    • download_url

      string — The download URL for the recording. For security purposes, you must provide an OAuth access token in the auth header to download the recording file using this URL. Example request ``` curl --request GET \ --url {download_url} \ --header 'authorization: Bearer {access_token}' \ --header 'content-type: application/json' ```

    • duration

      integer — The call recording's duration, in seconds.

    • end_time

      string, format: date-time — The recording's end time.

    • id

      string — The unique identifier of the recording.

    • meeting_uuid

      string — The meeting ID associated with the recording, if any.

    • outgoing_by

      object — The call-initiating user. The current recording must belong to the initiator and call queue for it to be available.

      • extension_number

        string — The user's extension number.

      • name

        string — The user's name.

    • owner

      object — The owner of the recording.

      • extension_deleted_time

        string — The date time the extension was deleted. It exists only when extension_status is `deleted`.

      • extension_number

        integer, format: int64 — The extension number associated to the call number.

      • extension_status

        string, possible values: "inactive", "deleted" — This field indicates the status of extension: * `inactive` * `deleted`

      • id

        string — The owner's ID.

      • name

        string — The name of the owner.

      • type

        string, possible values: "user", "callQueue", "commonArea" — The owner's type, can be `user`, `callQueue`, or `sharedOffice`(deprecated and to be replaced by `commonArea`. During the transition period, if `sharedOffice` is provided as the `owner_type` parameter, `sharedOffice` is returned as a response. Conversely, if `commonArea` is provided, `commonArea` will be returned. If `null` is provided, `sharedOffice` will be returned temporarily, but it will be replaced by `commonArea` after the transition period).

    • recording_type

      string — The recording type. The allowed values are `OnDemand` or `Automatic`.

    • site

      object

      • id

        string — The site ID.

      • name

        string — The site name.

    • transcript_download_url

      string — The download URL for the recording transcript. For security purposes, you must provide an OAuth access token in the auth header to download the recording transcript file using this URL. Example request ``` curl --request GET \ --url {download_url} \ --header 'authorization: Bearer {access_token}' \ --header 'content-type: application/json' ```

  • total_records

    integer — The total number of records returned.

Example:

{
  "next_page_token": "cWiI3vTqdcENiV9RJz3Rh8iP1ksNPheW8c1",
  "page_size": 30,
  "recordings": [
    {
      "auto_delete_policy": "1 year",
      "call_id": "7072598989368295984",
      "call_log_id": "6f9c2948-40ad-46bc-8700-34ca2d098098",
      "call_element_id": "20210609-a297ae04-a875-4cfd-85ab-4adcead91edb",
      "callee_name": "User A",
      "callee_number": "1000001004",
      "callee_number_type": 1,
      "caller_name": "User B",
      "caller_number": "1000123476",
      "caller_number_type": 1,
      "outgoing_by": {
        "name": "User B",
        "extension_number": "123476"
      },
      "accepted_by": {
        "name": "User A",
        "extension_number": "10201"
      },
      "date_time": "2022-03-08T05:37:23Z",
      "disclaimer_status": 0,
      "direction": "outbound",
      "download_url": "https://domain/recording/download/EvVNLihbQ1WpeG_ALwnNzg",
      "duration": 115,
      "end_time": "2022-03-08T05:39:19Z",
      "id": "6f9c294840ad46bc870034ca2d098098",
      "meeting_uuid": "egLSRuj2SlWet+wLi87LNA==",
      "owner": {
        "extension_number": 1000123476,
        "id": "NL3cEpSdRc-c2t8aLoZqiw",
        "name": "user@test.com",
        "type": "user",
        "extension_status": "deleted",
        "extension_deleted_time": "2022-10-14T22:10:54Z"
      },
      "recording_type": "OnDemand",
      "site": {
        "id": "8f71O6rWT8KFUGQmJIFAdQ",
        "name": "Main Site"
      },
      "transcript_download_url": "https://domain/recording_transcript/download/8f7345c50a654182ab1672fdb3be61ff",
      "auto_delete_enable": true,
      "caller_account_code": "111",
      "callee_account_code": "222"
    }
  ],
  "total_records": 50
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Validation failed. You provided an incorrect value for the template type. Provide a valid value and try again. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `124` <br> Account does not exist: {accountId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Delete a call recording

  • Method: DELETE
  • Path: /phone/recordings/{recordingId}
  • Tags: Recordings

Deletes a call recording.

Prerequisites:

  • User must belong to a Business or Enterprise account
  • User must have a Zoom Phone license

Scopes: phone:write:admin,phone:write,phone_recording:write,phone_recording:write:admin

Granular Scopes: phone:delete:call_recording,phone:delete:call_recording:admin

Rate Limit Label: Light

Responses

Status: 204 **HTTP Status Code**: `204` Recording deleted.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `124` <br> Invalid access token.
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `404` <br> Recording does not exist: {recordingId}.<br> **Error Code:** `2001` <br> Account does not exist.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update auto delete field

  • Method: PATCH
  • Path: /phone/recordings/{recordingId}
  • Tags: Recordings

Updates the auto delete field for recording. It only updates if you enable the Auto Delete Data After Retention Duration setting in the account settings for recordings.

Prerequisites:

  • User must belong to a Business or Enterprise account
  • User must have a Zoom Phone license.

Scopes: phone:write:admin,phone:write,phone_recording:write,phone_recording:write:admin

Granular Scopes: phone:update:call_recording,phone:update:call_recording:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • auto_delete_enable

    boolean — Whether to enable auto delete field in recording.

Example:

{
  "auto_delete_enable": true
}

Responses

Status: 204 **HTTP Status Code**: `204` Auto delete field updated.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `124` <br> Invalid access token. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `404` <br> Recording does not exist: {recordingId}. <br> **Error Code:** `2001` <br> Account does not exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update Recording Status

  • Method: PUT
  • Path: /phone/recordings/{recordingId}/status
  • Tags: Recordings

Updates the status of a single recording in account.

Prerequisites:

  • User must belong to a Business or Enterprise account.
  • User must have a Zoom Phone license.

Scopes: phone:write:admin,phone:write,phone_recording:write,phone_recording:write:admin

Granular Scopes: phone:update:call_recording,phone:update:call_recording:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • action

    string, possible values: "recover" — This field corresponds to actions that you can use to update recording status. Example: Recovering recordings from trash. Allowed values: `recover`.

Example:

{
  "action": "recover"
}

Responses

Status: 204 **HTTP Status Code**: `204` Recording recovered from trash.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `124` <br> Invalid access token. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `404` <br> Recording does not exist: {recordingId}. <br> **Error Code:** `2001` <br> Account does not exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get user's recordings

  • Method: GET
  • Path: /phone/users/{userId}/recordings
  • Tags: Recordings

Gets a user's Zoom Phone recordings. For user-level apps, pass the me value instead of the userId parameter.

Prerequisites

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:read,phone:read:admin,phone_recording:read,phone_recording:read:admin

Granular Scopes: phone:read:list_recordings,phone:read:list_recordings:admin

Rate Limit Label: MEDIUM

Responses

Status: 200 **HTTP Status Code:** `200` User object returned.
Content-Type: application/json
  • from

    string, format: date — The start time and date of the query.

  • next_page_token

    string — The next page token paginates through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • page_count

    integer — Total number of pages.

  • page_size

    integer — The number of records returned within a single API call for each page.

  • recordings

    array — The recordings.

    Items:

    • accepted_by

      object — The call-receiving user. The current recording must belong to the receiver and call queue for it to be available.

      • extension_number

        string — The user's extension number.

      • name

        string — The user's name.

    • call_element_id

      string — The phone call element's unique ID.

    • call_history_id

      string — The phone call history's unique ID.

    • call_id

      string — The phone call's unique ID.

    • call_log_id

      string — The phone call log's unique ID.

    • callee_account_code

      string — The callee's account code. To dial between accounts, use the format: [Account code] - [extension number].

    • callee_name

      string — The contact name of callee.

    • callee_number

      string — The number of callee.

    • callee_number_type

      integer, possible values: 1, 2, 3 — The callee's number type: * `1` &mdash; Internal number. * `2` &mdash; External number. * `3` &mdash; Customized emergency number.

    • caller_account_code

      string — The caller's account code. To dial between accounts, use the format: [Account code] - [extension number].

    • caller_name

      string — The contact name of caller.

    • caller_number

      string — Number of caller.

    • caller_number_type

      integer, possible values: 1, 2 — The caller's number type: * `1` &mdash; Internal number. * `2` &mdash; External number.

    • date_time

      string — The date and time at which the record is received

    • direction

      string — The direction of the call. &quot;inbound&quot; | &quot;outbound&quot;

    • download_url

      string — The download URL for the recording. For security purposes, you must provide an OAuth access token in the auth header to download the recording file using this url. Example request: ``` curl --request GET \ --url {download_url} \ --header 'authorization: Bearer {access_token} \ --header 'content-type: application/json' ```

    • duration

      integer — The call recording's duration, in seconds.

    • id

      string — The ID of recording.

    • meeting_uuid

      string — The meeting ID associated with the recording, if any.

    • outgoing_by

      object — The call-initiating user. The current recording must belong to the initiator and call queue for it to be available.

      • extension_number

        string — The user's extension number.

      • name

        string — The user's name.

    • transcript_download_url

      string — The download URL for the recording transcript. For security purposes, you must provide an OAuth access token in the auth header to download the recording transcript file using this url. Example request: ``` curl --request GET \ --url {transcript_download_url} \ --header 'authorization: Bearer {access_token} \ --header 'content-type: application/json' ```

  • to

    string, format: date — The end time and date of the query.

  • total_records

    integer — The total number of records returned.

Example:

{
  "from": "2021-11-01",
  "next_page_token": "6jqhz348c100oHbw6cVER45YderniREnwr1",
  "page_count": 1,
  "page_size": 30,
  "recordings": [
    {
      "call_id": "7025841973929235024",
      "call_element_id": "20210609-a297ae04-a875-4cfd-85ab-4adcead91edb",
      "callee_name": "User A",
      "callee_number": "1000001004",
      "callee_number_type": 1,
      "caller_name": "User B",
      "caller_number": "1000001028",
      "caller_number_type": 1,
      "outgoing_by": {
        "name": "User B",
        "extension_number": "123476"
      },
      "accepted_by": {
        "name": "User A",
        "extension_number": "101001"
      },
      "date_time": "2021-11-02T05:35:20Z",
      "direction": "inbound",
      "download_url": "https://domain/recording/download/EvVNLihbQ1WpeG_ALwnNzg",
      "duration": 11,
      "id": "8f7345c50a654182ab1672fdb3be61ff",
      "meeting_uuid": "egLSRuj2SlWet+wLi87LNA==",
      "transcript_download_url": "https://domain/recording_transcript/download/8f7345c50a654182ab1672fdb3be61ff",
      "caller_account_code": "111",
      "callee_account_code": "222"
    }
  ],
  "to": "2021-11-03",
  "total_records": 50
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Invalid user id. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `1001` <br> User does not exist: {userId}. <br> **Error Code:** `2001` <br> Account does not exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get call charges usage report

  • Method: GET
  • Path: /phone/reports/call_charges
  • Tags: Reports

Retrieves the Phone Call Charges Report.

The Call charges usage report allows account owners and admins to view monthly Zoom phone call charges. Account owners and admins can also access this information when they log into their Zoom accounts and navigate to Call Charges Usage Report.

Prerequisites:

  • Account must be enrollled in Pro or a higher plan
  • Account must be enrolled in a Zoom Phone plan

Scopes: phone:read:admin

Granular Scopes: phone:read:call_charges:admin

Rate Limit Label: HEAVY

Responses

Status: 200 **HTTP Status Code:** `200` Call charges returned.
Content-Type: application/json
  • call_charges

    array — An array of call charges

    Items:

    • billing_number

      string — The billing number.

    • call_log_id

      string — The ID of the call log. You can use this value to fetch the details of the call log using [Get call log details](https://developers.zoom.us/docs/api/rest/reference/phone/methods/#operation/getCallLogDetails).

    • call_type

      string, possible values: "voip", "local", "tollfree", "international", "callCenter" — The type of call: * `voip` (Voice over IP) * `local` (Public Switched Telephone Network) * `tollfree` * `international` * `callCenter`

    • callee_billing_number

      string — The callee's billing phone number.

    • callee_number

      string — The callee's phone number.

    • caller_billing_number

      string — The caller's billing phone number.

    • caller_number

      string — The caller's phone number.

    • calling_party_name

      string — The name of the calling party.

    • charge_mode

      string, possible values: "per_min", "per_call", "per_call_per_min", "per_min_after_t_duration", "per_call_per_min_after_t_duration" — The mode of charging.

    • cost_center

      string — The name of the cost center.

    • currency

      string — The currency of the billed amount.

    • department

      string — The name of the department.

    • duration

      integer — The duration of the call in minutes.

    • employee_id

      string — The employee's ID.

    • end_time

      string — The call end time in GMT `date-time` format.

    • forward_number_billing

      string — The billing for the forward number.

    • rate

      string — The rate of billing.

    • service_type

      string, possible values: "meeting", "call" — The type of service: * `meeting` * `call` (normal call)`

    • total_charge

      string — The total charge.

  • from

    string — The start time and date of the call.

  • next_page_token

    string — The next page token paginates through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • page_size

    integer, default: 30 — The given page size.

  • to

    string — The end time and date of the SMS/MMS.

  • total_records

    integer — The total number of records returned within a single API call.

Example:

{
  "next_page_token": "BJLYC6PABbAHdjwSkGVQeeR6B1juwHqj3G2",
  "page_size": 20,
  "total_records": 10,
  "from": "2021-10-01",
  "to": "2021-10-12",
  "call_charges": [
    {
      "call_log_id": "1csf78-e9a8-4e14-859e-94ce323a9eef",
      "caller_number": "1001",
      "caller_billing_number": "+2100000980",
      "callee_number": "1008",
      "callee_billing_number": "+21058945728",
      "call_type": "voip",
      "service_type": "call",
      "calling_party_name": "User",
      "cost_center": "Phone cost center",
      "employee_id": "A9877",
      "department": "Engineering",
      "end_time": "2021-10-08T16:12:15Z",
      "duration": 1,
      "charge_mode": "per_min",
      "rate": "0.0205",
      "currency": "USD",
      "total_charge": "0",
      "billing_number": "2100000980 Ext. 1001",
      "forward_number_billing": "2100000980"
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> The next page token is invalid or expired. <br> **Error Code:** `400` <br> The billing_account_id is invalid. <br> **Error Code:** `400` <br> Invalid start date. Report is provided only for recent 13 months. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2001` <br> Account does not exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get fax charges usage report

  • Method: GET
  • Path: /phone/reports/fax_charges
  • Tags: Reports

Retrieves the Phone Fax Charges Report. The fax charges usage report allows account owners and admins to view monthly Zoom phone fax charges.

Account owners and admins can also access this information when they log into their Zoom accounts and navigate to Fax Charges Usage Report.

Prerequisites

  • Account must be enrollled in Pro or a higher plan
  • Account must be enrolled in a Zoom Phone plan

Scopes: phone:read:admin

Granular Scopes: phone:read:fax_charges:admin

Rate Limit Label: HEAVY

Responses

Status: 200 **HTTP Status Code:** `200` Fax charges returned.
Content-Type: application/json
  • fax_charges

    array — An array of fax charges.

    Items:

    • billing_number

      string — The billing phone number.

    • charge_mode

      string, possible values: "per_page" — The mode of charging.

    • charge_status

      string, possible values: "pending", "calculated" — The charge status. * `pending`: the charge has not been calculated yet. The values of `charged_pages` and `total_charge` are not available. They will be determined at the end of the billing cycle. * `calculated`: the charge has been calculated, and the values of `charged_pages` and `total_charge` are available.

    • charged_pages

      integer — The charged pages. Only present when `charge_status` is 'calculated'.

    • currency

      string — The currency of the billed amount. Following the [[ISO 4217](https://www.iso.org/iso-4217-currency-codes.html)] standard, such as 'USD' for US dollars.

    • currency_sign

      string — The display symbol associated with the currency. It's used for presentation purposes only. This field is optional and should not be used for currency identification or calculation logic.

    • end_time

      string — The fax end time in ISO 8601 GMT (UTC) date-time format.

    • fax_id

      string — The fax ID.

    • fax_type

      string, possible values: "local", "international" — The type of fax.

    • rate

      string — The rate of billing.

    • receiver_number

      string — The receiver's phone number.

    • sender_number

      string — The sender's phone number.

    • total_charge

      string — The total charge. Only present when `charge_status` is 'calculated'.

    • total_pages

      integer — The total pages.

    • unlimited

      boolean — Whether the fax usage for this record is included in unlimited faxing available with certain plans. More details: [Understanding Online Fax licensing](https://support.zoom.com/hc/en/article?id=zm_kb&sysparm_article=KB0080618#mcetoc_1iq1lcq3n18)

  • from

    string — The start time and date of the fax.

  • next_page_token

    string — The next page token paginates through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • page_size

    integer — The given page size.

  • to

    string — The end time and date of the fax.

  • total_records

    integer — The total number of records returned within a single API call.

Example:

{
  "next_page_token": "BJLYC6PABbAHdjwSkGVQeeR6B1juwHqj3G2",
  "page_size": 30,
  "total_records": 10,
  "from": "2025-06-01",
  "to": "2025-06-30",
  "fax_charges": [
    {
      "fax_id": "FD361623719B460388970623D2AB808A",
      "sender_number": "+2100000980",
      "receiver_number": "+21058945728",
      "billing_number": "+21058945728",
      "end_time": "2025-07-02T15:51:00Z",
      "charge_mode": "per_page",
      "fax_type": "international",
      "unlimited": false,
      "total_pages": 5,
      "rate": "0.0406",
      "currency": "USD",
      "currency_sign": "$",
      "charge_status": "calculated",
      "charged_pages": 5,
      "total_charge": "0.203"
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> The next page token is invalid or expired. <br> **Error Code:** `400` <br> Invalid from/to time. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2001` <br> Account does not exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).

Get operation logs report

  • Method: GET
  • Path: /phone/reports/operationlogs
  • Tags: Reports

Retrieves the phone system operation logs report.

The phone system operation logs report allows account owners and admins to view monthly Zoom phone related admin operation details.

Account owners and admins can also access this information by logging into their Zoom accounts and navigating to Phone System Operation Logs.

Prerequisites:

  • Account must be enrollled in Pro or a higher plan
  • Account must be enrolled in a Zoom Phone plan

Scopes: phone:read:admin

Granular Scopes: phone:read:operation_logs:admin

Rate Limit Label: HEAVY

Responses

Status: 200 **HTTP Status Code:** `200` Report returned.
Content-Type: application/json

All of:

  • next_page_token

    string — The next page token paginates through a large set of result. A next page token returns whenever the set of the available result list exceeds the page size. The expiration period is 15 minutes.

  • page_size

    integer, default: 30 — The amount of records returns within a single API call.

  • from

    string — The start time and date of the log.

  • to

    string — The end time and date of the log.

  • total_records

    integer — The total number of records returned.

  • operation_logs

    array — The array of operation log objects.

    Items:

    • action

      string — The action that was performed.

    • category_type

      string — The category type of the operation.

    • operation_detail

      string — The Operation details.

    • operator

      string — The user who performed the operation.

    • time

      string, format: date-time — The time at which the operation was performed.

Example:

{
  "next_page_token": "BJLYC6PABbAHdjwSkGVQeeR6B1juwHqj3G2",
  "page_size": 20,
  "total_records": 10,
  "from": "2021-10-01",
  "to": "2021-10-12",
  "operation_logs": [
    {
      "action": "ADD",
      "category_type": "Phone Number",
      "operation_detail": "Add BYOC +86 182 5188 5564",
      "operator": "user@test.com",
      "time": ""
    }
  ]
}
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `124` <br> Account does not exist: {accountId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get SMS/MMS charges usage report

  • Method: GET
  • Path: /phone/reports/sms_charges
  • Tags: Reports

Retrieves the SMS/MMS Charges Report. The SMS/MMS charges usage report allows account owners and admins to view monthly Zoom phone SMS charges. Account owners and admins can also access this information by when they log into their Zoom accounts and navigate to SMS/MMS Charges Usage Report. Prerequisites: * Account must be enrolled in Pro or a higher plan * Account must be enrolled in a Zoom Phone plan

Scopes: phone:read:admin

Granular Scopes: phone:read:sms_charges:admin

Rate Limit Label: HEAVY

Responses

Status: 200 **HTTP Status Code:** `200` SMS/MMS charges successfully returned.
Content-Type: application/json
  • from

    string — The start time and date of the sms/mms

  • next_page_token

    string — The next page token paginates through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • page_size

    integer — The given page size.

  • sms_charges

    array — An array of sms/mms charges

    Items:

    • billing_number

      string — The billing phone number.

    • cost_center

      string — The name of the cost center.

    • currency

      string — Currency of the billed amount.

    • delivery_detail

      string — The delivery detail.

    • delivery_status

      string, possible values: "Sent", "Failed to send", "Delivered", "Failed to deliver", "Received", "Unknown" — The delivery status.

    • department

      string — The name of the department.

    • from_display_name

      string — The sender's display name.

    • from_extension_number

      string — The sender's extension number.

    • from_number

      string — The sender's phone number.

    • message_id

      string — The message ID. You can use this value to fetch details about a specific message in an SMS session using [Get SMS by message ID](https://developers.zoom.us/docs/api/rest/reference/phone/methods/#operation/smsByMessageId).

    • message_type

      string — The message type

    • rate

      string — The rate of billing.

    • sent_time

      string — The UTC time the message was sent.

    • session_id

      string — The session ID. You can use this value to fetch the sms session details using [Get SMS session details](https://developers.zoom.us/docs/api/rest/reference/phone/methods/#operation/smsSessionDetails).

    • to_display_name

      string — The receiver's display name.

    • to_extension_number

      string — The receiver's extension number.

    • to_number

      string — The receiver's phone number.

    • total_charge

      string — The total charge.

  • to

    string — The end time and date of the sms/mms

  • total_records

    integer — The total number of records returned within a single API call.

Example:

{
  "next_page_token": "BJLYC6PABbAHdjwSkGVQeeR6B1juwHqj3G2",
  "page_size": 20,
  "total_records": 10,
  "from": "2021-10-01",
  "to": "2021-10-12",
  "sms_charges": [
    {
      "session_id": "da21222c4254690b545b305d6616e261",
      "message_id": "2159E06A-7195-4B54-831E-54DB8FDEC510",
      "message_type": "SMS",
      "from_number": "2019980987",
      "from_extension_number": "1008",
      "from_display_name": "Sender A",
      "to_number": "2013450986",
      "to_extension_number": "1008",
      "to_display_name": "Receiver A",
      "sent_time": "2022-03-23T02:58:01Z",
      "billing_number": "+2100000980",
      "cost_center": "Phone cost center",
      "department": "Engineering",
      "rate": "0.0205",
      "currency": "USD",
      "total_charge": "0",
      "delivery_status": "Delivered",
      "delivery_detail": "The message was successfully delivered to the intended recipient(s) on the mobile operator's network."
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> The next page token is invalid or expired <br> **Error Code:** `400` <br> Invalid start date. Report is provided only for recent 13 months <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List directory backup routing rules

  • Method: GET
  • Path: /phone/routing_rules
  • Tags: Routing Rules

Returns a list of directory backup routing rules. The directory backup routing rules are a series of predefined Regular Expressions. These rules are used to route outgoing calls. If a dialed number does not match a Zoom Phone user, and does not match a defined External Contact, these rules are tested next. If a dialed number does not match any rules, the call will be routed via the PSTN. Prerequisites: * A Business or Enterprise account * A Zoom Phone license

Scopes: phone:read:admin

Granular Scopes: phone:read:list_routing_rules:admin

Rate Limit Label: Medium

Responses

Status: 200 **HTTP Status Code:** `200` List directory backup routing rules.
Content-Type: application/json

Array of:

  • name

    string — The routing rule name.

  • number_pattern

    string — The Perl-compatible number_pattern expression.

  • order

    integer — The rule order to be applied: '1' being the highest.

  • routing_path

    object

    • sip_group

      object — It cannot be null when 'type' = 'sip_group'.

      • id

        string — The unique identifier of the SIP group.

      • name

        string — The SIP group name.

    • type

      string, possible values: "other_sites", "pstn", "sip_group" — The routing rule type.

  • routing_rule_id

    string — The Unique identifier of the routing rule.

  • site_id

    string — The unique identifier of the site: nullable if the routing rule is at an account level.

  • translation

    string — The optional replacement pattern: must be in E.164 format.

Example:

[
  {
    "name": "testRoutingRule",
    "number_pattern": "testNumberPattern",
    "order": 1,
    "routing_path": {
      "sip_group": {
        "id": "KrjExB4mSuWYkpIRLEjjpQ",
        "name": "sip_test_customer_id2"
      },
      "type": "sip_group"
    },
    "routing_rule_id": "LVkqTcxNQt6d-W45e0Jc6Q",
    "site_id": "NjHmTu16Qfe8yOiNJuekXA",
    "translation": "/[1-9]/"
  }
]
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Add directory backup routing rule

  • Method: POST
  • Path: /phone/routing_rules
  • Tags: Routing Rules

Creates a directory backup routing rule.

The directory backup routing rules are a series of predefined regular expressions. These rules are used to route outgoing calls. If a dialed number does not match a Zoom Phone user, and does not match a defined external contact, these rules are tested next. If a dialed number does not match any rules, the call will be routed through the PSTN.

Prerequisites:

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:write:admin

Granular Scopes: phone:write:routing_rule:admin

Rate Limit Label: Light

Request Body

Content-Type: application/json
  • name

    string — The routing rule name.

  • number_pattern

    string — The Perl-compatible number_pattern expression.

  • sip_group_id

    string — The unique identifier of the SIP group. it cannot be null when 'type' = 'sip_group'.

  • site_id

    string — The unique identifier of the site.`nullable`

  • translation

    string — The optional replacement pattern. It must be in E.164 format.`nullable`

  • type

    string, possible values: "other_sites", "pstn", "sip_group" — The routing path type.

Example:

{
  "name": "testRule",
  "number_pattern": "testPattern",
  "sip_group_id": "KrjExB4mSuWYkpIRLEjjpQ",
  "site_id": "aATWYNqFQDetJQ5tCX6d6g",
  "translation": "/[1-9]/",
  "type": "sip_group"
}

Responses

Status: 201 **HTTP Status Code:** `201` **No Content** Directory backup routing rule added.
Content-Type: application/json
  • name

    string — The routing rule name.

  • routing_rule_id

    string — The unique identifier of the routing rule.

Example:

{
  "name": "testRule",
  "routing_rule_id": "LVkqTcxNQt6d-W45e0Jc6Q"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Type does not exist. Type cannot be null. Number Pattern cannot be null. Number Pattern length can be up to 255 characters. SIP Group cannot be null. Number Pattern ({0}) already exists. Translation length can be up to 255 characters. Routing rule name cannot be blank. Routing rule name length can be up to 255 characters. <br> **Error Code:** `404` <br> SIP Group does not exist. Site does not exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get directory backup routing rule

  • Method: GET
  • Path: /phone/routing_rules/{routingRuleId}
  • Tags: Routing Rules

Returns the directory backup routing rule. The directory backup routing rules are a series of predefined Regular Expressions. These rules are used to route outgoing calls. If a dialed number does not match a Zoom Phone user, and does not match a defined External Contact, these rules are tested next. If a dialed number does not match any rules, the call will be routed via the PSTN.Prerequisites: * A Business or Enterprise account * A Zoom Phone license

Scopes: phone:read:admin

Granular Scopes: phone:read:routing_rule:admin

Rate Limit Label: Medium

Responses

Status: 200 **HTTP Status Code:** `200` Get directory backup routing rule.
Content-Type: application/json
  • name

    string — The routing rule name.

  • number_pattern

    string — The Perl-compatible number_pattern expression.

  • order

    integer — The routing rule order to be applied: '1' being the highest.

  • routing_path

    object

    • sip_group

      object — It cannot be null when 'type' = 'sip_group'.

      • id

        string — The unique identifier of the SIP group.

      • name

        string — The SIP group name.

    • type

      string, possible values: "other_sites", "pstn", "sip_group" — The routing rule type.

  • routing_rule_id

    string — The unique identifier of the routing rule.

  • site_id

    string — The unique identifier of the site.

  • translation

    string — The optional replacement pattern: must be in E.164 format.

Example:

{
  "name": "testRule",
  "number_pattern": "testPattern",
  "order": 1,
  "routing_path": {
    "sip_group": {
      "id": "KrjExB4mSuWYkpIRLEjjpQ",
      "name": "sip_test_customer_id2"
    },
    "type": "sip_group"
  },
  "routing_rule_id": "LVkqTcxNQt6d-W45e0Jc6Q",
  "site_id": "aATWYNqFQDetJQ5tCX6d6g",
  "translation": "/[1-9]/"
}
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Delete directory backup routing rule

  • Method: DELETE
  • Path: /phone/routing_rules/{routingRuleId}
  • Tags: Routing Rules

Deletes the directory backup routing rule.

The directory backup routing rules are a series of predefined Regular Expressions. These rules are used to route outgoing calls. If a dialed number does not match a Zoom Phone user, and does not match a defined External Contact, these rules are tested next. If a dialed number does not match any rules, the call will be routed via the PSTN.

Prerequisites:

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:write:admin

Granular Scopes: phone:delete:routing_rule:admin

Rate Limit Label: Light

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Directory backup routing rule deleted.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `404` <br> Routing rule does not exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update directory backup routing rule

  • Method: PATCH
  • Path: /phone/routing_rules/{routingRuleId}
  • Tags: Routing Rules

Updates the directory backup routing rule.

The directory backup routing rules are a series of predefined regular expressions. These rules are used to route outgoing calls. If a dialed number does not match a Zoom Phone user, and does not match a defined external contact, these rules are tested next. If a dialed number does not match any rules, the call will be routed through the PSTN.

Prerequisites:

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:write:admin

Granular Scopes: phone:update:routing_rule:admin

Rate Limit Label: Light

Request Body

Content-Type: application/json
  • name

    string — The routing rule name.

  • number_pattern

    string — The Perl-compatible number_pattern expression.

  • order

    integer — TherRouting rule order to be applied: '1' being the highest. Order inserting occurs when this field is filled. It will automatically readjust the order of rules between the target order and the current order.

  • sip_group_id

    string — The unique identifier of the SIP Group: must not be null when 'type' = 'sip_group'.

  • translation

    string — Optional replacement pattern: must be in E.164 format. `nullable`

  • type

    string, possible values: "other_sites", "pstn", "sip_group" — The routing path type.

Example:

{
  "name": "testRuleName",
  "number_pattern": "testNumberPattern",
  "order": 2,
  "sip_group_id": "fd9f",
  "translation": "/[1-9]/",
  "type": "other_sites"
}

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Directory backup routing rule updated.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Type does not exist. SIP Group cannot be null. Number Pattern ({0}) already exists. Routing rule name length can be up to 255 characters. Number Pattern length can be up to 255 characters. Translation length can be up to 255 characters. <br> **Error Code:** `404` <br> Routing rule does not exist. SIP Group does not exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Post SMS message

  • Method: POST
  • Path: /phone/sms/messages
  • Tags: SMS

Sends SMS messages to Zoom Phone accounts.

Prerequisites

  • Zoom Phone license
  • SMS enabled for the account or admin privileges
  • User-enabled Zoom Phone

SMS and attachments - Size and limits

  • SMS size with no media attachments: 2048 bytes
  • SMS size with attachments: 1000 bytes
  • Total attachments: 10
  • Total attachments file size: 2MB

Scopes: phone:write:admin,phone:write,phone_sms:write,phone_sms:write:admin

Granular Scopes: phone:read:sms_message,phone:read:sms_message:admin

Rate Limit Label: MEDIUM

Request Body

Content-Type: application/json
  • sender (required)

    object — The field that describes the sender's identity.

    • phone_number (required)

      string — An SMS capable phone number allocated to Zoom Phone within the customer account. The number must be in the E.164 format. The phone number must belong to the sender and be assigned to either an user, a call queue, an auto receptionist, or the programmatic API endpoint. Get the number via a valid Zoom Phone Calling Plan or a Zoom Phone Number license. The number can only send messages after fulfilling the in-country compliance requirements.

    • id

      string — The sender's unique user ID. You can pass either `id` or `user_id` in the parameters.

    • user_id

      string — The sender's unique user ID. You can pass either `id` or `user_id` in the parameters.

  • to_members (required)

    array — The list of recipients. For the US and CA toll numbers, sending to more than one recipient will create a group message with all recipients. For other number types, the messages will be sent to each recipient individually as 1:1 messages. If any recipient number is invalid, there will be an exception.

    Items:

    • phone_number (required)

      string — The phone number of the person receiving the SMS. The recipient phone numbers should be in the E.164 format. Opt in - START - and opt out - STOP - keywords received from these number will be honored.

  • attachments

    array — A list of multimedia attachments to be sent through MMS. Each item must be a Base 64-encoded image file in a supported format. The following file formats are supported: JPG, PNG, JPEG, GIF. The attachment size limit is 2MB.

    Items:

    • base64_encoding

      string — The ASCII string to send [Base64 encoded](https://en.wikipedia.org/wiki/Base64) attachments as text, the size limit is 2MB.

    • type

      string, possible values: "PNG", "JPEG", "JPG", "GIF", "PDF" — The format of attachments. The following file formats are supported: JPG, PNG, JPEG, GIF, PDF.

  • message

    string — The content that is sent as an SMS. Maximum length is 500 characters. Messages will be broken into smaller segments of 160 characters and concatenated at the time of delivery. Unicode characters and emojis are supported. You can also send any text or URL.

  • session_id

    string — The unique ID for the SMS session between sender and recipient. Session IDs are perpetual in nature and maintain the continuity of the conversation.

Example:

{
  "attachments": [
    {
      "base64_encoding": "SUQzBAAAAAAAZ1RFTkMAAAAIAAADUkVBUEVSAFREUkMAAAAMAAADMjAyMS0w",
      "type": "JPG"
    }
  ],
  "message": "welcome",
  "sender": {
    "phone_number": "+18108001001"
  },
  "session_id": "d39fc7e14ef9f2b6453f5f02524d79a2",
  "to_members": [
    {
      "phone_number": "+12058945624"
    }
  ]
}

Responses

Status: 201 **HTTP Status Code:** `201` SMS sent successfully.
Content-Type: application/json
  • date_time

    string — The message creation time in UTC (Coordinated Universal Time).

  • message_id

    string — The message ID.

  • session_id

    string — The session ID.

Example:

{
  "date_time": "2022-01-17T08:13:27Z",
  "message_id": "E14032F2-1EDE-4D8E-924B-C83A70CD2923",
  "session_id": "d39fc7e14ef9f2b6453f5f02524d79a2"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `2001` <br> Account does not exist. <br> **Error Code:** `1001` <br> User does not exist: {id} <br> **Error Code:** `1024` <br> User does not exist due to missing required params. <br> **Error Code:** `7001` <br> Phone Number is not valid. <br> **Error Code:** `316` <br> The phone number does not conform to the E.164 standard. <br> **Error Code:** `300` <br> Unsupported Content Type. <br> **Error Code:** `135` <br> You cannot have access to another user. <br> **Error Code:** `121` <br> Unsupported content type for SMS attachments. <br> **Error Code:** `138` <br> Missing content type for SMS attachment. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `124` <br> Account does not exist: {accountId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get account's SMS sessions

  • Method: GET
  • Path: /phone/sms/sessions
  • Tags: SMS

Returns details about SMS sessions for an account.

Prerequisites

  • Paid account
  • User-enabled Zoom phone

Scopes: phone:read:admin,phone_sms:read,phone_sms:read:admin

Granular Scopes: phone:read:list_sms_sessions,phone:read:list_sms_sessions:admin

Rate Limit Label: MEDIUM

Responses

Status: 200 OK
Content-Type: application/json
  • next_page_token

    string — The next page token paginates through a large set of results. A next page token returns whenever the set of the available result list exceeds the page size.

  • page_size

    integer — The size of each page.

  • sms_sessions

    array

    Items:

    • last_access_time

      string — The last send or receive time in UTC.

    • participants

      array — The SMS members.

      Items:

      • display_name

        string — The participant name.

      • extension_deleted_time

        string — The date time the extension was deleted. It exists only when extension_status is `deleted`.

      • extension_status

        string, possible values: "inactive", "deleted" — This field indicates the status of the extension. * `inactive` * `deleted`

      • is_session_owner

        boolean — Whether it is the owner of the session.

      • owner

        object

        • id

          string — The owner ID.

        • type

          string, possible values: "user", "callQueue", "autoReceptionist", "sharedLineGroup" — The owner type: *`user` *`callQueue` *`autoReceptionist` *`sharedLineGroup`

      • phone_number

        string — The participant phone number.

    • session_id

      string — The SMS session ID.

    • session_type

      string — The session type. The value for this field can be one of the following: `user` `call_queue` `auto_receptionist`

Example:

{
  "next_page_token": "2z0Ov7kngllAbfQi4ZR2eQTb3mFVYQpYAe3",
  "page_size": 30,
  "sms_sessions": [
    {
      "last_access_time": "2022-03-25T02:11:27Z",
      "participants": [
        {
          "display_name": "test api",
          "owner": {
            "id": "DnEopNmXQEGU2uvvzjgojw",
            "type": "user"
          },
          "phone_number": "18108001001",
          "is_session_owner": true,
          "extension_status": "deleted",
          "extension_deleted_time": "2022-10-14T22:10:54Z"
        }
      ],
      "session_id": "d39fc7e14ef9f2b6453f5f02524d79a2",
      "session_type": "user"
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> SMS session type is invalid. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `124` <br> Account does not exist: {accountId}. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `7012` <br> Error retrieving SMS. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get SMS session details

  • Method: GET
  • Path: /phone/sms/sessions/{sessionId}
  • Tags: SMS

Returns details about an SMS session.

Prerequisites

  • Paid account
  • User-enabled Zoom phone

Scopes: phone:read:admin,phone:read,phone_sms:read,phone_sms:read:admin

Granular Scopes: phone:read:sms_session,phone:read:sms_session:admin

Rate Limit Label: MEDIUM

Responses

Status: 200 OK
Content-Type: application/json
  • next_page_token

    string — The next page token paginates through a large set of results. It returns whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • page_size

    integer — The size of the page.

  • sms_histories

    array

    Items:

    • attachments

      array

      Items:

      • download_url

        string — The download link for the media file.

      • id

        string — The media file ID.

      • name

        string — The file name.

      • size

        integer — The file size.

      • type

        string, possible values: "OTHER", "PNG", "GIF", "JPG", "AUDIO", "VIDEO" — The file type: OTHER, PNG, GIF, JPG, AUDIO, VIDEO

    • date_time

      string — The UTC time the message was created.

    • delivery_status

      string, possible values: "received", "delivered", "failed_to_send", "sent", "failed_to_deliver", "unknown" — The status of the message. * `received`: The message was successfully received on the Zoom number. * `delivered`: The message was successfully delivered to the intended recipient(s) on the mobile operator's network. * `failed_to_send`: The message could not be sent from the Zoom network to the mobile operator's network. * `sent`: The message has been sent to the carrier, but a delivery confirmation has not been received yet. Note that some carriers do not provide delivery confirmations. * `failed_to_deliver`: The message could not be delivered to the recipient. * `unknown`: The system is unable to determine if this message was delivered successfully.

    • direction

      string — Whether the direction is In or Out.

    • message

      string — The contents of the SMS text.

    • message_id

      string — The message ID.

    • message_type

      integer, possible values: 1, 2, 3, 4, 5, 6 — The message type: 1 - SMS 2 - MMS 3 - GROUP_SMS 4 - GROUP_MMS 5 - SMS_INTER 6 - MSG_ON_NET

    • sender

      object

      • phone_number (required)

        string — The sender's phone number.

      • display_name

        string — The sender's name.

      • owner

        object

        • id

          string — The owner ID.

        • type

          string, possible values: "user", "callQueue", "autoReceptionist", "sharedLineGroup" — The owner type: *`user` *`callQueue` *`autoReceptionist` *`sharedLineGroup`

    • to_members

      array

      Items:

      • phone_number (required)

        string — The receiver's phone number.

      • display_name

        string — The participant's name.

      • owner

        object

        • id

          string — The owner ID.

        • type

          string, possible values: "user", "callQueue", "autoReceptionist", "sharedLineGroup" — The owner type: *`user` *`callQueue` *`autoReceptionist` *`sharedLineGroup`

Example:

{
  "next_page_token": "2z0Ov7kngllAbfQi4ZR2eQTb3mFVYQpYAe4",
  "page_size": 30,
  "sms_histories": [
    {
      "attachments": [
        {
          "download_url": "https://exampleurl.us/file/download/x18dcVWxTcCzbp4zr2AT3A?jwt=eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJjcm9zc2ZpbGUiLCJhdWQiOiJmaWxlIiwiZGlnIjoiYTZkODE4NzQ2MDNmN2UzZWM4OThkNDMxM2IxNjNhNTQ4NGI4MjkxMTA0ZmQyYzc4MTg1NmY0MGUxY2FlOTI3YyIsImV4cCI6MTY0ODE5NDA1NH0.eCURcan9QOOw9wvBdSn_-TBzgT5HWBzp04IfsK19Oto",
          "id": "x18dcVWxTcCzbp4zr2AT3A",
          "name": "FWDHOMaNRaqIvNc3aIdisg.jpg",
          "size": 225740,
          "type": "JPG/JPEG"
        }
      ],
      "date_time": "2022-03-23T02:58:01Z",
      "direction": "In",
      "message": "welcome",
      "message_id": "IQ-cRH5P5EiTWCwpNzScnECJw",
      "delivery_status": "delivered",
      "message_type": 2,
      "sender": {
        "display_name": "test api",
        "owner": {
          "id": "DnEopNmXQEGU2uvvzjgojw",
          "type": "user"
        },
        "phone_number": "18108001001"
      },
      "to_members": [
        {
          "display_name": "ezreal mao",
          "owner": {
            "id": "WeD59Hn7SvqNRB9jcxz5NQ",
            "type": "user"
          },
          "phone_number": "12092693625"
        }
      ]
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> The next page token is invalid or expired. Requires from and to page number should be > 0 <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `124` <br> Access token has expired. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2001` <br> Account does not exist. <br> **Error Code:** `7013` <br> Error retrieving SMS history. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get SMS by message ID

  • Method: GET
  • Path: /phone/sms/sessions/{sessionId}/messages/{messageId}
  • Tags: SMS

Returns details about a specific message in an SMS session.

Prerequisites

  • Paid account
  • User-enabled Zoom phone

Scopes: phone:read:admin,phone:read,phone_sms:read,phone_sms:read:admin

Granular Scopes: phone:read:sms_message,phone:read:sms_message:admin

Rate Limit Label: MEDIUM

Responses

Status: 200 OK
Content-Type: application/json
  • attachments

    array

    Items:

    • download_url

      string — The download link for the media file.

    • id

      string — The media file ID.

    • name

      string — The file name.

    • size

      integer — The file size.

    • type

      string, possible values: "OTHER", "PNG", "GIF", "JPG", "AUDIO", "VIDEO" — The file type: OTHER, PNG, GIF, JPG, AUDIO, VIDEO

  • date_time

    string — The UTC time the message was created.

  • delivery_status

    string, possible values: "received", "delivered", "failed_to_send", "sent", "failed_to_deliver", "unknown" — The status of the message. * `received`: The message was successfully received on the Zoom number. * `delivered`: The message was successfully delivered to the intended recipient(s) on the mobile operator's network. * `failed_to_send`: The message could not be sent from the Zoom network to the mobile operator's network. * `sent`: The message has been sent to the carrier, but a delivery confirmation has not been received yet. Note that some carriers do not provide delivery confirmations. * `failed_to_deliver`: The message could not be delivered to the recipient. * `unknown`: The system is unable to determine if this message was delivered successfully.

  • direction

    string — The direction is either in or out

  • message

    string — The SMS text contents.

  • message_id

    string — The message ID.

  • message_type

    integer, possible values: 1, 2, 3, 4, 5, 6 — The message type: 1 - SMS 2 - MMS 3 - GROUP_SMS 4 - GROUP_MMS 5 - SMS_INTER 6 - MSG_ON_NET

  • sender

    object

    • phone_number (required)

      string — The sender's phone number.

    • display_name

      string — The sender's name.

    • owner

      object

      • id

        string — The owner ID.

      • type

        string, possible values: "user", "callQueue", "autoReceptionist", "sharedLineGroup" — The owner type: *`user` *`callQueue` *`autoReceptionist` *`sharedLineGroup`

  • to_members

    array

    Items:

    • phone_number (required)

      string — The receiver's phone number.

    • display_name

      string — The participant's name.

    • owner

      object

      • id

        string — The owner ID.

      • type

        string, possible values: "user", "callQueue", "autoReceptionist", "sharedLineGroup" — The owner type: *`user` *`callQueue` *`autoReceptionist` *`sharedLineGroup`

Example:

{
  "attachments": [
    {
      "download_url": "https://exampleurl.us/file/download/x18dcVWxTcCzbp4zr2AT3A?jwt=eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJjcm9zc2ZpbGUiLCJhdWQiOiJmaWxlIiwiZGlnIjoiYTZkODE4NzQ2MDNmN2UzZWM4OThkNDMxM2IxNjNhNTQ4NGI4MjkxMTA0ZmQyYzc4MTg1NmY0MGUxY2FlOTI3YyIsImV4cCI6MTY0ODE5NDA1NH0.eCURcan9QOOw9wvBdSn_-TBzgT5HWBzp04IfsK19Oto",
      "id": "x18dcVWxTcCzbp4zr2AT3A",
      "name": "FWDHOMaNRaqIvNc3aIdisg.jpg",
      "size": 225740,
      "type": "JPG/JPEG"
    }
  ],
  "date_time": "2022-03-23T02:58:01Z",
  "direction": "In",
  "message": "welcome",
  "delivery_status": "delivered",
  "message_id": "IQ-cRH5P5EiTWCwpNzScnECJw",
  "message_type": 2,
  "sender": {
    "display_name": "ezreal mao",
    "owner": {
      "id": "WeD59Hn7SvqNRB9jcxz5NQ",
      "type": "user"
    },
    "phone_number": "12092693625"
  },
  "to_members": [
    {
      "display_name": "test api",
      "owner": {
        "id": "DnEopNmXQEGU2uvvzjgojw",
        "type": "user"
      },
      "phone_number": "18108001001"
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `1004` <br> Not allow to access this account. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `124` <br> Access token has expired. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2001` <br> Account does not exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Sync SMS by session ID

  • Method: GET
  • Path: /phone/sms/sessions/{sessionId}/sync
  • Tags: SMS

Syncs SMS messages in a session.

Prerequisites

  • Paid account
  • User-enabled Zoom phone

Scopes: phone:read:admin,phone:read,phone_sms:read,phone_sms:read:admin

Granular Scopes: phone:read:sms_session,phone:read:sms_session:admin

Rate Limit Label: MEDIUM

Responses

Status: 200 OK
Content-Type: application/json
  • sms_histories

    array

    Items:

    • attachments

      array

      Items:

      • download_url

        string — The download link for the media file.

      • id

        string — The media file ID.

      • name

        string — The file's name.

      • size

        integer — The file's size.

      • type

        string, possible values: "OTHER", "PNG", "GIF", "JPG", "AUDIO", "VIDEO" — The file's type: OTHER, PNG, GIF, JPG, AUDIO, VIDEO

    • date_time

      string — The UTC time the message was created.

    • direction

      string — `In`(SMS received) or `Out`(SMS sent)

    • message

      string — The content of the SMS.

    • message_id

      string — The message ID.

    • message_type

      integer, possible values: 1, 2, 3, 4, 5, 6 — The message type: 1 - SMS 2 - MMS 3 - GROUP_SMS 4 - GROUP_MMS 5 - SMS_INTER 6 - MSG_ON_NET

    • sender

      object

      • phone_number (required)

        string — The sender's phone number.

      • display_name

        string — The sender's name.

      • owner

        object

        • id

          string — The owner ID.

        • type

          string, possible values: "user", "callQueue", "autoReceptionist", "sharedLineGroup" — The owner's type: *`user` *`callQueue` *`autoReceptionist` *`sharedLineGroup`

    • to_members

      array

      Items:

      • phone_number (required)

        string — The SMS recipient phone number.

      • display_name

        string — The SMS recipient's name.

      • owner

        object

        • id

          string — The owner ID.

        • type

          string, possible values: "user", "callQueue", "autoReceptionist", "sharedLineGroup" — The owner type: *`user` *`callQueue` *`autoReceptionist` *`sharedLineGroup`

  • sync_token

    string — The time range for returned records. It's used for locating where the next retrieval will begin.

Example:

{
  "sms_histories": [
    {
      "attachments": [
        {
          "download_url": "https://exampleurl.us/file/download/x18dcVWxTcCzbp4zr2AT3A?jwt=eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJjcm9zc2ZpbGUiLCJhdWQiOiJmaWxlIiwiZGlnIjoiYTZkODE4NzQ2MDNmN2UzZWM4OThkNDMxM2IxNjNhNTQ4NGI4MjkxMTA0ZmQyYzc4MTg1NmY0MGUxY2FlOTI3YyIsImV4cCI6MTY0ODE5NDk4OH0.kAh1EnCkjpwAOX_GUfWVPLK2xhnVPRiwm8vDbD-oyVY",
          "id": "x18dcVWxTcCzbp4zr2AT3A",
          "name": "FWDHOMaNRaqIvNc3aIdisg.jpg",
          "size": 225740,
          "type": "JPG/JPEG"
        }
      ],
      "date_time": "2022-03-23T02:58:01Z",
      "direction": "In",
      "message": "welcome",
      "message_id": "IQ-cRH5P5EiTWCwpNzScnECJw",
      "message_type": 2,
      "sender": {
        "display_name": "test api",
        "owner": {
          "id": "DnEopNmXQEGU2uvvzjgojw",
          "type": "user"
        },
        "phone_number": "18108001001"
      },
      "to_members": [
        {
          "display_name": "callhandling0001@testapi.com",
          "owner": {
            "id": "rYgfsrduSXWCxr94poMN5g",
            "type": "user"
          },
          "phone_number": "12762924594"
        }
      ]
    }
  ],
  "sync_token": "MFgyQ0Z3UDkwaF8xNjQyNDA3MjA3MDE0XzE2NDI0MDcyMDcwMTQ="
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> The sync token is invalid or expired. Please resync with the `FSync` method. <br> **Error Code:** `7035` <br> The number of new records exceeds the sync count. Please resync with the `FSync` method. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `124` <br> Invalid access token. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `300` <br> The sync token is invalid or expired.<br> <br> **Error Code:** `12004` <br> Session does not exist: {0}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get user's SMS sessions

  • Method: GET
  • Path: /phone/users/{userId}/sms/sessions
  • Tags: SMS

Returns details about SMS sessions for a user.

For user-level apps, pass the me value instead of the userId parameter.

Prerequisites:

  • Paid account
  • User-enabled Zoom phone

Scopes: phone:read:admin,phone:read,phone_sms:read,phone_sms:read:admin

Granular Scopes: phone:read:list_sms_sessions,phone:read:list_sms_sessions:admin

Rate Limit Label: MEDIUM

Responses

Status: 200 OK
Content-Type: application/json
  • next_page_token

    string — The next page token paginates through large result sets. A next page token returns whenever the set of the available result list exceeds the page size.

  • page_size

    integer — The size of each page.

  • sms_sessions

    array

    Items:

    • last_access_time

      string — The last send or receive time in UTC.

    • participants

      array — The SMS members.

      Items:

      • display_name

        string — The participant's name.

      • is_session_owner

        boolean — Whether it is the owner of the session.

      • owner

        object

        • id

          string — The owner ID.

        • type

          string, possible values: "user", "callQueue", "autoReceptionist", "sharedLineGroup" — The owner type: *`user` *`callQueue` *`autoReceptionist` *`sharedLineGroup`

      • phone_number

        string — The participant phone number.

    • session_id

      string — The SMS session ID.

    • session_type

      string — The session type. The value for this field can be one of the following: `user` `call_queue` `auto_receptionist`

Example:

{
  "next_page_token": "2z0Ov7kngllAbfQi4ZR2eQTb3mFVYQpYAe4",
  "page_size": 30,
  "sms_sessions": [
    {
      "last_access_time": "2022-03-25T02:11:27Z",
      "participants": [
        {
          "display_name": "l api",
          "owner": {
            "id": "DnEopNmXQEGU2uvvzjgojw",
            "type": "user"
          },
          "phone_number": "18108001001",
          "is_session_owner": true
        }
      ],
      "session_id": "d39fc7e14ef9f2b6453f5f02524d79a2",
      "session_type": "user"
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> SMS session type is invalid. The next page token is invalid or expired. <br> **Error Code:** `300` <br> Invalid user id. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `1001` <br> User does not exist: {userId} <br> **Error Code:** `7012` <br> Error retrieving SMS. <br> **Error Code:** `2001` <br> Account does not exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List user's SMS sessions in descending order

  • Method: GET
  • Path: /phone/users/{userId}/sms/sessions/sync
  • Tags: SMS

Retrieves the user's SMS sessions in descending order. Mirrors the ZP client behavior with the most recent on top.

Prerequisites:

  • Paid account
  • User-enabled Zoom phone

Scopes: phone:read:admin,phone:read,phone_sms:read,phone_sms:read:admin

Granular Scopes: phone:read:sms_session,phone:read:sms_session:admin

Rate Limit Label: MEDIUM

Responses

Status: 200 **HTTP Status Code:** `200` **No Content** Successfully listed the SMS sessions.
Content-Type: application/json
  • sms_sessions

    array

    Items:

    • last_access_time

      string — The last send or receive time in UTC.

    • latest_message

      object

      • attachments

        array

        Items:

        • id

          string — The media file ID.

        • type

          string, possible values: "OTHER", "PNG", "GIF", "JPG/JPEG", "AUDIO", "VIDEO" — The file type: OTHER, PNG, GIF, JPG/JPEG, AUDIO, VIDEO

      • date_time

        string — The UTC time the message was created.

      • direction

        string — `In`(SMS received) or `Out`(SMS sent)

      • message

        string — The content of the SMS.

      • message_id

        string — The message ID.

      • message_type

        integer, possible values: 1, 2, 3, 4, 5, 6 — The message type: 1 - SMS 2 - MMS 3 - GROUP_SMS 4 - GROUP_MMS 5 - SMS_INTER 6 - MSG_ON_NET

      • sender

        object

        • phone_number (required)

          string — The sender's phone number.

        • display_name

          string — The sender's name.

        • owner

          object

          • id

            string — The owner ID.

          • type

            string, possible values: "user", "callQueue", "autoReceptionist", "sharedLineGroup" — The owner type: *`user` *`callQueue` *`autoReceptionist` *`sharedLineGroup`

      • to_members

        array

        Items:

        • phone_number (required)

          string — The receiver's phone number.

        • display_name

          string — The participant name.

        • owner

          object

          • id

            string — The owner ID.

          • type

            string, possible values: "user", "callQueue", "autoReceptionist", "sharedLineGroup" — The owner type: *`user` *`callQueue` *`autoReceptionist` *`sharedLineGroup`

    • participants

      array — The SMS senders and receivers.

      Items:

      • display_name

        string — The SMS sender or receiver name.

      • is_session_owner

        boolean — Whether it is the owner of the session.

      • owner

        object

        • id

          string — The owner ID.

        • type

          string, possible values: "user", "callQueue", "autoReceptionist", "sharedLineGroup" — The owner type: *`user` *`callQueue` *`autoReceptionist` *`sharedLineGroup`

      • phone_number

        string — The SMS sender or receiver phone number.

    • session_id

      string — The SMS session ID.

    • session_type

      string — The session type. The value for this field can be one of the following: `user` `call_queue` `auto_receptionist`

    • unread_message_count

      integer — The number of unread messages.

  • sync_token

    string — The sync token for a backward (`BSync`) or forward (`ISync`) sync.

Example:

{
  "sms_sessions": [
    {
      "last_access_time": "2022-03-25T02:11:27Z",
      "latest_message": {
        "attachments": [
          {
            "id": "ttllslww",
            "type": "GIF"
          }
        ],
        "date_time": "2022-03-25T02:11:27Z",
        "direction": "Out",
        "message": "hello",
        "message_id": "cfc07047-123e-4097-91d4-ac2635d646af",
        "message_type": 6,
        "sender": {
          "display_name": "usersubsetting0001@testapi.com",
          "owner": {
            "id": "DnEopNmXQEGU2uvvzjgojw",
            "type": "user"
          },
          "phone_number": "+18108001001"
        },
        "to_members": [
          {
            "display_name": "test api",
            "owner": {
              "id": "QOFvOvk7SJeOR2VBfL79_g",
              "type": "user"
            },
            "phone_number": "+13522348840"
          }
        ]
      },
      "participants": [
        {
          "display_name": "usersubsetting0001@testapi.com",
          "owner": {
            "id": "QOFvOvk7SJeOR2VBfL79_g",
            "type": "user"
          },
          "phone_number": "+13522348840",
          "is_session_owner": true
        }
      ],
      "session_id": "67e261d9eefb2f87dc8193b4c2aeb1d8",
      "session_type": "user",
      "unread_message_count": 125
    }
  ],
  "sync_token": "TVR5cXB2b2dmSl8xNjIxNTc0ODQ0MDY3XzE2NDgxNzQyODcwMDk="
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> SMS session type is invalid. <br> **Error Code:** `300` <br> Invalid user id.<br> User does not exist. <br> **Error Code:** `7035` <br> The number of new records exceeds the sync count. Please resync with the `FSync` method. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2001` <br> Account does not exist. <br> **Error Code:** `300` <br> The sync token is invalid or expired. <br> **Error Code:** `1001` <br> User does not exist: {userId} <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List SMS campaigns ⚠️ Deprecated

  • Method: GET
  • Path: /phone/sms_campaigns
  • Tags: SMS Campaign

Returns a list of all SMS campaigns in a Zoom account.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Phone license

Scopes: phone:read:admin

Granular Scopes: phone:read:list_sms_campaigns:admin

Rate Limit Label: MEDIUM

Responses

Status: 200 **HTTP Status Code:** `200` **OK** SMS campaign listed successfully.
Content-Type: application/json
  • next_page_token

    string — The next page token paginates through a large set of results. A next page token return whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • page_size

    integer, default: 30 — The number of records returned within a single API call.

  • sms_campaigns

    array

    Items:

    • brand

      object — The business information from Zoom account.

      • id

        string — The brand ID.

      • name

        string — The brand name.

    • display_name

      string — The display name for the SMS campaign.

    • id

      string — The campaign ID.

    • status

      string, possible values: "draft", "active", "expired", "pending", "declined", "--" — The status of the SMS campaign. Returns `--` if the campaign is in an exception status.

  • total_records

    integer — The total number of records returned.

Example:

{
  "next_page_token": "bkOcmnm6mn6ioYAi10BcgRiEL38WzAo6jP2",
  "page_size": 30,
  "sms_campaigns": [
    {
      "id": "C-BlVwSdjvS3WXk5gzfIQFfQ",
      "display_name": "Test SMS Campaign",
      "status": "active",
      "brand": {
        "id": "B-c3AN66d_Q4mrQFNUaW-G2w",
        "name": "Test Campaign"
      }
    }
  ],
  "total_records": 1
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> The next page token is invalid or expired. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get an SMS campaign ⚠️ Deprecated

  • Method: GET
  • Path: /phone/sms_campaigns/{smsCampaignId}
  • Tags: SMS Campaign

Returns a specific SMS campaign.

Prerequisites:

  • A Pro or higher account plan
  • A Zoom Phone license

Scopes: phone:read:admin

Granular Scopes: phone:read:sms_campaign:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` **OK** SMS campaign details retrieved successfully.
Content-Type: application/json
  • auto_renew

    boolean — Whether to keep the SMS capabilities for all phone numbers associated with this campaign. If 'false', the campaign will expire 90 days from the creation date.

  • brand

    object — The business information from Zoom account.

    • id

      string — The brand ID.

    • name

      string — The brand name.

  • categories_fit

    boolean — Whether *all* customer-facing messages fit into the categories `Account Notifications`, `Customer Care`, `Delivery Notifications`, `Marketing`, and `Public Service Announcements`.

  • content_type

    array — The message's content type.

    Items:

    string, possible values: "urlLink", "phoneNumber", "ageGated", "lending"

  • create_time

    string — The creation time of the campaign.

  • display_name

    string — The display name for the SMS campaign.

  • id

    string — The campaign ID.

  • phone_numbers

    array — Assigned phone numbers.

    Items:

    • id

      string — The phone number ID.

    • number

      string — The phone number that is assigned to the SMS campaign.

  • sample_message_1

    string — The sample message 1.

  • sample_message_2

    string — The sample message 2.

  • sample_message_3

    string — The sample message 3.

  • sample_message_4

    string — The sample message 4.

  • sample_message_5

    string — The sample message 5.

  • service_type

    string, possible values: "zoomPhone", "contactCenter" — Which service the campaign is used for.

  • status

    string, possible values: "draft", "active", "expired", "pending", "declined", "--" — The status of the SMS campaign. Returns `--` if the campaign is in an exception status.

  • use_case

    string, possible values: "lowVolumeMixed" — What will you be using these campaigns for.

Example:

{
  "id": "C-BlVwSdjvS3WXk5gzfIQFfQ",
  "display_name": "Test SMS Campaign",
  "status": "active",
  "service_type": "zoomPhone",
  "brand": {
    "id": "B-c3AN66d_Q4mrQFNUaW-G2w",
    "name": "Test Campaign"
  },
  "phone_numbers": [
    {
      "id": "iHE1MQAET2iV85MbfaQmwg",
      "number": "+18887193005"
    }
  ],
  "auto_renew": true,
  "create_time": "2022-07-21T02:23:25.000Z",
  "use_case": "lowVolumeMixed",
  "categories_fit": true,
  "content_type": [
    "urlLink"
  ],
  "sample_message_1": "Test Campaign Message1",
  "sample_message_2": "Test Campaign Message2",
  "sample_message_3": "Test Campaign Message3",
  "sample_message_4": "Test Campaign Message4",
  "sample_message_5": "Test Campaign Message5"
}
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Assign a phone number to SMS campaign ⚠️ Deprecated

  • Method: POST
  • Path: /phone/sms_campaigns/{smsCampaignId}/phone_numbers
  • Tags: SMS Campaign

Assigns a phone number to the SMS campaign.

Prerequisites:

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:write:admin

Granular Scopes: phone:write:sms_campaign_number:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • contact_number (required)

    string — The contact phone number of the employee issuing the letter of authorization required to port in SMS capabilities on the numbers.

  • loa_authorizing_person (required)

    string — The name of the employee issuing the letter of authorization required to port in SMS capabilities on the numbers.

  • phone_numbers (required)

    array

    Items:

    • id

      string — The phone number ID.

    • number

      string — The phone number in E164 format.

  • title (required)

    string — The job Title of the person authorizing and signing the leave of absence.

  • contact_emails

    string — The contact email of the employee issuing the letter of authorization required to port in SMS capabilities on the numbers.

Example:

{
  "phone_numbers": [
    {
      "id": "iHE1MQAET2iV85MbfaQmwg",
      "number": "+18887193005"
    }
  ],
  "loa_authorizing_person": "Alex Carter",
  "contact_number": "+12090000000",
  "title": "Zoom Engineer",
  "contact_emails": "alex.carter@zoom.us"
}

Responses

Status: 201 **HTTP Status Code:** `201` Phone numbers assigned successfully.
Content-Type: application/json
  • phone_numbers

    array — The assigned phone numbers.

    Items:

    • id

      string — The phone number ID.

    • number

      string — The phone number (in E164 format) that is assigned to the SMS campaign.

Example:

{
  "phone_numbers": [
    {
      "id": "iHE1MQAET2iV85MbfaQmwg",
      "number": "+18887193005"
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> The campaign does not exist.<br> The campaign is not active.<br> Numbers both not available.<br> Can not assign campaign to pending number: {0}.<br> Can not assign campaign to toll free number: {0}.<br> Can not enable sms for BYOC number: {0}.<br> Can not assign campaign to pending campaign number.<br> The selected number size exceeds campaign capacity.<br> The maximum size for phone numbers is 49. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List opt statuses of phone numbers assigned to SMS campaign

  • Method: GET
  • Path: /phone/sms_campaigns/{smsCampaignId}/phone_numbers/opt_status
  • Tags: SMS Campaign

Returns the opt statuses of phone numbers that are assigned to SMS the campaign.

Scopes: phone:read:admin

Granular Scopes: phone:read:sms_campaign_number_opt_status:admin

Rate Limit Label: LIGHT

Responses

Status: 200 The list of opt statuses for each pair of sender's phone number and receiver's phone number.
Content-Type: application/json
  • phone_number_campaign_opt_statuses (required)

    array — The list of opt statuses for each number pair.

    Items:

    • consumer_phone_number (required)

      string — The end user's phone number in E164 format that sends the Opt-in or Opt-out keyword to the Zoom Phone number.

    • opt_status (required)

      string, possible values: "pending", "opt_out", "opt_in" — The opt status.

    • zoom_phone_user_number (required)

      string — The Zoom user's phone number in E164 format that receives the Opt-in or Opt-out keyword from the end user.

Example:

{
  "phone_number_campaign_opt_statuses": [
    {
      "consumer_phone_number": "+15043449240",
      "zoom_phone_user_number": "+12094436304",
      "opt_status": "opt_out"
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request Size of unique receiver phone numbers cannot exceed the predefined limit. **Error Code:** `400` <br> Size of unique receiver phone numbers cannot exceed {0}. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found Path variable smsCampaignId not found **Error Code:** `404` <br> Path variable smsCampaignId not found <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update opt statuses of phone numbers assigned to SMS campaign

  • Method: PATCH
  • Path: /phone/sms_campaigns/{smsCampaignId}/phone_numbers/opt_status
  • Tags: SMS Campaign

Updates opt statuses of phone numbers that are assigned to the SMS campaign.

Scopes: phone:write:admin

Granular Scopes: phone:update:sms_campaign_number_opt_status:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • consumer_phone_number (required)

    string — The end user's phone number that sends the Opt-in or Opt-out keyword to the Zoom Phone number.

  • opt_status (required)

    string, possible values: "opt_in", "opt_out" — The opt status: either `opt_in` or `opt_out`.

  • zoom_phone_user_numbers (required)

    array — The Zoom users' phone numbers that receive the Opt-in or Opt-out keyword from the end user.

    Items:

    string

Example:

{
  "consumer_phone_number": "15043449240",
  "zoom_phone_user_numbers": [
    "12094436304"
  ],
  "opt_status": "opt_out"
}

Responses

Status: 204 Update opt status for each pair of sender's phone number and receiver's phone number.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request Opt status should be either opt_out or opt_in. **Error Code:** `400` <br> Opt status should be either opt_out or opt_in. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found Path variable smsCampaignId not found. **Error Code:** `404` <br> Path variable smsCampaignId not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Unassign a phone number ⚠️ Deprecated

  • Method: DELETE
  • Path: /phone/sms_campaigns/{smsCampaignId}/phone_numbers/{phoneNumberId}
  • Tags: SMS Campaign

Unassigns a phone number from the SMS campaign. Remove the assigned phone number from the campaign.

Prerequisites:

  • A Business or Enterprise account
  • A Zoom Phone license
  • The campaign must have been previously assigned a Zoom Phone number

Scopes: phone:write:admin

Granular Scopes: phone:delete:sms_campaign_number:admin

Rate Limit Label: LIGHT

Responses

Status: 204 **HTTP Status Code:** `204` The phone number has been unassigned successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `404` <br> The brand does not exist. <br> **Error Code:** `400` <br> The campaign does not exist.<br> The campaign does not have the number. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List user's opt statuses of phone numbers

  • Method: GET
  • Path: /phone/user/{userId}/sms_campaigns/phone_numbers/opt_status
  • Tags: SMS Campaign

Returns the opt statuses of a user’s phone numbers. For user-level apps, pass the me value instead of the userId parameter.

Scopes: phone:read,phone:read:admin

Granular Scopes: phone:read:sms_campaign_number_opt_status,phone:read:sms_campaign_number_opt_status:admin

Rate Limit Label: LIGHT

Responses

Status: 200 The list of opt statuses for each pair of sender's phone number and receiver's phone number.
Content-Type: application/json
  • phone_number_campaign_opt_statuses (required)

    array — The list of opt statuses for each number pair.

    Items:

    • consumer_phone_number (required)

      string — The end user's phone number in E164 format that sends the Opt-in or Opt-out keyword to the Zoom Phone number.

    • opt_status (required)

      string, possible values: "pending", "opt_out", "opt_in" — The opt status.

    • zoom_phone_user_number (required)

      string — The Zoom user's phone number in E164 format that receives the Opt-in or Opt-out keyword from the end user.

    • opt_in_message

      string — If `opt_in_status=1`, the `opt_in_message` will return the Opt-In message of the Campaign bound to `zoom_phone_user_number`. In this case, you must send the `opt_in_message` as the first message in the SMS session and then wait for the Opt-In response.

    • opt_in_status

      integer, format: int32, possible values: 0, 1, 2, 3, 4, default: 0 — The Opt-In status between the Zoom Phone user number and consumer phone number. This is a sub-status of `opt_status` and uses the following enumeration: - 0: Default status. The Opt-In status for the Zoom Phone user number cannot be determined. This may occur when the Zoom Phone user number is not associated with a Campaign, among other reasons. - 1: This is a new SMS session and an Opt-In message must be sent first. - 2: An Opt-In message has been sent and a response is pending. - 3: An Opt-In message has been sent and the recipient has consented to receive additional SMS messages. - 4: An Opt-In message has been sent, but the recipient has declined to receive additional SMS messages, or the number has been configured to block all outbound SMS messages.

Example:

{
  "phone_number_campaign_opt_statuses": [
    {
      "consumer_phone_number": "+120944XXXXX",
      "zoom_phone_user_number": "+120944XXXXX",
      "opt_status": "opt_out",
      "opt_in_status": 0,
      "opt_in_message": "Text START to receive text messages from ZOOM. Message frequency may vary. Message and Data Rates may apply. To end messaging from us, reply with STOP. Reply with HELP for more information."
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Size of unique receiver phone numbers cannot exceed {0}. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `404` <br> User does not exist:{userId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List opt statuses of phone numbers assigned to SMS consent

  • Method: GET
  • Path: /phone/sms_consent/{consentId}/phone_numbers/opt_status
  • Tags: SMS Consent

Returns the opt statuses of phone numbers that are assigned to SMS consent.

Scopes: phone:read:admin

Granular Scopes: phone:read:sms_consent_number_opt_status:admin

Rate Limit Label: LIGHT

Responses

Status: 200 The list of opt statuses for each pair of sender's phone number and receiver's phone number.
Content-Type: application/json
  • phone_number_consent_opt_statuses (required)

    array — The list of opt statuses for each number pair.

    Items:

    • consumer_phone_number (required)

      string — The end user's phone number in E164 format that sends the Opt-in or Opt-out keyword to the Zoom Phone number.

    • opt_status (required)

      string, possible values: "pending", "opt_out", "opt_in" — The opt status.

    • zoom_phone_user_number (required)

      string — The Zoom user's phone number in E164 format that receives the Opt-in or Opt-out keyword from the end user.

Example:

{
  "phone_number_consent_opt_statuses": [
    {
      "consumer_phone_number": "+15043449240",
      "zoom_phone_user_number": "+12094436304",
      "opt_status": "opt_out"
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Size of unique receiver phone numbers cannot exceed the predefined limit. <br> **Error Code:** `300` <br> Validation Failed. { "field": "zoom_phone_user_numbers", "message": "Missing field." } <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `404` <br> The consent does not exist <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).

List setting templates

  • Method: GET
  • Path: /phone/setting_templates
  • Tags: Setting Templates

Gets a list of all the created phone template settings.

Prerequisites:

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:read:admin

Granular Scopes: phone:read:list_setting_templates:admin

Rate Limit Label: Light

Responses

Status: 200 **HTTP Status Code:** `200` OK
Content-Type: application/json
  • next_page_token

    string — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes

  • page_size

    integer — The number of records returned within a single API call. The default is **30** and the maximum is **300**.

  • templates

    array

    Items:

    • description

      string — Template description.

    • id

      string — Unique identifier of the template.

    • name

      string — Template name.

    • type

      string, possible values: "user", "group", "autReceptionist", "commonArea", "zr", "interop" — Template type. The value of this field can be one of the following: * `user` * `group` * `autReceptionist` * `commonArea` * `zr` * `interop`

  • total_records

    integer — The total number of records returned.

Example:

{
  "next_page_token": "nav48KOj42vYPSG4f0cCdT575bZ980did22",
  "page_size": 30,
  "templates": [
    {
      "description": "Main site user template",
      "id": "2kFqiqSlS5udzWB5QqMiNg",
      "name": "user_template",
      "type": "user"
    }
  ],
  "total_records": 2
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Multiple Sites option has been disabled. Enable it and try again.
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `124` <br> Account does not exist: {accountId}.
Status: 404 **HTTP Status Code:** `404` <br> Not Found
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Add a setting template

  • Method: POST
  • Path: /phone/setting_templates
  • Tags: Setting Templates

Creates a Zoom Phone setting template for an account. After creating a phone template, the defined settings will become the default settings for an account.

Prerequisites:

  • A Business or enterprise Zoom account
  • A Zoom Phone license

Scopes: phone:write:admin

Granular Scopes: phone:write:setting_template:admin

Rate Limit Label: Light

Request Body

Content-Type: application/json
  • name (required)

    string — The name of the template.

  • type (required)

    string — The type of template. Values include `user`.

  • description

    string — A description of the template.

  • site_id

    string — The unique identifier of the site. It's required only when multiple sites are enabled. See [Managing multiple sites](https://support.zoom.us/hc/en-us/articles/360020809672-Managing-multiple-sites) for details.

Example:

{
  "description": "Main site user template",
  "name": "user template",
  "site_id": "SQv52YtkRLC2dwrDdYtGsA",
  "type": "user"
}

Responses

Status: 201 **HTTP Status Code:** `201` Created Successfully.
Content-Type: application/json
  • description

    string — The template description.

  • id

    string — The template ID.

  • name

    string — The template name.

  • type

    string — The type of template. Values include `user`.

Example:

{
  "description": "Main site user template",
  "id": "2kFqiqSlS5udzWB5QqMiNg",
  "name": "user template",
  "type": "user"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Validation failed. You provided an incorrect value for the template type. Provide a valid value and try again. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `124` <br> Account does not exist: {accountId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get setting template details

  • Method: GET
  • Path: /phone/setting_templates/{templateId}
  • Tags: Setting Templates

Returns information about an account's phone template.

Prerequisites:

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:read:admin

Granular Scopes: phone:read:setting_template:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` OK
Content-Type: application/json
  • description

    string — The description of the template.

  • id

    string — This field specifies the template ID.

  • name

    string — This field specifies the name of the template.

  • policy

    object

    • ad_hoc_call_recording

      object

      • enable

        boolean — Whether to allow current extension to record and save calls in the cloud.

      • recording_start_prompt

        boolean — Whether to play a prompt to call participants when the recording has started.

      • recording_transcription

        boolean — Whether to allow call recording transcription.

    • auto_call_recording

      object

      • enable

        boolean — Whether to enable automatic call recording.

      • inbound_audio_notification

        object

        • recording_start_prompt

          boolean — Whether to play a prompt to call participants when the recording has started for inbound call is enabled. <b>Note:</b> * If customers do not opt for an OP flag named `Enable Caller Based Consent Options`, the values of `recording_start_prompt`, `inbound_audio_notification.recording_start_prompt`, and `outbound_audio_notification.recording_start_prompt` always remain consistent. * If customers do not opt for an OP flag named `Enable Caller Based Consent Options`, update both `inbound_audio_notification.recording_start_prompt` and `outbound_audio_notification.recording_start_prompt` with the same value.

      • outbound_audio_notification

        object

        • recording_start_prompt

          boolean — Whether to play a prompt to call participants when the recording has started for outbound call is enabled. <b>Note:</b> * If customers do not opt for an OP flag named `Enable Caller Based Consent Options`, the values of `recording_start_prompt`, `inbound_audio_notification.recording_start_prompt`, and `outbound_audio_notification.recording_start_prompt` always remain consistent. * If customers do not opt for an OP flag named `Enable Caller Based Consent Options`, update both `inbound_audio_notification.recording_start_prompt` and `outbound_audio_notification.recording_start_prompt` with the same value.

      • recording_calls

        string — Values: inbound, outbound, both.

      • recording_start_prompt

        boolean — Whether to play a prompt to call participants when the recording has started. <b>Deprecated:</b> This field will be deprecated in a future release. As an alternative, use the `inbound_audio_notification.recording_start_prompt` and `outbound_audio_notification.recording_start_prompt` to operate inbound and outbound prompt separately. <b>Note:</b> * If customers opt for an OP flag named `Enable Caller Based Consent Options`, the values of `recording_start_prompt` and `inbound_audio_notification.recording_start_prompt` will remain consistent. When the field is updated, the `inbound_audio_notification.recording_start_prompt` will be also updated. * If customers do not opt for an OP flag named `Enable Caller Based Consent Options`, the values of `recording_start_prompt`, `inbound_audio_notification.recording_start_prompt`, and `outbound_audio_notification.recording_start_prompt` always remain consistent. When the field is updated, the `inbound_audio_notification.recording_start_prompt`, and `outbound_audio_notification.recording_start_prompt` will be also updated.

      • recording_transcription

        boolean — Whether to allow call recording transcription.

    • call_forwarding

      object

      • call_forwarding_type

        integer, possible values: 1, 2, 3, 4 — `1` - Low restriction (external numbers not allowed) `2` - Medium restriction (external numbers and external contacts not allowed) `3` - High restriction (external numbers, external contacts and internal extensions without inbound automatic call recording not allowed) `4` - No restriction

      • enable

        boolean — Whether to allow users to forward their calls to other numbers.

    • call_overflow

      object

      • call_overflow_type

        integer, possible values: 1, 2, 3, 4 — `1` - Low restriction (external numbers not allowed) `2` - Medium restriction (external numbers and external contacts not allowed) `3` - High restriction (external numbers, external contacts and internal extensions without inbound automatic call recording not allowed) `4` - No restriction

      • enable

        boolean — Whether to allow users to forward their calls to other numbers when a call is not answered.

    • sms

      object

      • enable

        boolean — Whether to allow the user to send and receive messages.

      • international_sms

        boolean

    • voicemail

      object

      • allow_transcription

        boolean — Whether to allow the voicemail transcription.

      • enable

        boolean — Whether to allow the current extension to access, receive, or share voicemail.

  • profile

    object

    • area_code

      string — The area code from which the phone account was created.

    • country

      string — The name of the country where the template was created.

  • type

    string, possible values: "user", "group", "autoReceptionist", "commonArea", "zr", "interop" — The type of template being queried. Values: `user`, `group`, `auto receptionist` `common area`,`zr`, `interop`.

  • user_settings

    object

    • audio_prompt_language

      string — The audio prompt language code. American English: `en-US` British English: `en-GB` Espa&ntilde;ol americano: `es-US` Fran&ccedil;ais canadien: `fr-CA` Dansk: `da-DK` Deutsch: `de-DE` Espa&ntilde;ol: `es-ES` Fran&ccedil;ais: `fr-FR` Italiano: `it-IT` Nederlands: `nl-NL` Portugues portugal: `pt-PT` Japanese: `ja-JP` Korean: `ko-KO` Portugues brasil: `pt-BR` Chinese: `zh-CN` Taiwanese: `zh-TW`

    • block_calls_without_caller_id

      boolean — The block calls without caller ID.

    • call_handling

      object

      • business_hours

        object

        • business_hour_action

          integer, possible values: 0, 1, 9, 11, 26, 50 — When a call is not answered: 0-Forward to a voicemail; 1-Play a message, then disconnect; 9-Disconnect; 11-Forward to an external number; 26-Forward to External Contacts; 50-Forward to another extension

        • busy_action

          integer, possible values: 0, 1, 11, 12, 13, 26, 50 — When the user is busy on another call: 0-Forward to a voicemail; 1-Play a message, then disconnect; 11-Forward to an external number; 12-Call waiting; 13-Play a busy signal; 26-Forward to External Contacts; 50-Forward to another extension.

        • busy_connect_operator

          object — Whether to allow callers to press 0 to reach an operator or press 1 to leave a message, or allow neither of these options.

          • allow_caller_check_voicemail

            boolean — Whether to allow callers to check their voicemail. Make available only when the `busy_action` is `0`.

          • enable

            boolean — Whether to enable connect to operator.

          • external_number

            object — The forwarding external number when a call is not answered. Make available only when the `busy_action` is `11`.

            • description

              string — The description for the phone number.

            • number

              string — The phone number in E164 format.

          • id

            string — The phone extension ID of the user, zoomRoom, commonAreaPhone, autoReceptionist, callQueue, or sharedLineGroup.

          • play_callee_voicemail_greeting

            boolean — Whether to play the callee's voicemail greeting when the caller reaches the end of forwarding sequence. It's available only when the `busy_action` is `0` or `50`.

          • require_press_1_before_connecting

            boolean — Whether to require pressing 1 before connecting the call. Make available only when the `busy_action` is `11` or '26'.

          • type

            string, possible values: "user", "zoomRoom", "commonAreaPhone", "autoReceptionist", "callQueue", "sharedLineGroup" — Values: 1-user, 2-callQueue, 3-autoReceptionist, 4-commonAreaPhone, 5-zoomRoom, 7-sharedLineGroup

        • connect_to_operator

          object — Whether to allow callers to press zero to reach an operator, press one to leave a message, or allow neither of these options.

          • allow_caller_check_voicemail

            boolean — Whether to allow callers to check their voicemail. Make available only when the `business_hour_action` is `0`.

          • enable

            boolean — Whether to enable connect to operator.

          • external_number

            object — The forwarding external number when a call is not answered. Make available only when the `business_hour_action` is `11`.

            • description

              string — The description for the phone number.

            • number

              string — The phone number in E164 format.

          • id

            string — The phone extension ID of the user, zoomRoom, commonArea, autoReceptionist, callQueue or sharedLineGroup.

          • play_callee_voicemail_greeting

            boolean — Whether to play the callee's voicemail greeting when the caller reaches the end of forwarding sequence. Make available only when the `business_hour_action` is `0` or `50`.

          • require_press_1_before_connecting

            boolean — Whether to require pressing 1 before connecting the call. Make available only when the `business_hour_action` is `11` or '26'.

          • type

            string, possible values: "user", "zoomRoom", "commonArea", "autoReceptionist", "callQueue", "sharedLineGroup" — Values: 1-user, 2-callQueue, 3-autoReceptionist, 4-commonArea, 5-zoomRoom, 7-sharedLineGroup

        • custom_hours

          array

          Items:

          • from

            string, format: time — Values: hh:mm

          • to

            string, format: time — Values: hh:mm

          • type

            integer, possible values: 1, 2 — Values: 1-24 Hours, 2-customized hours

          • weekday

            integer, possible values: 1, 2, 3, 4, 5, 6, 7 — Values: 1-7 Sun-Sat

        • ring_type

          string — The call handling ring mode: 0-Simultaneous, 1-Sequential

        • ringing_duration

          string, possible values: "10", "15", "20", "25", "30", "35", "40", "45", "50", "55", "60" — Ringing duration for each device in seconds. Values: 10,15,20,25,30,35,40,45,50,55,60

        • type

          integer, possible values: 1, 2 — Values: 1-24 Hours, 7 Days a Week; 2-Custom Hours

      • close_hours

        object

        • busy_action

          integer, possible values: 0, 1, 11, 12, 13, 26, 50 — The action to take when the user is busy on another call: 0-Forward to a voicemail; 1-Play a message, then disconnect; 11-Forward to an external number; 12-Call waiting; 13-Play a busy signal; 26-Forward to External Contacts; 50-Forward to another extension .

        • busy_connect_operator

          object — Whether to allow callers to press 0 to reach an operator or press 1 to leave a message, or allow neither of these options.

          • allow_caller_check_voicemail

            boolean — Whether to allow callers to check their voicemail. Make available only when the `busy_action` is `0`.

          • enable

            boolean

          • external_number

            object — The forwarding external number when a call is not answered. It's available only when the `busy_action` is `11`.

            • description

              string — The description for the phone number.

            • number

              string — The phone number in E164 format.

          • id

            string — The phone extension ID of the user, zoomRoom, commonArea, autoReceptionist, callQueue, or sharedLineGroup.

          • play_callee_voicemail_greeting

            boolean — Whether to play the callee's voicemail greeting when the caller reaches the end of forwarding sequence. Make available only when the `busy_action` is `0` or `50`.

          • require_press_1_before_connecting

            boolean — Whether to require pressing one before connecting the call. Make available only when the `busy_action` is `11` or '26'.

          • type

            string, possible values: "user", "zoomRoom", "commonArea", "autoReceptionist", "callQueue", "sharedLineGroup" — The Values: 1-user, 2-callQueue, 3-autoReceptionist, 4-commonArea, 5-zoomRoom, 7-sharedLineGroup.

        • close_hour_action

          integer, possible values: 0, 1, 9, 11, 26, 50 — The action to take when a call is not answered: 0-Forward to a voicemail; 1-Play a message, then disconnect; 9-Disconnect; 11-Forward to an external number; 26-Forward to External Contacts; 50-Forward to another extension

        • connect_to_operator

          object — Whether to allow callers to press zero to reach an operator or press One to leave a message, or allow neither of these options.

          • allow_caller_check_voicemail

            boolean — Whether to allow callers to check their voicemail. Make available only when the `close_hour_action` is `0`.

          • enable

            boolean

          • external_number

            object — The forwarding external number when a call is not answered. Make available only when the `close_hour_action` is `11`.

            • description

              string — The description for the phone number.

            • number

              string — The phone number in E164 format.

          • id

            string — The phone extension ID of the user, zoomRoom, commonAreaPhone, autoReceptionist, callQueue, or sharedLineGroup.

          • play_callee_voicemail_greeting

            boolean — Whether to play the callee's voicemail greeting when the caller reaches the end of forwarding sequence. Make available only when the `close_hour_action` is `0` or `50`.

          • require_press_1_before_connecting

            boolean — Whether to require pressing 1 before connecting the call. Make available only when the `close_hour_action` is `11` or '26'.

          • type

            string, possible values: "user", "zoomRoom", "commonAreaPhone", "autoReceptionist", "callQueue", "sharedLineGroup" — Values: 1-user, 2-callQueue, 3-autoReceptionist, 4-commonAreaPhone, 5-zoomRoom, 7-sharedLineGroup

        • max_wait_time

          string, possible values: "10", "15", "20", "25", "30", "35", "40", "45", "50", "55", "60" — The maximum wait time in seconds. Values: 10,15,20,25,30,35,40,45,50,55,60.

    • desk_phone

      object

      • pin_code

        string — The pin code.

    • hold_music

      string, possible values: "default", "disable" — The value of this field can be either `default` or `disable`. * `default`: This means that the hold music can be set using the [audio library](https://support.zoom.us/hc/en-us/articles/360028212652-Using-the-audio-library-to-customize-greetings-and-hold-music). * `disable`: This means that the hold music is disabled.

Example:

{
  "description": "Main site user template",
  "id": "2kFqiqSlS5udzWB5QqMiNg",
  "name": "user template",
  "policy": {
    "ad_hoc_call_recording": {
      "enable": true,
      "recording_start_prompt": true,
      "recording_transcription": true
    },
    "auto_call_recording": {
      "enable": true,
      "recording_calls": "inbound",
      "recording_transcription": true,
      "inbound_audio_notification": {
        "recording_start_prompt": true
      },
      "outbound_audio_notification": {
        "recording_start_prompt": true
      }
    },
    "sms": {
      "enable": true,
      "international_sms": true
    },
    "voicemail": {
      "allow_transcription": true,
      "enable": true
    },
    "call_forwarding": {
      "enable": true,
      "call_forwarding_type": 1
    },
    "call_overflow": {
      "enable": true,
      "call_overflow_type": 1
    }
  },
  "profile": {
    "area_code": "1",
    "country": "US"
  },
  "type": "user",
  "user_settings": {
    "audio_prompt_language": "en-US",
    "block_calls_without_caller_id": false,
    "call_handling": {
      "business_hours": {
        "business_hour_action": 50,
        "connect_to_operator": {
          "enable": true,
          "id": "fWOgOALdT1ei4vjXK-QYsA",
          "type": "user",
          "external_number": {
            "number": "+12055433924",
            "description": "API test forwarding to number"
          },
          "play_callee_voicemail_greeting": true,
          "require_press_1_before_connecting": true,
          "allow_caller_check_voicemail": true
        },
        "busy_action": 50,
        "busy_connect_operator": {
          "enable": true,
          "id": "fWOgOALdT1ei4vjXK-QYsA",
          "type": "user",
          "external_number": {
            "number": "+12055433924",
            "description": "API test forwarding to number"
          },
          "play_callee_voicemail_greeting": true,
          "require_press_1_before_connecting": true,
          "allow_caller_check_voicemail": true
        },
        "custom_hours": [
          {
            "from": "09:00",
            "to": "18:00",
            "type": 2,
            "weekday": 2
          }
        ],
        "ring_type": "simultaneous",
        "ringing_duration": "15",
        "type": 2
      },
      "close_hours": {
        "close_hour_action": 50,
        "connect_to_operator": {
          "enable": true,
          "id": "fWOgOALdT1ei4vjXK-QYsA",
          "type": "user",
          "external_number": {
            "number": "+12055433924",
            "description": "API test forwarding to number"
          },
          "play_callee_voicemail_greeting": true,
          "require_press_1_before_connecting": true,
          "allow_caller_check_voicemail": true
        },
        "busy_action": 50,
        "busy_connect_operator": {
          "enable": true,
          "id": "fWOgOALdT1ei4vjXK-QYsA",
          "type": "user",
          "external_number": {
            "number": "+12055433924",
            "description": "API test forwarding to number"
          },
          "play_callee_voicemail_greeting": true,
          "require_press_1_before_connecting": true,
          "allow_caller_check_voicemail": true
        },
        "max_wait_time": "30"
      }
    },
    "desk_phone": {
      "pin_code": "0995"
    },
    "hold_music": "default"
  }
}
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `124` <br> Account does not exist: {accountId}. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update a setting template

  • Method: PATCH
  • Path: /phone/setting_templates/{templateId}
  • Tags: Setting Templates

Updates or modifies a phone template's settings.

Prerequisites:

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:write:admin

Granular Scopes: phone:update:setting_template:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • description

    string — The description of the template.

  • name

    string — This field specifies the name of the template.

  • policy

    object

    • ad_hoc_call_recording

      object

      • enable

        boolean — Whether to allow the current extension to record and save calls in the cloud.

      • recording_start_prompt

        boolean — Whether to play a prompt to call participants when the recording has started.

      • recording_transcription

        boolean — Whether to allow call recording transcription.

    • auto_call_recording

      object

      • enable

        boolean — The automatic call recording.

      • inbound_audio_notification

        object

        • recording_start_prompt

          boolean — Whether a prompt plays to call participants when the recording has started for the inbound call is enabled. <b>Note:</b> * if customers who do not opt OP flag named `Enable Caller Based Consent Options`, the values of `recording_start_prompt`, `inbound_audio_notification.recording_start_prompt`, and `outbound_audio_notification.recording_start_prompt` always remain consistent. * if customers who do not opt OP flag named `Enable Caller Based Consent Options`, update both `inbound_audio_notification.recording_start_prompt` and `outbound_audio_notification.recording_start_prompt` with the same value.

      • outbound_audio_notification

        object

        • recording_start_prompt

          boolean — Whether a prompt plays to call participants when the recording has started for the outbound call is enabled. <b>Note:</b> * if customers who do not opt OP flag named `Enable Caller Based Consent Options`, the values of `recording_start_prompt`, `inbound_audio_notification.recording_start_prompt`, and `outbound_audio_notification.recording_start_prompt` always remain consistent. * if customers who do not opt OP flag named `Enable Caller Based Consent Options`, update both `inbound_audio_notification.recording_start_prompt` and `outbound_audio_notification.recording_start_prompt` with the same value.

      • recording_calls

        string, possible values: "inbound", "outbound", "both" — Values: inbound, outbound, both.

      • recording_start_prompt

        boolean — Whether to play a prompt to call participants when the recording has started. <b>Deprecated:</b> This field will be deprecated in a future release. As an alternative, use the `inbound_audio_notification.recording_start_prompt` and `outbound_audio_notification.recording_start_prompt` to operate inbound and outbound prompt separately. <b>Note:</b> * if customers who opt OP flag named `Enable Caller Based Consent Options`, the values of `recording_start_prompt` and `inbound_audio_notification.recording_start_prompt` will remain consistent. When the field is updated, the `inbound_audio_notification.recording_start_prompt` will be also updated. * if customers who do not opt OP flag named `Enable Caller Based Consent Options`, the values of `recording_start_prompt`, `inbound_audio_notification.recording_start_prompt`, and `outbound_audio_notification.recording_start_prompt` always remain consistent. when the field is updated, the `inbound_audio_notification.recording_start_prompt`, and `outbound_audio_notification.recording_start_prompt` will be also updated.

      • recording_transcription

        boolean — Whether to allow call recording transcription.

    • call_forwarding

      object

      • call_forwarding_type

        integer, possible values: 1, 2, 3, 4 — `1` - Low restriction (external numbers not allowed) `2` - Medium restriction (external numbers and external contacts not allowed) `3` - High restriction (external numbers, external contacts and internal extensions without inbound automatic call recording not allowed) `4` - No restriction

      • enable

        boolean — Whether to allow users to forward their calls to other numbers.

    • call_overflow

      object

      • call_overflow_type

        integer, possible values: 1, 2, 3, 4 — `1` - Low restriction (external numbers not allowed) `2` - Medium restriction (external numbers and external contacts not allowed) `3` - High restriction (external numbers, external contacts and internal extensions without inbound automatic call recording not allowed) `4` - No restriction

      • enable

        boolean — Whether to allow users to forward their calls to other numbers when a call is not answered.

    • sms

      object

      • enable

        boolean — Whether to allow user to send and receive messages.

      • international_sms

        boolean — Whether or not the SMS is international.

    • voicemail

      object

      • allow_transcription

        boolean — Whether to allow voicemail transcription.

      • enable

        boolean — Whether to allow the current extension to access, receive, or share voicemail.

  • profile

    object

    • area_code

      string — The area code from which the phone account was created.

    • country

      string — Name of the country where the template was created.

  • user_settings

    object

    • audio_prompt_language

      string — Audio prompt language code. American English: `en-US` British English: `en-GB` Espa&ntilde;ol americano: `es-US` Fran&ccedil;ais canadien: `fr-CA` Dansk: `da-DK` Deutsch: `de-DE` Espa&ntilde;ol: `es-ES` Fran&ccedil;ais: `fr-FR` Italiano: `it-IT` Nederlands: `nl-NL` Portugues portugal: `pt-PT` Japanese: `ja-JP` Korean: `ko-KO` Portugues brasil: `pt-BR` Chinese: `zh-CN` Taiwanese: `zh-TW`

    • block_calls_without_caller_id

      boolean — The block calls without caller ID.

    • call_handling

      object

      • business_hours

        object

        • business_hour_action

          integer, possible values: 0, 1, 9, 11, 26, 50 — When a call is not answered: 0-Forward to a voicemail; 1-Play a message, then disconnect; 9-Disconnect; 11-Forward to an external number; 26-Forward to External Contacts; 50-Forward to another extension

        • busy_action

          integer, possible values: 0, 1, 11, 12, 13, 26, 50 — When the user is busy on another call: 0-Forward to a voicemail; 1-Play a message, then disconnect; 11-Forward to an external number; 12-Call waiting; 13-Play a busy signal; 26-Forward to External Contacts; 50-Forward to another extension.

        • busy_connect_operator

          object — Whether to allow callers to press zero to reach an operator or press one to leave a message, or allow neither of these options.

          • allow_caller_check_voicemail

            boolean — Whether to allow callers to check their voicemail. Make available only when the `busy_action` is `0`.

          • enable

            boolean — Whether to enable a connection to an operator. It requires the user to input the `ID` if you want to enable. It's available only when the `busy_action` is `0`.

          • external_number

            object — The forwarding external number when a call is not answered. Make available only when the `busy_action` is `11`.

            • description

              string — The description for the phone number.

            • number

              string — The phone number in E164 format.

          • id

            string — The extension ID of user, zoomRoom, commonArea, autoReceptionist, callQueue, or sharedLineGroup. It's available only when the `busy_action` is `0`, `26` or `50`.

          • play_callee_voicemail_greeting

            boolean — Whether to play the callee's voicemail greeting when the caller reaches the end of forwarding sequence. Make available only when the `busy_action` is `0` or `50`.

          • require_press_1_before_connecting

            boolean — Whether to require pressing 1 before connecting the call. Make available only when the `busy_action` is `11` or '26'.

        • connect_to_operator

          object — Whether to allow callers to press zero to reach an operator or press One to leave a message, or allow neither of these options.

          • allow_caller_check_voicemail

            boolean — Whether to allow callers to check their voicemail. Make available only when the `business_hour_action` is `0`.

          • enable

            boolean — Whether to enable connect to the operator. You must input the `id` if you want to enable. It's available only when the `business_hour_action` is `0`.

          • external_number

            object — The forwarding external number when a call is not answered. Available only when the `business_hour_action` is `11`

            • description

              string — The description for the phone number.

            • number

              string — The phone number in E164 format.

          • id

            string — The extension ID of user, zoomRoom, commonAreaPhone, autoReceptionist, callQueue, or sharedLineGroup. It's available only when the `business_hour_action` is `0` or `50`.

          • play_callee_voicemail_greeting

            boolean — Whether to play the callee's voicemail greeting when the caller reaches the end of forwarding sequence. Make available only when the `business_hour_action` is `0` or `50`.

          • require_press_1_before_connecting

            boolean — Whether to require pressing 1 before connecting the call. Make available only when the `business_hour_action` is `11` or '26'.

        • custom_hours

          array

          Items:

          • from

            string, format: time — Values: hh:mm

          • to

            string, format: time — Values: hh:mm

          • type

            integer, possible values: 1, 2 — Values: 1-24 Hours, 2-customized hours

          • weekday

            integer, possible values: 1, 2, 3, 4, 5, 6, 7 — Values: 1-7 sun-sat

        • ring_type

          string — The call handling ring mode: 0-Simultaneous, 1-Sequential

        • ringing_duration

          string, possible values: "10", "15", "20", "25", "30", "35", "40", "45", "50", "55", "60" — Ringing duration for each device, in seconds. Values: 10,15,20,25,30,35,40,45,50,55,60

        • type

          integer, possible values: 1, 2 — Values: 1-24 Hours, 7 Days a Week; 2-Custom Hours

      • close_hours

        object

        • busy_action

          integer, possible values: 0, 1, 11, 12, 13, 26, 50 — The action to take when a call is not answered: 0-Forward to a voicemail; 1-Play a message, then disconnect; 11-Forward to an external number; 12-Call waiting; 13-Play a busy signal; 26-Forward to External Contacts; 50-Forward to another extension .

        • busy_connect_operator

          object — Whether to allow callers to press 0 to reach an operator or press 1 to leave a message, or allow neither of these options.

          • allow_caller_check_voicemail

            boolean — Whether to allow callers to check their voicemail. Make available only when the `busy_action` is `0`.

          • enable

            boolean — Whether to enable a connection to an operator. It requires the user to input the `ID` if you want to enable. It's available only when the `busy_action` is `0`.

          • external_number

            object — The forwarding external number when a call is not answered. It's available only when the `busy_action` is `11`.

            • description

              string — The description for the phone number.

            • number

              string — The phone number in E164 format.

          • id

            string — The extension ID of user, zoomRoom, commonArea, autoReceptionist, callQueue, or sharedLineGroup. It's available only when the `busy_action` is `0`, `26` or `50`.

          • play_callee_voicemail_greeting

            boolean — Whether to play the callee's voicemail greeting when the caller reaches the end of forwarding sequence. Make available only when the `busy_action` is `0` or `50`.

          • require_press_1_before_connecting

            boolean — Whether to require pressing 1 before connecting the call. Mkae available only when the `busy_action` is `11` or '26'.

        • close_hour_action

          integer, possible values: 0, 1, 9, 11, 26, 50 — The action to take when a call is not answered: 0-Forward to a voicemail; 1-Play a message, then disconnect; 9-Disconnect; 11-Forward to an external number; 26-Forward to External Contacts; 50-Forward to another extension

        • connect_to_operator

          object — Whether to allow callers to press Zero to reach an operator or press One to leave a message, or allow neither of these options.

          • allow_caller_check_voicemail

            boolean — Whether to allow callers to check their voicemail. Make available only when the `close_hour_action` is `0`.

          • enable

            boolean — Whether to enable connect to the operator, and you must input the `id` if you want to enable. Available only when the `close_hour_action` is `0`.

          • external_number

            object — The forwarding external number when a call is not answered. Available only when the `close_hour_action` is `11`

            • description

              string — The description for the phone number.

            • number

              string — The phone number in E164 format.

          • id

            string — The extension ID of user, zoomRoom, commonAreaPhone, autoReceptionist, callQueue, or sharedLineGroup. It's available only when the `close_hour_action` is `0` or `50`

          • play_callee_voicemail_greeting

            boolean — Whether to play the callee's voicemail greeting when the caller reaches the end of forwarding sequence. Make available only when the `close_hour_action` is `0` or `50`.

          • require_press_1_before_connecting

            boolean — Whether to require pressing 1 before connecting the call. Make available only when the `close_hour_action` is `11` or '26'.

        • max_wait_time

          string, possible values: "10", "15", "20", "25", "30", "35", "40", "45", "50", "55", "60" — The maximum wait time, in seconds. Values: 10,15,20,25,30,35,40,45,50,55,60

    • desk_phone

      object

      • pin_code

        string — The pin code.

    • hold_music

      string, possible values: "default", "disable" — The value of this field can be either `default` or `disable`. * `default`: This means that the hold music can be set using the [audio library](https://support.zoom.us/hc/en-us/articles/360028212652-Using-the-audio-library-to-customize-greetings-and-hold-music). * `disable`: This means that the hold music is disabled.

Example:

{
  "description": "Main site user template",
  "name": "user template",
  "policy": {
    "ad_hoc_call_recording": {
      "enable": true,
      "recording_start_prompt": true,
      "recording_transcription": true
    },
    "auto_call_recording": {
      "enable": true,
      "recording_calls": "outbound",
      "recording_transcription": true,
      "inbound_audio_notification": {
        "recording_start_prompt": true
      },
      "outbound_audio_notification": {
        "recording_start_prompt": true
      }
    },
    "sms": {
      "enable": true,
      "international_sms": true
    },
    "voicemail": {
      "allow_transcription": true,
      "enable": true
    },
    "call_forwarding": {
      "enable": true,
      "call_forwarding_type": 1
    },
    "call_overflow": {
      "enable": true,
      "call_overflow_type": 1
    }
  },
  "profile": {
    "area_code": "01",
    "country": "US"
  },
  "user_settings": {
    "audio_prompt_language": "ja-JP",
    "block_calls_without_caller_id": false,
    "call_handling": {
      "business_hours": {
        "business_hour_action": 50,
        "connect_to_operator": {
          "enable": true,
          "id": "fWOgOALdT1ei4vjXK-QYsA",
          "external_number": {
            "number": "+12055433924",
            "description": "API test forwarding to number"
          },
          "play_callee_voicemail_greeting": true,
          "require_press_1_before_connecting": true,
          "allow_caller_check_voicemail": true
        },
        "busy_action": 50,
        "busy_connect_operator": {
          "enable": true,
          "id": "fWOgOALdT1ei4vjXK-QYsA",
          "external_number": {
            "number": "+12055433924",
            "description": "API test forwarding to number"
          },
          "play_callee_voicemail_greeting": true,
          "require_press_1_before_connecting": true,
          "allow_caller_check_voicemail": true
        },
        "custom_hours": [
          {
            "from": "09:30",
            "to": "22:00",
            "type": 2,
            "weekday": 1
          }
        ],
        "ring_type": "simultaneous",
        "ringing_duration": "15",
        "type": 2
      },
      "close_hours": {
        "close_hour_action": 50,
        "connect_to_operator": {
          "enable": true,
          "id": "fWOgOALdT1ei4vjXK-QYsA",
          "external_number": {
            "number": "+12055433924",
            "description": "API test forwarding to number"
          },
          "play_callee_voicemail_greeting": true,
          "require_press_1_before_connecting": true,
          "allow_caller_check_voicemail": true
        },
        "busy_action": 50,
        "busy_connect_operator": {
          "enable": true,
          "id": "fWOgOALdT1ei4vjXK-QYsA",
          "external_number": {
            "number": "+12055433924",
            "description": "API test forwarding to number"
          },
          "play_callee_voicemail_greeting": true,
          "require_press_1_before_connecting": true,
          "allow_caller_check_voicemail": true
        },
        "max_wait_time": "20"
      }
    },
    "desk_phone": {
      "pin_code": "0995"
    },
    "hold_music": "disable"
  }
}

Responses

Status: 204 **HTTP Status Code:** `204` No Content. Request was successful.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> The country code you entered is invalid. Provide a valid country code and try again. The area code you entered is invalid. Provide a valid area code with a length between 0 to 6 digits and try again. The value you entered for the audio prompt language code is invalid. PIN code could only include numbers. Invalid PIN code. PIN code must be {0} digits long. Invalid PIN code. PIN code must be {0} to {1} digits long. Invalid PIN code. Your PIN code must not be the same as the extension number. Invalid PIN code. The PIN code must not contain a group of repeated digits. PIN code cannot be an ascending or descending group of digits. Connect to operator type error. You provided an invalid value for call handling ring type. The value of this field must either be “simultaneous” or “sequential”. You provided an invalid value for business hours type field. The value of this field must either be 1 or 2. You provided an invalid value for the business hours action field. You provided an invalid value for the close hours action field. <br> **Error Code:** `13800` <br> You do not enable OP flag named 'Enable Caller Based Consent Options', please using same value to update 'inbound_audio_notification.recording_start_prompt' and 'outbound_audio_notification.recording_start_prompt'. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `124` <br> Account does not exist: {accountId}. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get account policy details

  • Method: GET
  • Path: /phone/policies/{policyType}
  • Tags: Settings

Returns the account policy details.

Prerequisites

  • Pro or higher account plan with Zoom phone license

Scopes: phone:read:admin

Granular Scopes: phone:read:policy:admin

Rate Limit Label: MEDIUM

Responses

Status: 200 **HTTP Status Code:** `200` **OK** Get account policy details successfully.
Content-Type: application/json

One of:

  • allow_emergency_calls

    object — The account-level settings for whether emergency calls are allowed for users and from specific device types.

    • allow_emergency_calls_from_clients

      boolean — Whether users are allowed to make emergency calls from zoom clients.

    • allow_emergency_calls_from_deskphones

      boolean — Whether users are allowed to make emergency calls from desk phones.

    • enable

      boolean — Whether users in this account are allowed to make emergency calls.

    • locked

      boolean — Whether this setting is locked by the account administrator and cannot be overridden at lower levels (user_group, site, or extension).

    • locked_by

      string, possible values: "invalid", "account" — This field specifies the configuration level that has enforced the lock. This indicates where the setting was originally locked and cannot be overridden.

Example:

{
  "allow_emergency_calls": {
    "enable": true,
    "locked": true,
    "locked_by": "account",
    "allow_emergency_calls_from_clients": true,
    "allow_emergency_calls_from_deskphones": true
  }
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Invalid value for parameter 'policyType'. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2001` <br> Account does not exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update account policy

  • Method: PATCH
  • Path: /phone/policies/{policyType}
  • Tags: Settings

Updates the account's Zoom Phone policy.

Prerequisites

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:write:admin

Granular Scopes: phone:update:policy:admin

Rate Limit Label: RESOURCE-INTENSIVE

Request Body

Content-Type: application/json

One of:

  • allow_emergency_calls

    object — THe account-level settings for whether emergency calls are allowed for users and from specific device types.

    • allow_emergency_calls_from_clients

      boolean — Whether users are allowed to make emergency calls from zoom clients.

    • allow_emergency_calls_from_deskphones

      boolean — Whether users are allowed to make emergency calls from desk phones.

    • enable

      boolean — Whether users in this account are allowed to make emergency calls.

    • locked

      boolean — Whether this setting is locked by the account administrator and cannot be overridden at lower levels (user_group, site, or extension).

Example:

{
  "allow_emergency_calls": {
    "enable": true,
    "locked": true,
    "allow_emergency_calls_from_clients": true,
    "allow_emergency_calls_from_deskphones": true
  }
}

Responses

Status: 204 **HTTP Status Code:** `204` Account policy updated.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Invalid value for parameter 'policyType'. <br> **Error Code:** `400` <br> The 'reset' field is not allowed at the account level. <br> **Error Code:** `400` <br> Lock and reset operations cannot be performed simultaneously. <br> **Error Code:** `400` <br> Reset cannot be combined with other operations. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2001` <br> Account does not exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List ported numbers ⚠️ Deprecated

  • Method: GET
  • Path: /phone/ported_numbers/orders
  • Tags: Settings

Use this API to list ported numbers in a Zoom account.

Prerequisites:

  • A Pro or higher account plan
  • A Zoom Phone license

Scopes: phone:read:admin,phone_peering:read:admin

Granular Scopes: phone:read:list_ported_numbers:admin

Rate Limit Label: MEDIUM

Responses

Status: 200 **HTTP Status Code:** `200` **OK** Ported Phone numbers listed successfully.
Content-Type: application/json
  • next_page_token

    string — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • page_size

    integer — The number of records returned within a single API call.

  • ported_numbers

    array

    Items:

    • numbers

      array — The ported numbers.

      Items:

      string

    • order_id

      string — The ported numbers' order ID.

    • replacing_numbers

      array — The ported numbers' replacement numbers.

      Items:

      • source_number

        string — The source number.

      • target_number

        string — The replaced number.

    • status

      string, possible values: "Not_Submitted", "Waiting", "Processing", "Successfully", "Rejected", "Canceled", "FOC" — The ported numbers' status.

    • submission_date_time

      string — The time ported numbers were submitted (format: 'yyyy-MM-ddThh:dd:ssZ').

  • total_records

    integer — The total number of records returned.

Example:

{
  "next_page_token": "R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42",
  "page_size": 30,
  "ported_numbers": [
    {
      "numbers": [
        "+12058945752"
      ],
      "order_id": "2021080307332974349",
      "replacing_numbers": [
        {
          "source_number": "+12058945752",
          "target_number": "+12058945755"
        }
      ],
      "status": "Canceled",
      "submission_date_time": "2021-08-03T07:33:29Z"
    }
  ],
  "total_records": 2
}
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get ported numbers details ⚠️ Deprecated

  • Method: GET
  • Path: /phone/ported_numbers/orders/{orderId}
  • Tags: Settings

Returns details on the ported numbers by specifying order_id.

Prerequisites:

  • A Pro or higher account plan
  • A Zoom phone license

Scopes: phone:read:admin,phone_peering:read:admin

Granular Scopes: phone:read:ported_number:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` **OK** Ported numbers details retrieved successfully.
Content-Type: application/json
  • contact_emails

    string — Contact emails of transferring numbers.

  • contact_number

    string — Contact numbers for transferring numbers.

  • isp

    string — Ported numbers' ISP.

  • numbers

    array — Ported numbers.

    Items:

    string

  • order_id

    string — Ported numbers' order ID.

  • original_billing_info

    object — Ported numbers' original billing info.

    • account_number

      string

    • address

      object

      • city

        string

      • country

        string

      • house_number

        string

      • state_code

        string

      • street_name

        string

      • zip

        string

    • authorizing_person

      string

    • billing_telephone_number

      string

    • company

      string

    • customer_requested_date

      string

    • pin

      string

  • printed_name

    string — Printed names on transferring numbers.

  • replacing_numbers

    array — The ported numbers' replacement numbers.

    Items:

    • source_number

      string — The source number.

    • target_number

      string — The replaced number.

  • status

    string, possible values: "Not_Submitted", "Waiting", "Processing", "Successfully", "Rejected", "Canceled", "FOC" — Ported numbers' status.

  • submission_date_time

    string — The time ported numbers were submitted (format: 'yyyy-MM-ddThh:dd:ssZ').

Example:

{
  "contact_emails": "example@163.com",
  "contact_number": "2058945753",
  "isp": "Twilio International",
  "numbers": [
    "+12058945752"
  ],
  "order_id": "2021080307332974349",
  "original_billing_info": {
    "account_number": "111223",
    "address": {
      "city": "San Jose",
      "country": "US",
      "house_number": "55",
      "state_code": "CA",
      "street_name": "ALMADEN BLVD",
      "zip": "95113"
    },
    "authorizing_person": "zz",
    "billing_telephone_number": "2058945751",
    "company": "zm",
    "customer_requested_date": "2021-08-06",
    "pin": "111223"
  },
  "printed_name": "Jiang",
  "replacing_numbers": [
    {
      "source_number": "+12058945752",
      "target_number": "+12058945755"
    }
  ],
  "status": "Canceled",
  "submission_date_time": "2021-08-03T07:33:29Z"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Portin order does not exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get phone account settings

  • Method: GET
  • Path: /phone/settings
  • Tags: Settings

Returns an account's settings.

Prerequisites:

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:read:admin

Granular Scopes: phone:read:settings:admin

Rate Limit Label: Light

Responses

Status: 200 **HTTP Status Code:** `200` Account setting returned.
Content-Type: application/json
  • billing_account

    object — The billing account setting.

    • id

      string — The billing account ID.

    • name

      string — The billing account name.

  • byoc

    object — The BYOC setting

    • enable

      boolean — The swtich for the BYOC function.

  • country

    object

    • code

      string — The country code.

    • name

      string — The country name.

  • multiple_party_conference

    object

    • enable

      boolean — If the value of this field is `true`, it allows multiple parties to join the conference.

  • multiple_sites

    object

    • enabled

      boolean — The multiple sites switch.

    • site_code

      boolean — The site code switch.

  • show_device_ip_for_call_log

    object

    • enable

      boolean — If the value of this field is `true`, it allows `/phone/call_logs` and `/phone/call_logs/{callLogId}` APIs to show `device_public_ip` and `device_private_ip` in the response.

Example:

{
  "byoc": {
    "enable": true
  },
  "country": {
    "code": "US",
    "name": "United States"
  },
  "multiple_sites": {
    "enabled": true,
    "site_code": true
  },
  "show_device_ip_for_call_log": {
    "enable": true
  },
  "multiple_party_conference": {
    "enable": true
  },
  "billing_account": {
    "id": "3WWAEiEjTj2IQuyDiKMd_A",
    "name": "Delhi billing"
  }
}
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `2031` <br> Zoom Phone has not been enabled for this account. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update phone account settings

  • Method: PATCH
  • Path: /phone/settings
  • Tags: Settings

Updates Zoom Phone account settings.

Prerequisites:

  • A Business or Enterprise account

Scopes: phone:write:admin

Granular Scopes: phone:update:settings:admin

Request Body

Content-Type: application/json
  • billing_account

    object — The billing account setting.

    • id

      string — The billing account ID.

  • byoc

    object — Only [master account owners](https://marketplace.zoom.us/docs/api-reference/master-account-apis) can use this MA API to enable BYOC(Bring your own carrier) option for a sub account. **Scope**: * `phone:master` **Prerequisites**: * Business or enterprise Account.

    • enable

      boolean — Setting the value of this field to `true` allows a sub account to add BYOC numbers from the Zoom web admin portal.

  • multiple_sites

    object

    • enabled

      boolean — When the value is set to `true` for [site management](https://support.zoom.us/hc/en-us/articles/360020809672), your current site defaults to your Main Site.

    • site_code

      object

      • enable

        boolean — You must enable multiple sites before you can set this value to `true`.

      • short_extension_length

        integer — This field must be configured before you can set the site code to `true`. The range is [2, 10] if the account's `15-Digit Max Length Extensions` feature is enabled; if not, [2, 5].

  • show_device_ip_for_call_log

    object

    • enable

      boolean — This field must be set to `true` to allow `/phone/call_logs` and `/phone/call_logs/{callLogId}` APIs to show `device_public_ip` and `device_private_ip` in the response.

Example:

{
  "byoc": {
    "enable": true
  },
  "multiple_sites": {
    "enabled": true,
    "site_code": {
      "enable": true,
      "short_extension_length": 3
    }
  },
  "show_device_ip_for_call_log": {
    "enable": true
  },
  "billing_account": {
    "id": "3WWAEiEjTj2IQuyDiKMd_A"
  }
}

Responses

Status: 204 **Response HTTP code**: `204` **No Content.** Updated successfully.
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `124` <br> Account does not exist: {accountId}. <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `2031` <br> Zoom Phone has not been enabled for this account. <br>
Status: 412 **HTTP Status Code:** `412` <br> undefined **Error Code:** `412` <br> Disable multiple sites after deleting other sites. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List SIP groups ⚠️ Deprecated

  • Method: GET
  • Path: /phone/sip_groups
  • Tags: Settings

Returns a list of SIP (Session Initiation Protocol) groups.

Prerequisites:

  • Pro or a higher account with Zoom Phone license
  • Account owner or admin permissions

Scopes: phone:read:admin

Granular Scopes: phone:read:list_sip_groups:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` SIP groups successfully listed.
Content-Type: application/json
  • next_page_token

    string — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • page_size

    integer — The number of records returned with a single API call.

  • sip_groups

    array — SIP group information.

    Items:

    • description

      string — The SIP group's description.

    • display_name

      string — The SIP group's display name.

    • id

      string — The SIP group's ID.

    • send_sip_group_name

      boolean, possible values: true, false — Whether the SIP group's name is sent in the SIP header.

    • sip_trunk

      object — The SIP trunk group.

      • id

        string — The SIP trunk group's ID.

      • name

        string — The SIP trunk group's name.

Example:

{
  "next_page_token": "IXIhcpJWscHfISSKTcdl2QpSMLyRE38zH92",
  "page_size": 3,
  "sip_groups": [
    {
      "description": "test SIP group",
      "display_name": "RRRR",
      "id": "8MhK7ea4Q4ihIQ4TD_g0kw",
      "send_sip_group_name": false,
      "sip_trunk": {
        "id": "VWQU-veBQnm08EtBkUGnbw",
        "name": "TESTAPI01"
      }
    }
  ]
}
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List BYOC SIP trunks ⚠️ Deprecated

  • Method: GET
  • Path: /phone/sip_trunk/trunks
  • Tags: Settings

Returns a list of an account's assigned BYOC (Bring Your Own Carrier) SIP (Session Initiation Protocol) trunks.

Prerequisites

  • A Business or Enterprise account

Scopes: phone:read:admin

Granular Scopes: phone:read:list_sip_trunks:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Codes**: `200` OK.
Content-Type: application/json
  • byoc_sip_trunk

    array

    Items:

    • carrier

      string — Name of the carrier.

    • carrier_account

      string — The account associated to the carrier.

    • id

      string — The unique SIP Trunk ID.

    • name

      string — The display name of the SIP Trunk.

    • region

      string — The region of the carrier.

    • sbc_label

      string — The Session Border Controller (SBC) routing label.

  • next_page_token

    string — Used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is **15 minutes**.

  • page_size

    integer, default: 30 — The number of records returned within a single API call. The default is **30**, and the maximum is **100**.

Example:

{
  "byoc_sip_trunk": [
    {
      "carrier": "Bandwidth",
      "carrier_account": "123123131313",
      "id": "fVA-LsQhQAC2fTS7NiccFA",
      "name": "TestSipTrunk",
      "region": "newqa01sipjp01",
      "sbc_label": "Test"
    }
  ],
  "next_page_token": "Ds6anZEv59aLMmTSrfF4wmHYCMiYXMWhRQ2",
  "page_size": 30
}
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List shared line appearances

  • Method: GET
  • Path: /phone/shared_line_appearances
  • Tags: Shared Line Appearance

Returns a list of shared line appearance instances.

Prerequisites

  • Pro or higher account with Zoom Phone license
  • Account owner or admin privileges

Scopes: phone:read:admin

Granular Scopes: phone:read:list_shared_line_appearances:admin

Rate Limit Label: MEDIUM

Responses

Status: 200 **HTTP Status Code:** `200` **OK** Shared line appearances returned.
Content-Type: application/json
  • next_page_token

    string — The next page token paginates through large result sets. A next page token returns whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • page_size

    integer, default: 30 — The number of records returned within a single API call.

  • shared_line_appearances

    array

    Items:

    • assistants

      array

      Items:

      • extension_number

        integer, format: int64 — The extension number assigned to the assistant.

      • extension_type

        string, possible values: "user", "commonArea" — The extension type.

      • id

        string — The user ID.

      • name

        string — The assistant name.

    • executive

      object

      • extension_number

        integer, format: int64 — The extension number assigned to the executive.

      • extension_type

        string, possible values: "user", "commonArea" — The extension type.

      • name

        string — The name of the executive in this shared line appearance.

    • privileges

      array

      Items:

      string, possible values: "place_calls", "answer_calls", "pickup_hold_calls", "reply_to_sms" — The privileges of this shared line appearance.

  • total_records

    integer — The total records found in the response for this request.

Example:

{
  "next_page_token": "MnriWtiIAzrEfe3EW5ORlj6TFBFqL57AC42",
  "page_size": 30,
  "shared_line_appearances": [
    {
      "executive": {
        "name": "Joan Dev",
        "extension_number": 11407,
        "extension_type": "user"
      },
      "assistants": [
        {
          "id": "E8-XliWGT-a7tlKPOnrevw",
          "name": "Joh Dev",
          "extension_number": 11408,
          "extension_type": "user"
        }
      ],
      "privileges": [
        "place_calls"
      ]
    }
  ],
  "total_records": 14
}
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List shared line groups

  • Method: GET
  • Path: /phone/shared_line_groups
  • Tags: Shared Line Group

Lists all the shared line groups. A shared line group allows Zoom Phone admins to share a phone number and extension with a group of phone users or common areas. This capability gives members of the shared line group access to the group's direct phone number and voicemail.

Prerequisites:

  • Pro or higher account with Zoom Phone license.
  • Account owner or admin privileges

Scopes: phone:read:admin

Granular Scopes: phone:read:list_shared_line_groups:admin

Rate Limit Label: Medium

Responses

Status: 200 **HTTP Status Code:** `200` **OK** Shared Line Groups returned.
Content-Type: application/json
  • next_page_token

    string — The next page token paginates through a large set of results. A next page token is returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • page_size

    integer, default: 30 — The number of records returned within a single API call.

  • shared_line_groups

    array

    Items:

    • display_name

      string — The display name of the shared line group.

    • extension_id

      string — The extension ID.

    • extension_number

      integer, format: int64 — The extension number assigned to the Shared Line Group.

    • id

      string — The unique identifier of the Shared Line Group.

    • phone_numbers

      array — The phone numbers assigned to the shared line group.

      Items:

      • id

        string — The unique identifier of the phone number.

      • number

        string — The phone number in E164 format.

      • status

        string, possible values: "pending", "available" — The status of the number.

    • site

      object

    • status

      string, possible values: "active", "inactive" — The status of the shared line group.

  • total_records

    integer — The total records found in the response for this request.

Example:

{
  "next_page_token": "MnriWtiIAzrEfe3EW5ORlj6TFBFqL57AC42",
  "page_size": 30,
  "shared_line_groups": [
    {
      "display_name": "jamieSLGTest",
      "extension_id": "FkOFn6d5SGqqqIkyDSXrTg",
      "extension_number": 1000123471,
      "id": "RQinnFtmTJ25mx89tW5Cmw",
      "phone_numbers": [
        {
          "id": "55JUZPwERHuGttd_j4qBsQ",
          "number": "+12058945565",
          "status": "available"
        }
      ],
      "site": {
        "id": "8f71O6rWT8KFUGQmJIFAdQ",
        "name": "Main Site"
      },
      "status": "active"
    }
  ],
  "total_records": 14
}
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Create a shared line group

  • Method: POST
  • Path: /phone/shared_line_groups
  • Tags: Shared Line Group

Creates a shared line group. A shared line group allows Zoom Phone admins to share a phone number and extension with a group of phone users or common areas. This gives members of the shared line group access to the group's direct phone number and voicemail. Prerequisites: * Pro or higher account with Zoom Phone license.* Account owner or admin privileges

Scopes: phone:write:admin

Granular Scopes: phone:write:shared_line_group:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json

Example:

{
  "description": "test shared line",
  "display_name": "Mtest sharedLineGroup",
  "extension_number": 1000123487,
  "site_id": "8f71O6rWT8KFUGQmJIFAdQ"
}

Responses

Status: 201 **HTTP Status Code:** `201` **Created** Shared Line Group created successfully.
Content-Type: application/json
  • display_name

    string — The display name of the shared line group.

  • id

    string — The unique identifier of the shared line group.

Example:

{
  "id": "RQinnFtmTJ25mx89tW5Cmw",
  "display_name": "jamieSLGTest"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> <br> **Error Code:** `400` <br> Extension number {extensionNumber} is already used.<br><br> <br> **Error Code:** `409` <br> Invalid short number length. <br> Number {extensionNumber} is a reserved extension number. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get a shared line group

  • Method: GET
  • Path: /phone/shared_line_groups/{sharedLineGroupId}
  • Tags: Shared Line Group

Returns a list of all the shared line groups.

A shared line group allows Zoom Phone admins to share a phone number and extension with a group of phone users or common areas. This gives members of the shared line group access to the group's direct phone number and voicemail.

Prerequisites:

  • Pro or higher account with Zoom Phone license.
  • Account owner or admin privileges

Scopes: phone:read:admin

Granular Scopes: phone:read:shared_line_group:admin

Rate Limit Label: LIGHT

Responses

Status: 200 OK
Content-Type: application/json
  • allow_privacy

    boolean — Whether to allow members to prevent others from picking up a held call, and listening, whispering, barging, or taking over a call if it's configured.

  • audio_prompt_language

    string, possible values: "en-US", "en-GB", "es-US", "fr-CA", "da-DK", "de-DE", "es-ES", "fr-FR", "it-IT", "nl-NL", "pt-PT", "ja", "ko-KR", "pt-BR", "zh-CN" — The language for all default audio prompts for the Shared Line Group. * `en-US` : English (US) * `en-GB` : English (UK) * `es-US` : Spanish (US) * `fr-CA` : French (Canada) * `da-DK` : Danish (Denmark) * `de-DE` : German (Germany) * `es-ES` : Spanish (Spain) * `fr-FR` : French (France) * `it-IT` : Italian (Italy) * `nl-NL` : Dutch (Netherlands) * `pt-PT` : Portuguese (Portugal) * `ja` : Japanese * `ko-KR` : Korean (Korea) * `pt-BR` : Portuguese (Brazil) * `zh-CN` : Chinese (PRC)

  • cost_center

    string — The cost center name.

  • department

    string — The department name.

  • display_name

    string — The display name of the shared line group.

  • extension_id

    string — The extension ID of the shared line group.

  • extension_number

    integer, format: int64 — The extension number assigned to the shared line group.

  • id

    string — The unique identifier of the shared line group.

  • members

    object — This field allows you to view current [members](https://support.zoom.us/hc/en-us/articles/360038850792-Setting-up-shared-line-groups#h_3ffbbb77-a009-4c09-91e4-81fc264b61d6) of the shared line group.

    • common_areas

      array

      Items:

      • extension_id

        string — The extension ID of the common area.

      • id

        string — The unique identifier of the common area.

      • name

        string — The name of the common area.

    • users

      array — The users who are members of the shared line group.

      Items:

      • extension_id

        string — The extension ID of the user.

      • id

        string — The unique identifier of the user.

      • name

        string — The name of the user.

  • own_storage_name

    string — The name of your own storage. Use your own storage provided by Oracle Cloud Infrastructure (OCI) to store Zoom Phone recordings, voicemails, and voicemail transcripts, and custom greeting prompts.

  • phone_numbers

    array — The object representing information about phone number(s) assigned to the group.

    Items:

    • id

      string — The unique identifier of the phone number.

    • number

      string — The phone number in E164 format.

  • policy

    object — The shared line group policy list.

    • voicemail_access_members

      array — The shared voicemail access member list.

      Items:

      All of:

      All of:

      • access_user_id

        string — The Zoom user ID or email or common area ID to share or update the access permissions with.

      • allow_delete

        boolean — This field specifies whether the member has delete permissions. The default is **false**.

      • allow_download

        boolean — This field specifies whether the member has download permissions. Not applicable to `commonArea`. The default is **false**.

      • allow_sharing

        boolean — This field specifies whether the member has permission to share. The default is **false**.

      • shared_id

        string — The shared voicemail ID that the member can access.

      • access_user_type

        string, possible values: "user", "commonArea" — The type of access member: `user` or `commonArea`.

  • primary_number

    string — If you have multiple direct phone numbers assigned to the shared line group, this is the primary number selected for desk phones. The primary number shares the same line as the extension number. This means if a caller is routed to the shared line group through an auto receptionist, the line associated with the primary number will be used.

  • recording_storage_location

    string, possible values: "US", "AU", "CA", "DE", "IN", "JP", "SG", "BR", "CN", "MX" — Where the recording will be stored. Recording includes Phone recordings, voicemail, voicemail transcripts, and custom greeting prompts. * `US` : United States * `AU` : Australia * `CA` : Canada * `DE` : Germany * `IN` : India * `JP` : Japan * `SG` : Singapore * `BR` : Brazil * `CN` : China * `MX` : Mexico <b>Note:</b> * If the setting is locked at the Account level, it can't be updated.

  • site

    object — The site assigned to the shared line group.

  • status

    string, possible values: "active", "inactive" — The status of the shared line group.

  • timezone

    string — The [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones) of the Shared Line Group.

Example:

{
  "display_name": "jamieSLGTest",
  "extension_id": "WfsrPERXS8inWrpH1Hi_KQ",
  "extension_number": 1000123471,
  "id": "RQinnFtmTJ25mx89tW5Cmw",
  "members": {
    "users": [
      {
        "id": "mNlwFK9ISMKC2toK9oDTcg",
        "name": "ZOOM_API Test",
        "extension_id": "oeDyBe8zT2SzOZW6gQJXUA"
      }
    ],
    "common_areas": [
      {
        "id": "HIlHzOEzS8ymQPFBZ-39AQ",
        "name": "Common Area",
        "extension_id": "HIlHzOEzS8ymQPFBZ-39AQ"
      }
    ]
  },
  "phone_numbers": [
    {
      "id": "---M1padRvSUtw7YihN7sA",
      "number": "14232058798"
    }
  ],
  "primary_number": "14232058798",
  "site": {
    "id": "8f71O6rWT8KFUGQmJIFAdQ",
    "name": "Main Site"
  },
  "status": "active",
  "timezone": "Pacific/Midway",
  "policy": {
    "voicemail_access_members": [
      {
        "access_user_id": "w0RChiauQeqRlv5fgxYULQ",
        "allow_download": false,
        "allow_delete": false,
        "allow_sharing": false,
        "shared_id": "--e8ugg0SeS-9clgrDkn2w"
      },
      {
        "access_user_type": "user"
      }
    ]
  },
  "cost_center": "Cost center",
  "department": "Department",
  "audio_prompt_language": "en-US",
  "recording_storage_location": "US",
  "own_storage_name": "us-oracle-storage",
  "allow_privacy": true
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `404` <br> Shared line group does not exist: {sharedLineGroupId}. <br> **Error Code:** `2001` <br> Account does not exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get a shared line group policy

  • Method: GET
  • Path: /phone/shared_line_groups/{sharedLineGroupId}/policies
  • Tags: Shared Line Group

Returns the policy setting of a specific shared line group.

Prerequisites:

  • Pro or a higher account with Zoom Phone license
  • Account owner or admin permissions

Scopes: phone:read:admin

Granular Scopes: phone:read:shared_line_group_policy:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` **OK** Successfully retrieved the shared line group policy.
Content-Type: application/json
  • check_voicemails_over_phone

    object

    • enable (required)

      boolean — Whether to allow members in this shared line group to check voicemails for this group over phone using a PIN code.

    • locked (required)

      boolean — Whether the senior administrator allows users to modify the current settings.

    • locked_by

      string, possible values: "invalid", "account", "site" — Which level of administrator prohibits modifying the current settings.

    • modified

      boolean — Whether the current settings have been modified. If modified, they can be reset (displayed when using the new policy framework).

Example:

{
  "check_voicemails_over_phone": {
    "enable": true,
    "locked": true,
    "locked_by": "site",
    "modified": true
  }
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `404` <br> Shared line group does not exist:{sharedLineGroupId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update a shared line group policy

  • Method: PATCH
  • Path: /phone/shared_line_groups/{sharedLineGroupId}/policies
  • Tags: Shared Line Group

Updates the policy setting of a specific shared line group.

Prerequisites:

  • Pro or higher account plan with Zoom Phone License
  • Account owner or admin permissions

Scopes: phone:write:admin

Granular Scopes: phone:update:shared_line_group_policy:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • check_voicemails_over_phone

    object

    • enable

      boolean — Whether to allow members in this shared line group to check voicemails for this group over phone using a PIN code.

    • reset

      boolean — Whether the current settings use the phone account's settings (applicable if the current settings are using the new policy framework).

Example:

{
  "check_voicemails_over_phone": {
    "enable": true,
    "reset": true
  }
}

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Shared line group policy updated successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Delete a shared line group

  • Method: DELETE
  • Path: /phone/shared_line_groups/{slgId}
  • Tags: Shared Line Group

Deletes a shared line group. A shared line group allows Zoom Phone admins to share a phone number and extension with a group of phone users or common areas.

Prerequisites:

  • Pro or higher account with Zoom Phone license.
  • Account owner or admin privileges

Scopes: phone:write:admin

Granular Scopes: phone:delete:shared_line_group:admin

Rate Limit Label: LIGHT

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Shared Line Group Deleted.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update a shared line group

  • Method: PATCH
  • Path: /phone/shared_line_groups/{slgId}
  • Tags: Shared Line Group

Updates the information about a shared line group.

A shared line group allows Zoom Phone admins to share a phone number and extension with a group of phone users or common areas. Members of the shared line group can access to the group's direct phone number and voicemail.

Prerequisites

  • Pro or higher account with Zoom Phone license
  • Account owner or admin privileges

Scopes: phone:write:admin

Granular Scopes: phone:update:shared_line_group:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • allow_privacy

    boolean — Whether to allow members to prevent others from picking up a held call, and listening, whispering, barging, or taking over a call if it's configured.

  • audio_prompt_language

    string, possible values: "en-US", "en-GB", "es-US", "fr-CA", "da-DK", "de-DE", "es-ES", "fr-FR", "it-IT", "nl-NL", "pt-PT", "ja", "ko-KR", "pt-BR", "zh-CN" — The language for all default audio prompts for the Shared Line Group. * `en-US` : English (US) * `en-GB` : English (UK) * `es-US` : Spanish (US) * `fr-CA` : French (Canada) * `da-DK` : Danish (Denmark) * `de-DE` : German (Germany) * `es-ES` : Spanish (Spain) * `fr-FR` : French (France) * `it-IT` : Italian (Italy) * `nl-NL` : Dutch (Netherlands) * `pt-PT` : Portuguese (Portugal) * `ja` : Japanese * `ko-KR` : Korean (Korea) * `pt-BR` : Portuguese (Brazil) * `zh-CN` : Chinese (PRC)

  • cost_center

    string — The cost center name.

  • department

    string — The department name.

  • display_name

    string — The display name of the shared line group.

  • extension_number

    integer, format: int64 — The extension number assigned to the shared line group.

  • primary_number

    string — The phone number that you would like to assign as the primary number for this shared line group

  • recording_storage_location

    string, possible values: "US", "AU", "CA", "DE", "IN", "JP", "SG", "BR", "CN", "MX" — Where the recording will be stored. Recording includes Phone recordings, voicemail, voicemail transcripts, and custom greeting prompts. * `US` : United States * `AU` : Australia * `CA` : Canada * `DE` : Germany * `IN` : India * `JP` : Japan * `SG` : Singapore * `BR` : Brazil * `CN` : China * `MX` : Mexico <b>Note:</b> * If the setting is locked at the Account level, it can't be updated.

  • status

    string, possible values: "active", "inactive" — The status of the shared line group.

  • timezone

    string — The [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones) of the Shared Line Group.

Example:

{
  "display_name": "slg_name_2020_12_22_06_52_34_430",
  "extension_number": 1000001007,
  "primary_number": "14232058798",
  "status": "active",
  "timezone": "Pacific/Midway",
  "cost_center": "Cost center",
  "department": "Department",
  "audio_prompt_language": "en-US",
  "recording_storage_location": "US",
  "allow_privacy": true
}

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** The shared line group updated successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> <br> **Error Code:** `409` <br> * Invalid short number length.<br> * Number {extensionNumber} is a reserved extension number.<br><br> <br> **Error Code:** `400` <br> Extension number {extensionNumber} is already used. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Add members to a shared line group

  • Method: POST
  • Path: /phone/shared_line_groups/{slgId}/members
  • Tags: Shared Line Group

Adds members to a shared line group. A shared line group allows Zoom Phone admins to share a phone number and extension with a group of phone users or common areas. This gives members of the shared line group access to the group's direct phone number and voicemail. Note that a member can only be added to one shared line group.

Prerequisites:

  • Pro or higher account with Zoom Phone license.
  • A valid Shared Line Group
  • Account owner or admin privileges

Scopes: phone:write:admin

Granular Scopes: phone:write:shared_line_member:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • members

    object — The members can comprise of users on the account as well as common areas. You can add a maximum of 10 members at once.

Example:

{
  "members": {
    "common_area_ids": [
      "iewGNg-LSYa0ghhkr4d0Hg"
    ],
    "users": [
      {
        "email": "largepbx3_018638@largepbx3.com",
        "id": "gLGURYbRTSup_z4CkSwKuA"
      }
    ]
  }
}

Responses

Status: 201 **HTTP Status Code:** `201` **Created** Members added successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `1001` <br> User not found: {userId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Unassign members from a shared line group

  • Method: DELETE
  • Path: /phone/shared_line_groups/{slgId}/members
  • Tags: Shared Line Group

Unassigns all existing members from a shared line group. Members of the shared line group have access to the group's phone number and voicemail.

Prerequisites:

  • Pro or higher account with Zoom Phone license.
  • A valid Shared Line Group
  • Account owner or admin privileges

Scopes: phone:write:admin

Granular Scopes: phone:delete:shared_line_member:admin

Rate Limit Label: LIGHT

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Members unassigned successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Unassign a member from a shared line group

  • Method: DELETE
  • Path: /phone/shared_line_groups/{slgId}/members/{memberId}
  • Tags: Shared Line Group

Unassigns a specific member from a shared line group. Members of the shared line group have access to the group's phone number and voicemail.

Prerequisites:

  • Pro or higher account with Zoom Phone license.
  • A valid Shared Line Group
  • Account owner or admin privileges

Scopes: phone:write:admin

Granular Scopes: phone:delete:shared_line_member:admin

Rate Limit Label: LIGHT

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Members unassigned successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Assign phone numbers

  • Method: POST
  • Path: /phone/shared_line_groups/{slgId}/phone_numbers
  • Tags: Shared Line Group

Assigns phone numbers to a shared line groups. These direct phone numbers will be shared among members of the shared line group.

Prerequisites:

  • Pro or higher account with Zoom Phone license.
  • A valid Shared Line Group
  • Account owner or admin privileges

Scopes: phone:write:admin

Granular Scopes: phone:write:shared_line_group_number:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • phone_numbers

    array — The phone number(s) to be assigned to the shared line group.

    Items:

    • id

      string — The unique identifier of the phone number.

    • number

      string — The phone number.

Example:

{
  "phone_numbers": [
    {
      "id": "---M1padRvSUtw7YihN7sA",
      "number": "14232058798"
    }
  ]
}

Responses

Status: 201 **HTTP Status Code:** `201` **Created** Phone number(s) assigned successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Phone number does not exist<br><br> <br> **Error Code:** `300` <br> <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `124` <br> Phone number does not belong to this account <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Unassign all phone numbers

  • Method: DELETE
  • Path: /phone/shared_line_groups/{slgId}/phone_numbers
  • Tags: Shared Line Group

Unassigns all the phone numbers that have been assigned to the shared line group.

Prerequisites:

  • Pro or higher account with Zoom Phone license.
  • A valid Shared Line Group
  • Account owner or admin privileges

Scopes: phone:write:admin

Granular Scopes: phone:delete:shared_line_group_number:admin

Rate Limit Label: LIGHT

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Phone Numbers unassigned successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Phone number does not exist <br> **Error Code:** `300` <br> <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `124` <br> Phone number does not belong to this account <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Unassign a phone number

  • Method: DELETE
  • Path: /phone/shared_line_groups/{slgId}/phone_numbers/{phoneNumberId}
  • Tags: Shared Line Group

Unassigns a specific phone number that was assigned to the shared line group.

Prerequisites:

  • Pro or higher account with Zoom Phone license.
  • A valid shared line group
  • Account owner or admin privileges

Scopes: phone:write:admin

Granular Scopes: phone:delete:shared_line_group_number:admin

Rate Limit Label: LIGHT

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Phone Numbers unassigned successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Phone number does not exist<br><br> <br> **Error Code:** `300` <br> <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `124` <br> Phone number does not belong to this account <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Add a policy setting to a shared line group

  • Method: POST
  • Path: /phone/shared_line_groups/{slgId}/policies/{policyType}
  • Tags: Shared Line Group

Adds the policy sub-setting for a specific shared line group according to the policyType. For example, you can use this API to set up shared access members. Prerequisites: * Pro or higher account with Zoom Phone license.* Account owner or admin privileges

Scopes: phone:write:admin

Granular Scopes: phone:write:shared_line_group_policy:admin

Rate Limit Label: MEDIUM

Request Body

Content-Type: application/json
  • voicemail_access_members

    array — The shared voicemail access member list.

    Items:

    • access_user_id

      string — The member's ID in the shared voicemail access list determines the sharing or updating of access permissions. It must be the unique identifier of the user, or the unique identifier of the common area, depending on the access user type.

    • access_user_type

      string, possible values: "commonArea", "user" — The extension type of the member to be added in the shared voicemail access member list. The default type will be user if empty. Allowed: user | commonArea.

    • allow_delete

      boolean — Whether the member has delete permissions. The default is **false**.

    • allow_download

      boolean — Whether the member has download permissions. Not applicable to `commonArea`. The default is **false**.

    • allow_sharing

      boolean — Whether the member has permission to share. The default is **false**.

Example:

{
  "voicemail_access_members": [
    {
      "access_user_id": "w0RChiauQeqRlv5fgxYULQ",
      "access_user_type": "commonArea",
      "allow_download": false,
      "allow_delete": false,
      "allow_sharing": false
    }
  ]
}

Responses

Status: 201 **HTTP Status Code** `201` Created Successfully.
Content-Type: application/json
  • voicemail_access_members

    array — The shared access member list.

    Items:

    All of:

    All of:

    • access_user_id

      string — The member's ID in the shared voicemail access list determines the sharing or updating of access permissions. It must be the unique identifier of the user, or unique identifier of the common area depending on the access user type.

    • access_user_type

      string, possible values: "commonArea", "user" — The extension type of the member to be added in the shared voicemail access member list. Allowed: user | commonArea.

    • allow_delete

      boolean — Whether the member has delete permissions. The default is **false**.

    • allow_download

      boolean — Whether the member has download permissions. Not applicable to `commonArea`. The default is **false**.

    • allow_sharing

      boolean — Whether the member has permission to share. The default is **false**.

    • shared_id

      string — The shared voicemail ID that the member can access.

    • access_user_type

      string, possible values: "user", "commonArea" — The type of access member: `user` or `commonArea`.

Example:

{
  "voicemail_access_members": [
    {
      "access_user_id": "w0RChiauQeqRlv5fgxYULQ",
      "access_user_type": "commonArea",
      "allow_download": false,
      "allow_delete": false,
      "allow_sharing": false,
      "shared_id": "--e8ugg0SeS-9clgrDkn2w"
    },
    {
      "access_user_type": "user"
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Delete an SLG policy setting

  • Method: DELETE
  • Path: /phone/shared_line_groups/{slgId}/policies/{policyType}
  • Tags: Shared Line Group

Removes the policy sub-setting for a specific shared line group according to the policyType. For example, you can use this API to remove shared access members. Prerequisites: * Pro or higher account with Zoom Phone license.* Account owner or admin privileges

Scopes: phone:write:admin

Granular Scopes: phone:delete:shared_line_group_policy:admin

Rate Limit Label: LIGHT

Responses

Status: 204 **HTTP Status Code:** `204` No Content
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update an SLG policy setting

  • Method: PATCH
  • Path: /phone/shared_line_groups/{slgId}/policies/{policyType}
  • Tags: Shared Line Group

Updates the policy sub-setting for a specific shared line group according to the policyType. For example, you can use this API to update shared access members.

Prerequisites:

  • Pro or higher account with Zoom Phone license.
  • Account owner or admin privileges

Scopes: phone:write:admin

Granular Scopes: phone:update:shared_line_group_policy:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • voicemail_access_members

    array — The shared voicemail access member list.

    Items:

    All of:

    • access_user_id

      string — The member's ID in the shared voicemail access list determines the sharing or updating of access permissions. It must be the unique identifier of the user, or the unique identifier of the common area, depending on the access user type.

    • access_user_type

      string, possible values: "commonArea", "user" — The extension type of the member to be added in the shared voicemail access member list. The default type will be user if empty. Allowed: user | commonArea.

    • allow_delete

      boolean — Whether the member has delete permissions. The default is **false**.

    • allow_download

      boolean — Whether the member has download permissions. Not applicable to `commonArea`. The default is **false**.

    • allow_sharing

      boolean — Whether the member has permission to share. The default is **false**.

    • shared_id

      string — The shared voicemail ID that the member can access.

Example:

{
  "voicemail_access_members": [
    {
      "access_user_id": "w0RChiauQeqRlv5fgxYULQ",
      "access_user_type": "commonArea",
      "allow_download": false,
      "allow_delete": false,
      "allow_sharing": false,
      "shared_id": "--e8ugg0SeS-9clgrDkn2w"
    }
  ]
}

Responses

Status: 204 **HTTP Status Code:** `204` No Content
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List phone sites

  • Method: GET
  • Path: /phone/sites
  • Tags: Sites

Sites allow you to organize Zoom Phone users in your organization. Use this API to list all the sites that have been created for an account.

Prerequisites:

  • Multiple Sites must be enabled.
  • Pro or a higher account with Zoom Phone enabled.

Scopes: phone:read:admin

Granular Scopes: phone:read:list_sites:admin

Rate Limit Label: MEDIUM

Responses

Status: 200 OK
Content-Type: application/json
  • next_page_token

    string — The next page token paginates through a large set of results. A next page token is returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • page_size

    integer — The number of records returned within a single API call.

  • sites

    array — List of site(s).

    Items:

  • total_records

    integer — The total number of records returned.

Example:

{
  "next_page_token": "nav48KOj42vYPSG4f0cCdT575bZ980did22",
  "page_size": 10,
  "sites": [
    {
      "country": {
        "code": "US",
        "name": "United States"
      },
      "id": "SQv52YtkRLC2dwrDdYtGsA",
      "main_auto_receptionist": {
        "extension_id": "pl1XprjhTQK1CCMVKTqCFA",
        "extension_number": 12345,
        "id": "Kbdc9lv_SBCuPMjj_lhxVA",
        "name": "ApiTA_R_2020_07_12_00_41_57_145"
      },
      "name": "ApiTA_Site_2020_07_12_00_41_57_141",
      "site_code": 1
    }
  ],
  "total_records": 20
}
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Create a phone site

  • Method: POST
  • Path: /phone/sites
  • Tags: Sites

Creates a site that allows you to organize the Zoom Phone users in your organization.

Prerequisites:

  • Multiple sites must be enabled.
  • Pro or a higher account with Zoom Phone enabled.

Scopes: phone:write:admin

Granular Scopes: phone:write:site:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json

Example:

{
  "auto_receptionist_name": "ApiTA_R_2020_07_12_00_41_57_145",
  "source_auto_receptionist_id": "0m0dGevHR2ulyMgxFLeVEA",
  "default_emergency_address": {
    "address_line1": "55 Almaden Boulevard",
    "address_line2": "8 Floor",
    "city": "SAN JOSE",
    "country": "US",
    "state_code": "CA",
    "zip": "95113"
  },
  "name": "Main site",
  "short_extension": {
    "length": 4
  },
  "site_code": 2,
  "sip_zone": {
    "id": "2J9UXzGuTaqCdZ8sw_0jBw"
  },
  "force_off_net": {
    "enable": true,
    "allow_extension_only_users_call_users_outside_site": true
  },
  "india_state_code": "CG",
  "india_city": "Bemetara",
  "india_sdca_npa": "7700",
  "india_entity_name": "india-test-entity"
}

Responses

Status: 201 **HTTP Status Code:** `201` **Created** Site created successfully.
Content-Type: application/json
  • id

    string — The site ID is the unique identifier of a site.

  • name

    string — The name of the site.

Example:

{
  "id": "SQv52YtkRLC2dwrDdYtGsA",
  "name": "ApiTA_Site_2020_07_12_00_41_57_141"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Invalid site code length.<br>Country information is invalid.<br>This address could not be validated or geocoded. <br> **Error Code:** `400` <br> For India sites, state and city should not be empty. <br> **Error Code:** `400` <br> Short Distance Calling Area is invalid. <br> **Error Code:** `400` <br> India Entity Name is required. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get phone site details

  • Method: GET
  • Path: /phone/sites/{siteId}
  • Tags: Sites

Returns information on a specific site.

Sites allow you to organize Zoom Phone users in your organization.

Prerequisites

  • Account must have a Pro or a higher plan with Zoom Phone license.
  • Multiple sites must be enabled.

Scopes: phone:read:admin

Granular Scopes: phone:read:site:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` Site information retrieved successfully.
Content-Type: application/json
  • caller_id_name

    string — When you place an outbound call with a number as the caller ID, the caller ID name and the number display to the called party. The caller ID name can be up to 15 characters.

  • country

    object — The country of the site.

  • default_emergency_address

    object — The site's emergency address.

    • address_line1

      string — The emergency address line 1.

    • address_line2

      string — The emergency address line 2.

    • city

      string — The emergency address city.

    • country

      string — The emergency address country.

    • id

      string — The emergency address ID.

    • is_default

      boolean — Whether the emergency address is default or not.

    • level

      integer, possible values: 0, 1, 2 — The emergency address owner level: * `0` - Account/Company-level emergency address. * `1` - User/Personal-level emergency address. * `2` - Unknown company/pending emergency address.

    • state_code

      string — The emergency address state code.

    • status

      integer, possible values: 1, 2, 3, 4, 5, 6 — The emergency address verification status: * `1` &mdash; Verification not required. * `2` &mdash; Unverified. * `3` &mdash; Verification requested. * `4` &mdash; Verified. * `5` &mdash; Rejected. * `6` &mdash; Verification failed.

    • zip

      string — The emergency address zip code.

  • id

    string — The site ID is the unique identifier of the site.

  • india_city

    string — The India site’s city. This field only applies to India based accounts.

  • india_entity_name

    string — When select the Indian sip zone, then need to set the entity name. This field only applies to India based accounts.

  • india_sdca_npa

    string — The India site’s Short Distance Calling Area (sdca) Numbering Plan Area (npa). This field is linked to the “state_code“ field. This field only applies to India based accounts.

  • india_state_code

    string — The India site’s state code. This field only applies to India based accounts.

  • main_auto_receptionist

    object — The [main auto receptionist](https://support.zoom.us/hc/en-us/articles/360021121312#h_bc7ff1d5-0e6c-40cd-b889-62010cb98c57) for each site.

    • extension_id

      string — The extension ID.

    • extension_number

      integer, format: int64 — The extension number.

    • id

      string — The unique identifier of the auto receptionist.

    • name

      string — The name of the auto receptionist.

  • name

    string — The name of the site.

  • policy

    object — The [site policy setting](https://support.zoom.us/hc/en-us/articles/360033511872-Changing-Zoom-Phone-policy-settings#h_af4d1935-9cb1-44d2-9a10-9bfba10d58a7).

    • ad_hoc_call_recording

      object — A list of ad hoc call recording settings.

      • enable

        boolean — Whether the current extension can record and save calls to the cloud.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "invalid", "account", "site" — Which level of administrator prohibits the modification of the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset and display when using the new policy framework.

      • play_recording_beep_tone

        object — Whether to play the side tone beep for recorded users while recording. It displays only when ad hoc call recording policy uses the new framework.

        • enable

          boolean — Whether to play the side tone beep for recorded users while recording. It displays only when ad hoc call recording policy uses the new framework.

        • play_beep_member

          string, possible values: "allMember", "recordingSide" — The beep sides. It displays only when `enable` is set to true.

        • play_beep_time_interval

          integer, possible values: 5, 10, 15, 20, 25, 30, 60, 120 — The beep time interval in seconds. It displays only when `enable` is set to true.

        • play_beep_volume

          integer, possible values: 0, 20, 40, 60, 80, 100 — The side tone beep volume. It displays only when `enable` is set to `true`.

      • recording_start_prompt

        boolean — Whether a prompt plays to call participants when the recording has started.

      • recording_transcription

        boolean — Whether the call recording transcription is enabled.

    • advanced_encryption

      object — Whether to allow voicemail to be encrypted with keys which are not accessible to Zoom servers. These voicemails can be decrypted only by the intended user recipient. Shared line appearance, shared line group, call queue, or auto receptionist voicemail will not be encrypted, but can still be played. Email to voicemail, transcriptions, ability to check voicemails by dialing into the voicemail system, or web are not available when this feature is enabled. This policy requires a Power Pack license to be enabled. If the user does who inherits this policy does not have a Power Pack license, the policy will not be applied.

      • disable_incoming_unencrypted_voicemail

        boolean — Whether to disable incoming unencrypted voicemail.

      • enable

        boolean — This field allows voicemail to be encrypted with keys that are not accessible to Zoom servers.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "invalid", "account", "site" — Which level of administrator prohibits the modification of the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset(displayed when using old or new policy framework).

    • allow_caller_reach_operator

      object — This field enables users to allow their callers to reach an operator.Once disabled, users will not be able to route their calls to an operator as part of the "When a call is not answered" setting.

      • enable

        boolean — This field enables users to allow their callers to reach an operator.Once disabled, users will not be able to route their calls to an operator as part of the "When a call is not answered" setting.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "invalid", "account", "site" — Which level of administrator can prohibit users from modifying the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset and display when using the new policy framework.

    • allow_end_user_edit_call_handling

      object — This field allows users to edit call handling settings.Once disabled, users will not be able to edit their call handling settings on the web portal or enable call forwarding on the client.

      • enable

        boolean — This field allows users to edit call handling settings.Once disabled, users will not be able to edit their call handling settings on the web portal or enable call forwarding on the client.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "invalid", "account", "site" — Which level of administrator can prohibit users from modifying the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset and display when using the new policy framework.

    • allow_mobile_home_phone_callout

      object — This field allows users to use mobile or home phone to place calls. Zoom app will call this device first before ringing the called number.

      • enable

        boolean — This field allows users to use mobile or home phone to place calls. Zoom app will call this device first before ringing the called number.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "invalid", "account", "site" — Which level of administrator can prohibit users from modifying the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset and display when using the new policy framework.

    • audio_intercom

      object — Whether to allow hands-free peer-to-peer conversations. When you receive an intercom call, the phone beeps to notify the user of the incoming intercom call, and the user's phone automatically answers the intercom call.

      • enable

        boolean

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "invalid", "account", "site" — Which level of administrator prohibits modifying the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset and display when using the new policy framework.

    • auto_call_recording

      object — A list of the site's automatic call recording settings.

      • allow_stop_resume_recording

        boolean — Whether the stop and resume of automatic call recording is enabled.

      • disconnect_on_recording_failure

        boolean — Whether a call disconnects when there is an issue with the automatic call recording and the call cannot reconnect after five seconds. This does **not** include emergency calls.

      • enable

        boolean — Whether automatic call recording is enabled.

      • inbound_audio_notification

        object — Whether a prompt plays to call participants when the recording has started for inbound call is enabled.

        • recording_explicit_consent

          boolean — Whether the **Press 1** option that provides recording consent for inbound call is enabled. <b>Note:</b> * If customers do not opt for an OP flag named `Enable Caller Based Consent Options`, the values of `recording_explicit_consent`, `inbound_audio_notification.recording_explicit_consent`, and `outbound_audio_notification.recording_explicit_consent` always remain consistent. * If customers do not opt for an OP flag named `Enable Caller Based Consent Options`, update both `inbound_audio_notification.recording_explicit_consent` and `outbound_audio_notification.recording_explicit_consent` with the same value.

        • recording_start_prompt

          boolean — Whether a prompt plays to call participants when the recording has started for inbound call is enabled. <b>Note:</b> * If customers do not opt for an OP flag named `Enable Caller Based Consent Options`, the values of `recording_start_prompt`, `inbound_audio_notification.recording_start_prompt`, and `outbound_audio_notification.recording_start_prompt` always remain consistent. * If customers do not opt for an OP flag named `Enable Caller Based Consent Options`, update both `inbound_audio_notification.recording_start_prompt` and `outbound_audio_notification.recording_start_prompt` with the same value.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "invalid", "account", "site" — Which level of administrator prohibits the modification of the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset and display when using the new policy framework.

      • outbound_audio_notification

        object — Whether a prompt plays to call participants when the recording has started for outbound call is enabled.

        • recording_explicit_consent

          boolean — Whether the **Press 1** option that provides recording consent for outbound call is enabled. <b>Note:</b> * If customers do not opt for an OP flag named `Enable Caller Based Consent Options`, the values of `recording_explicit_consent`, `inbound_audio_notification.recording_explicit_consent`, and `outbound_audio_notification.recording_explicit_consent` always remain consistent. * If customers do not opt for an OP flag named `Enable Caller Based Consent Options`, update both `inbound_audio_notification.recording_explicit_consent` and `outbound_audio_notification.recording_explicit_consent` with the same value.

        • recording_start_prompt

          boolean — Whether a prompt plays to call participants when the recording has started for outbound call is enabled. <b>Note:</b> * If customers do not opt for an OP flag named `Enable Caller Based Consent Options`, the values of `recording_start_prompt`, `inbound_audio_notification.recording_start_prompt`, and `outbound_audio_notification.recording_start_prompt` always remain consistent. * If customers do not opt for an OP flag named `Enable Caller Based Consent Options`, update both `inbound_audio_notification.recording_start_prompt` and `outbound_audio_notification.recording_start_prompt` with the same value.

      • play_recording_beep_tone

        object — Plays the side tone beep for recorded users while recording. It displays only when auto call recording policy uses the new framework.

        • enable

          boolean — Whether to play the side tone beep for recorded users while recording. It displays only when auto call recording policy uses the new framework.

        • play_beep_member

          string, possible values: "allMember", "recordingSide" — The beep sides. It displays only when the `enable` is set to true.

        • play_beep_time_interval

          integer, possible values: 5, 10, 15, 20, 25, 30, 60, 120 — The beep time interval in seconds. It displays only when the `enable` is set to true.

        • play_beep_volume

          integer, possible values: 0, 20, 40, 60, 80, 100 — The side tone beep volume. It displays only when `enable` is set to `true`.

      • recording_calls

        string, possible values: "inbound", "outbound", "both" — The type of calls automatically recorded: * `inbound` * `outbound` * `both`

      • recording_explicit_consent

        boolean — Whether the `Press 1 option that provides recording consent` is enabled. <b>Deprecated:</b> This field will be deprecated in a future release. As an alternative, use the `inbound_audio_notification.recording_explicit_consent` and `outbound_audio_notification.recording_explicit_consent` to operate inbound and outbound prompt separately. <b>Note:</b> * If customers opt for an OP flag named `Enable Caller Based Consent Options`, the values of `recording_explicit_consent` and `inbound_audio_notification.recording_explicit_consent` will remain consistent. When the field is updated, the `inbound_audio_notification.recording_explicit_consent` will be also updated. * If customers do not opt for an OP flag named `Enable Caller Based Consent Options`, the values of `recording_explicit_consent`, `inbound_audio_notification.recording_explicit_consent`, and `outbound_audio_notification.recording_explicit_consent` always remain consistent. When the field is updated, the `inbound_audio_notification.recording_explicit_consent`, and `outbound_audio_notification.recording_explicit_consent` will be also updated.

      • recording_start_prompt

        boolean — Whether a prompt plays to call participants when the recording has started. <b>Deprecated:</b> This field will be deprecated in a future release. As an alternative, use the `inbound_audio_notification.recording_start_prompt` and `outbound_audio_notification.recording_start_prompt` to operate inbound and outbound prompt separately. <b>Note:</b> * If customers opt for an OP flag named `Enable Caller Based Consent Options`, the values of `recording_start_prompt` and `inbound_audio_notification.recording_start_prompt` will remain consistent. When the field is updated, the `inbound_audio_notification.recording_start_prompt` will be also updated. * If customers do not opt for an OP flag named `Enable Caller Based Consent Options`, the values of `recording_start_prompt`, `inbound_audio_notification.recording_start_prompt`, and `outbound_audio_notification.recording_start_prompt` always remain consistent. When the field is updated, the `inbound_audio_notification.recording_start_prompt`, and `outbound_audio_notification.recording_start_prompt` will be also updated.

      • recording_transcription

        boolean — Whether the call recording transcription is enabled.

    • auto_delete_data_after_retention_duration

      object — Allows Zoom to automatically delete data after retention duration

      • delete_type

        integer, possible values: 1, 2 — The delete policy. * 1 - soft delete * 2 - permanent delete

      • enable

        boolean — This field allows Zoom to automatically delete data after the retention duration has lapsed.

      • items

        array — The itemss

        Items:

        • duration

          integer — The retention duration where -1 means unlimited. For units of time, see the `time_unit` below. For `year`, the duration:-1, 1-10; for `day`, the duration:-1, 1-60; for `month`, the duration:-1, 1-18.

        • time_unit

          string, possible values: "year", "month", "day" — The unit of time.

        • type

          string, possible values: "callLog", "onDemandRecording", "automaticRecording", "voicemail", "videomail", "sms" — The data types.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "invalid", "account", "site" — Which level of administrator prohibits the modification of the current settings.

      • reset

        boolean — Whether the current settings will use the phone account's settings if the current settings use the new policy framework.

    • auto_opt_out_in_call_queue

      object — Whether to enable auto Opt-out from Call Queue after logging out from Zoom.

      • enable

        boolean — Once enabled, when Call Queue members log out of Zoom (Except for desk phones and Zoom Phone appliances), they will be automatically Opted-out from the Call Queue as well.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "invalid", "account", "site" — Which level of administrator prohibits the modification of the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset(displayed when using old or new policy framework).

      • prompt_before_opt_out_call_queue

        boolean — Once enabled, always ask the user if they want to opt-out from the Call Queue when they sign out of Zoom.

    • block_calls_without_caller_id

      object — Whether to calls without caller ID will be blocked.

      • enable

        boolean

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "invalid", "account", "site" — Which level of administrator prohibits modifying the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset and display when using the new policy framework.

    • block_external_calls

      object — Set rules for blocking external calls during business, closed, and holiday hours. This feature is only available for user, Zoom Room and common areas.

      • block_business_hours

        boolean — This field blocks external calls during business hours

      • block_call_action

        integer, possible values: 0, 9 — The action when a call is blocked. `9` - Disconnect, `0`- Forward to voicemail or videomail.

      • block_call_change_type

        integer, possible values: 0, 1 — This setting applies only in the old policy framework. It applies changes to new extensions or all extensions. `1` - All extension, `0` - New extensions.

      • block_closed_hours

        boolean — This field blocks external calls during closed hours

      • block_holiday_hours

        boolean — This field blocks external calls during holiday hours

      • e2e_encryption

        object — Allows users to switch their calls to End-to-End Encryption

        • enable

          boolean — Whether to allow users to switch their calls to `End-to-End Encryption`. If users have `Automatic Call Recording` turned on, they cannot use `End-to-End Encryption`.

        • locked

          boolean — Whether the senior administrator allows users to modify the current settings.

        • locked_by

          string, possible values: "invalid", "account", "site" — Which level of administrator prohibits modifying the current settings.

        • modified

          boolean — Whether the current settings have been modified. If modified, they can be reset and display when using the new policy framework.

      • enable

        boolean

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "invalid", "account", "site" — Which level of administrator prohibits modifying the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset and display when using old or new policy framework.

    • call_handling_forwarding_to_other_users

      object — Whether to allow users to forward their calls to other numbers.

      • call_forwarding_type

        integer, possible values: 1, 2, 3, 4 — `1` - Low restriction (external numbers not allowed) `2` - Medium restriction (external numbers and external contacts not allowed) `3` - High restriction (external numbers, external contacts and internal extensions without inbound automatic call recording not allowed) `4` - No restriction

      • enable

        boolean

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "invalid", "account", "site" — Which level of administrator prohibits the modification of the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset and display when using the new policy framework.

    • call_live_transcription

      object — Whether to let users turn on live transcriptions for a call.

      • enable

        boolean — Enables let users turn on live transcriptions for a call.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "invalid", "account", "site" — Which level of administrator prohibits the modification of the current settings.

      • modified

        boolean — Whether the current settings have been modified.

      • transcription_start_prompt

        object — Whether to play a prompt to call participants when the transcription has started.

        • audio_id

          string — The audio prompt file ID. If the audio was removed from the user's audio library, it will be marked with a prefix, `removed_vWby3OZaQlS1nAdmEAqgwA` for example. You can still use this audio ID to get the audio information in [Get an audio item](https://marketplace.zoom.us/docs/api-reference/phone/methods#tag/Audio-Library/operation/GetAudioItem) API.

        • audio_name

          string — The audio prompt file name.

        • enable

          boolean — Enables play of a prompt to call participants when the transcription has started.

    • call_overflow

      object — Allow users to forward their calls to other numbers when a call is not answered

      • call_overflow_type

        integer, possible values: 1, 2, 3, 4 — `1` - Can forward to internal extensions and to external contacts `2` - Can forward only to internal extensions `3` - Can forward only to internal extensions that require inbound Automatic Call Recording `4` - Can forward to internal extensions, external contacts, and external numbers

      • enable

        boolean — Whether to allow users to forward their calls to other numbers.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "invalid", "account", "site" — Which level of administrator can prohibit users from modifying the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset and display when using the new policy framework.

    • call_park

      object — Allow calls placed on hold to be resumed from another location using a retrieval code.

      • call_not_picked_up_action

        integer — The action when a parked call is not picked up. `100` - Ring back to parker `0` - Forward to voicemail of the parker `9` - Disconnect `50` - Forward to another extension

      • enable

        boolean — Whether to allow calls placed on hold to be resumed from another location with a retrieval code.

      • expiration_period

        integer, possible values: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60 — A time limit for parked calls in minutes. After the expiration period ends, the retrieval code is no longer valid and a new code generates.

      • forward_to

        object — The extension's forwarding information.

        • display_name

          string — The extension's name.

        • extension_id

          string — The extension ID.

        • extension_number

          integer, format: int64 — The extension number.

        • extension_type

          string, possible values: "user", "zoomRoom", "commonArea", "ciscoRoom/polycomRoom", "autoReceptionist", "callQueue", "sharedLineGroup" — The type of extension: * `user` * `zoomRoom` * `commonArea` * `ciscoRoom/polycomRoom` * `autoReceptionist` * `sharedLineGroup` * `callQueue`

        • id

          string — The ID of the extension `user`, `zoomRoom`, `commonArea`, `ciscoRoom/polycomRoom`, `autoReceptionist`, `callQueue` or `sharedLineGroup`.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "invalid", "account", "site" — Which level of administrator prohibits modifying the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset and display when using the new policy framework.

      • sequence

        integer, possible values: 0, 1 — This field chooses how parked calls are assigned to a BLF (Busy Lamp Field) key. Sequential assignment parks the call at the next available BLF key. Random assignment parks the call at a randomly selected BLF key. `0` - Random `1` - Sequential

    • call_queue_opt_out_reason

      object — The opt-out reasons for call queues. When enabled, call queue members need to select an opt-out reason when they turn off the `receive queue call` feature.

      • call_queue_opt_out_reasons_list

        array — The opt-out reasons list

        Items:

        • code

          string

        • enable

          boolean

        • system

          boolean — The system default reason. It cannot be edited.

      • enable

        boolean

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "invalid", "account", "site" — Which level of administrator prohibits modifying the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset and display when using the new policy framework.

    • call_queue_pickup_code

      object — After enabling the feature, a unique pickup code generates for each queue, which can be customized in the `Call Queue` profile. Queued calls can be answered with the pickup code by the users under the same site.

      • enable

        boolean

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "invalid", "account", "site" — Which level of administrator prohibits modifying the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset and display when using the new policy framework.

    • call_screening

      object — Whether to incoming direct external callers will be prompted to respond to a button to reach users, callers who don't respond will be disconnected. Devices will not be able to receive any third party faxes.

      • enable

        boolean — Enables incoming direct external callers will be prompted to respond to a button to reach users, callers who don't respond will be disconnected. Devices will not be able to receive any third party faxes.

      • exclude_user_company_contacts

        boolean — Whether exclude user and company contacts from call screening, calls will reach users as normal.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "invalid", "account", "site" — Which level of administrator prohibits the modification of the current settings.

      • modified

        boolean — Whether the current settings have been modified.

    • call_summary

      object — Allows users to generate a summary of a phone call. For users who enable Call summary during a call, a summary will be automatically sent to them on the client and the web portal after the call has ended. It requires the account to enable the `Enable Phone Call Summary` feature.

      • auto_call_summary

        boolean — This field enables automatic call summary.

      • call_summary_start_prompt

        object — Whether to play a prompt to call participant when call summary has started.

        • audio_id

          string — The audio prompt file ID. If the audio was removed from the user's audio library, it will be marked with a prefix, `removed_vWby3OZaQlS1nAdmEAqgwA` for example. You can still use this audio ID to get the audio information in [Get an audio item](https://marketplace.zoom.us/docs/api-reference/phone/methods#tag/Audio-Library/operation/GetAudioItem) API.

        • audio_name

          string — The audio prompt file name.

        • enable

          boolean — Whether to play a prompt to call participant when call summary has started.

      • enable

        boolean — This field allows users to generate a summary of a phone call. For users who enable Call summary during a call, a summary will be automatically sent to them on the client and the web portal after the call has ended.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "invalid", "account", "site" — Which level of administrator prohibits the modification of the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset(displayed when using old or new policy framework).

    • call_transferring

      object — Allows user to warm or blind transfer their calls. This does not apply to warm transfer on IP Phones except for Yealink. Voicemail is transferable only to internal extensions.

      • call_transferring_type

        integer, possible values: 1, 2, 3, 4 — 1-No restriction 2-Medium restriction (external numbers and external contacts not allowed) 3-High restriction (external numbers, unrecorded external contacts, and internal extensions without inbound automatic recording not allowed) 4-Low restriction (external numbers not allowed)

      • enable

        boolean — Whether to allow users to warm or blind transfer their calls. This does not apply to warm transfer on IP Phones except for Yealink.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "invalid", "account", "site" — Which level of administrator prohibits modifying the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset and display when using the new policy framework.

    • check_voicemails_over_phone

      object — Whether to allow extension owners or members of a shared line group to check voicemails for extension numbers over the phone using PIN code.

      • enable

        boolean

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "invalid", "account", "site" — Which level of administrator can prohibit users to modify the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset and display when using the new policy framework.

    • customize_line_name

      object — Whether to enable the line name template to be applied to all the desk phones on your account. Make sure there is enough space on the desk phone to display the line name.

      • common_area_line_name

        string, possible values: "phoneNumber", "extensionNumber", "displayName", "displayName;extensionNumber" — The common area line name.

      • enable

        boolean — Enables the line name template to be applied to all the desk phones on your account. Make sure there is enough space on the desk phone to display the line name.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "invalid", "account", "site" — Which level of administrator prohibits the modification of the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset(displayed when using old or new policy framework).

      • user_line_name

        string, possible values: "phoneNumber", "extensionNumber", "displayName", "displayName;extensionNumber", "firstName;extensionNumber", "firstName;lastName;extensionNumber" — The user line name.

    • delegation

      object — Whether the user can use [call delegation](https://support.zoom.us/hc/en-us/articles/360032881731-Setting-up-call-delegation-shared-lines-appearance-).

      • enable

        boolean

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "invalid", "account", "site" — Which level of administrator prohibits the modification of the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset and display when using the new policy framework.

    • display_call_feedback_survey

      object — Displays a thumbs up/down survey at the end of each call. If participants respond with thumbs down, they can provide additional information about what went wrong.

      • enable

        boolean — Whether to display a thumbs up or down survey at the end of each call. If participants respond with thumbs down, they can provide additional information about what went wrong.

      • feedback_duration

        object — The call duration, in seconds, 0-60.

        • enable

          boolean — The display end-of-call experience feedback survey when call duration issues are detected.

        • max

          integer — The maximum call duration.

        • min

          integer — The minimum call duration.

      • feedback_mos

        object — The MOS score. Min: 1.0, Max: 3.0, format one decimal point.

        • enable

          boolean — Whether to display end-of-call experience feedback survey when call mos score issues are detected.

        • max

          number — The maximum MOS score.

        • min

          number — The minimum MOS score.

      • feedback_type

        integer, possible values: 1, 2 — This field allows you to display feedback survey, `1` - display for every call, `2` - display when call quality issues are detected. Default `1`, if set with value `2`, need to set `feed_back_mos` or `feedback_duration`.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "invalid", "account", "site" — Which level of administrator can prohibit users from modifying the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset and display when using the new policy framework.

    • elevate_to_meeting

      object — Allow users to elevate their phone calls to a meeting.

      • enable

        boolean — Whether to allow users to elevate their phone calls to a meeting.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "invalid", "account", "site" — Which level of administrator can prohibit users to modify the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset and display when using the new policy framework.

    • external_calling_on_zoom_room_common_area

      object — This field allows Zoom Rooms to call external phone numbers based on the calling plans

      • enable

        boolean — This field allows Zoom Rooms to call external phone numbers based on the calling plans

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "invalid", "account", "site" — Which level of administrator can prohibit users from modifying the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset and display when using the new policy framework.

    • force_off_net

      object — It requires the account to enable the `Force Calls out to the PSTN network` feature.

      • allow_extension_only_users_call_users_outside_site

        boolean — This setting allows extension only users to call to users outside the site.

      • enable

        boolean — By enabling Force Off-Net, calls from users or extensions between sites route through the PSTN network. Users within this site can only be part of advanced functionality (eg. Auto Receptionists, Call Queues) for this site. Users require a paid Zoom license and BYOC-P phone numbers to call between sites.

    • forward_call_outside_of_site

      object — This field allows users to forward their calls outside of their own site.Once disabled, users will only be able to forward their calls to users, call queues, shared line groups, etc., within their own site.

      • enable

        boolean — This field allows users to forward their calls outside of their own site.Once disabled, users will only be able to forward their calls to users, call queues, shared line groups, etc., within their own site.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "invalid", "account", "site" — Which level of administrator can prohibit users from modifying the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset and display when using the new policy framework.

    • hand_off_to_room

      object — Allows users to send a call to a Zoom Room

      • enable

        boolean — Whether to allow users to send a call to a Zoom Room.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "invalid", "account", "site" — Which level of administrator can prohibit users to modify the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset. The settings display when using the new policy framework.

    • incoming_call_notification

      object — Allows users to select if an incoming call notification would block their current activity.

      • block_type

        string, possible values: "block_activity", "continue_with_alert" — The incoming call notification block type. `block_activity` means "Block my current activity", `continue_with_alert` means "Alert me but allow me to continue my current activity".

      • enable

        boolean — This field allows users to select if an incoming call notification would block their current activity.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "invalid", "account", "site" — Which level of administrator prohibits the modification of the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset(displayed when using old or new policy framework).

    • international_calling

      object — Whether to allow extensions to place international calls outside of the calling plan.

      • enable

        boolean

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "invalid", "account", "site" — Which level of administrator can prohibit users to modify the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset. The settings display when using the new policy framework.

    • mobile_switch_to_carrier

      object — Allows user to switch from Zoom Phone to their native carrier

      • enable

        boolean — Whether to allow the user to switch from a Zoom Phone to their native carrier.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "invalid", "account", "site" — Which level of administrator prohibits the modification of the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset and display when using the new policy framework.

    • obfuscate_sensitive_data_during_call

      object — Once enabled, when a user on an active call presses a dial pad key on screen or number on the keyboard, the client DTMF tones will be muted and the numbers will be masked on the screen.

      • enable

        boolean — Once enabled, when a user on an active call presses a dial pad key on screen or number on the keyboard, the client DTMF tones will be muted and the numbers will be masked on the screen.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "invalid", "account", "site" — Which level of administrator can prohibit users from modifying the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset and display when using the new policy framework.

    • personal_audio_library

      object — Allows users to change their own Audio Library.

      • allow_music_on_hold_customization

        boolean — Whether to allow music on hold customization.

      • allow_voicemail_and_message_greeting_customization

        boolean — Whether to allow voicemail and message greeting customization.

      • enable

        boolean — This field allows users to access, share, download, or delete voicemail or videomail.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "invalid", "account", "site" — Which level of administrator prohibits the modification of the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset. The settings display when using the new policy framework.

    • prevent_users_upload_audio_files

      object — Once enabled, users will not be able to upload audios on the web portal. Users will be still able to access text-to-speech or record audio files.

      • enable

        boolean — Once enabled, users will not be able to upload audios on the web portal. Users will be still able to access text-to-speech or record audio files.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "invalid", "account", "site" — Which level of administrator can prohibit users from modifying the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset and display when using the new policy framework.

    • schedule_firmware_update

      object — Defines how often and when to update firmware of the devices.

      • enable

        boolean — Whether to define how often and when to update firmware of the devices.

      • end_setting

        object — The end setting.

        • end_date

          string, format: date — The end date in the format \"yyyy-MM-dd\". Only return when `never_end` is false.

        • never_end

          boolean — Never ends.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "invalid", "account" — Which level of administrator prohibits the modification of the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset(displayed when using old or new policy framework).

      • repeat_setting

        object — The repeat setting

      • repeat_type

        string, possible values: "weekly", "monthly" — The repeat type.

      • time_period_end

        integer — The time period end time. 16 means 4 PM.

      • time_period_start

        integer — The time period start time. 15 means 3 PM.

      • time_zone

        string — The [time zone list](https://developer.zoom.us/docs/api-reference/other-references/abbreviation-lists/#timezones) for supported time zones and their formats.

    • select_outbound_caller_id

      object — Whether to allow the current extension to change the outbound caller ID when placing calls.

      • allow_hide_outbound_caller_id

        boolean — Whether to allow the current extension to hide outbound caller ID.

      • enable

        boolean — Whether to allow the current extension to change the outbound caller ID when placing calls.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "invalid", "account", "site" — Which level of administrator prohibits the modification of the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset. The settings display when using the new policy framework.

    • shared_voicemail_notification_by_email

      object — Once enabled, users will receive email notification when there is a new shared voicemail/videomail. If the extension that shares the voicemail or videomail has disabled the voicemail or videomail notification by email policy, users will not receive notifications. They only display when the voicemail policy uses the new policy framework.

      • enable

        boolean

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "invalid", "account", "site" — Which level of administrator can prohibit users to modify the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset and display when using the new policy framework.

    • show_user_last_transferred_call

      boolean — Whether to show the user who last transferred the call. Viewing preferences display on the incoming call panel. Selections made here do not affect the information shown in call logs.

    • sms

      object — Allows users, call queues and auto receptionists to send and receive messages. You will still need to assign a valid calling plan and phone number to each user in order for them to send and receive messages. Do not enable this control if you intend to use SMS services with a third party SMS provider.

      • allow_copy

        boolean — This field allows users to copy message.

      • allow_paste

        boolean — This field allows users to use the paste function to paste content (e.g. text or images) into SMS/MMS conversations.

      • enable

        boolean — Whether to allow users, call queues, and auto receptionists to send and receive messages. You need to assign a valid calling plan and phone number to each user for them to send and receive messages.

      • international_sms

        boolean — Whether the user can send and receive international messages.

      • international_sms_countries

        array — The country to which users can send and receive international messages. The [country ISO code](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries).

        Items:

        string — Country

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "invalid", "account", "site" — Which level of administrator prohibits modifying the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset. The settings display when using the new policy framework.

    • sms_auto_reply

      object — This field enables SMS Auto Reply feature for User, Auto Receptionist, and Call Queue

      • enable

        boolean — This field enables SMS Auto Reply feature for User, Auto Receptionist, and Call Queue

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "invalid", "account", "site" — Which level of administrator can prohibit users from modifying the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset and display when using the new policy framework.

    • sms_template

      object — Whether to use pre-defined templates to help users compose messages. Power Pack license is required for this feature to work.

      • enable

        boolean — Enables the use of pre-defined templates to help users compose messages. Power Pack license is required for this feature to work.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "invalid", "account", "site" — Which level of administrator prohibits the modification of the current settings.

      • modified

        boolean — Whether the current settings have been modified.

      • sms_template_list

        array — The SMS template list.

        Items:

        • active

          boolean — Whether it is active.

        • content

          string — Text to Display. This text will be editable by users. Customer input fields may be added by using the buttons below. Customer information will be removed if not available.

        • description

          string — The SMS template description.

        • name

          string — The SMS template name.

        • sms_template_id

          string — The SMS template ID.

    • team_sms_thread_summary

      object — This field allows users to summarize and extract tasks from English SMS conversations.

      • enable

        boolean — This field allows users to summarize and extract tasks from English SMS conversations.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "invalid", "account", "site" — Which level of administrator can prohibit users from modifying the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset and display when using the new policy framework.

    • voicemail

      object — Allows users to access, share, download, and to delete voicemail and videomail

      • allow_delete

        boolean — This setting allows users to delete their own voicemail. It displays only when using the new policy framework.

      • allow_download

        boolean — This setting allows users to download their own voicemail. It displays only when using the new policy framework.

      • allow_videomail

        boolean — This setting allows users to access, share, download or delete video mail

      • enable

        boolean — This setting allows users to access, receive, or share voicemail and video mail.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "invalid", "account", "site" — Which level of administrator can prohibit users to modify the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset. The settings display when using the new policy framework.

    • voicemail_intent_based_prioritization

      object — This field allows users to prioritize urgent voicemails based on predefined priority topics. Users need to have voicemail transcription policy enabled.

      • enable

        boolean — This field allows users to prioritize urgent voicemails based on predefined priority topics. Users need to have voicemail transcription policy enabled.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "invalid", "account", "site" — Which level of administrator can prohibit users from modifying the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset and display when using the new policy framework.

    • voicemail_notification_by_email

      object — Once enabled, users receive email notifications when there is a new voicemail from users, call queues, auto receptionists, or shared line groups. Users who disabled the shared voicemail notification by email policy receive notifications. They display when the voicemail policy uses the new policy framework.

      • enable

        boolean

      • forward_voicemail_to_email

        boolean — Whether to forward the voicemail to email.

      • include_voicemail_file

        boolean — Whether to include the voicemail file.

      • include_voicemail_transcription

        boolean — Whether to include the voicemail transcription.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "invalid", "account", "site" — Which level of administrator prohibits the modification of the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset. The settings display when using the new policy framework.

    • voicemail_tasks

      object — This field allows users to extract tasks from English voicemail transcriptions. Users need to have voicemail transcription policy enabled.

      • enable

        boolean — This field allows users to extract tasks from English voicemail transcriptions. Users need to have voicemail transcription policy enabled.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "invalid", "account", "site" — Which level of administrator can prohibit users from modifying the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset and display when using the new policy framework.

    • voicemail_transcription

      object — When this setting is enabled, voicemail and videomail transcriptions will be created and remain accessible even if the setting is later disabled. If the setting is disabled, new voicemail and videomail transcriptions will not be generated.

      • enable

        boolean — Whether to allow users to access transcriptions of voicemails from the Zoom client, the Zoom web portal, and email notifications.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "invalid", "account", "site" — Which level of administrator prohibits the modification of the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset. The settings display when using the new policy framework.

    • zoom_phone_on_desktop

      object — Allows user to use Zoom Phone on desktop clients (Mac OS, Windows, VDI client and Linux).

      • allow_calling_clients

        array — The clients in this list are allowed to make and receive calls.

        Items:

        string, possible values: "mac_os", "windows", "vdi_client", "linux" — The acceptable value is mac_os windows vdi_client linux.

      • allow_sms_mms_clients

        array — The clients in this list are allowed to use the SMS/MMS function.

        Items:

        string, possible values: "mac_os", "windows", "vdi_client", "linux" — The acceptable value is mac_os windows vdi_client linux.

      • enable

        boolean — Whether to allow users to use Zoom Phone on desktop clients (Mac OS, Windows, VDI clinet and Linux).

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "invalid", "account", "site" — Which level of administrator prohibits the modification of the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, you can reset settings to display when using the new policy framework.

    • zoom_phone_on_mobile

      object — Allows user to use Zoom Phone on mobile clients (iOS, iPad OS and Android).

      • allow_calling_clients

        array — The clients in this list are allowed to make and receive calls.

        Items:

        string, possible values: "ios", "android", "intune", "blackberry" — The acceptable value is ios android intune blackberry.

      • allow_calling_sms_mms

        boolean — This field allows calling and SMS/MMS functions on mobile.

      • allow_sms_mms_clients

        array — The clients in this list are allowed to use the SMS/MMS function.

        Items:

        string, possible values: "ios", "android", "intune", "blackberry" — The acceptable value is ios android intune blackberry.

      • enable

        boolean — This field allows users to use Zoom Phone on mobile clients (iOS, iPad OS and Android).

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "invalid", "account", "site" — Which level of administrator prohibits the modification of the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, you can reset settings to display when using the new policy framework.

    • zoom_phone_on_pwa

      object — This field allows users to use Zoom Phone on Zoom Progressive Web App

      • allow_calling

        boolean — This field allows users to use calling on Zoom Progressive Web App

      • allow_sms_mms

        boolean — This field allows users to use SMS/MMS on Zoom Progressive Web App

      • enable

        boolean — This field allows users to use Zoom Phone on Zoom Progressive Web App

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "invalid", "account", "site" — Which level of administrator can prohibit users from modifying the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset and display when using the new policy framework.

  • short_extension

    object — The short extension of the phone site.

    • length

      integer, default: 3 — The length of the short extension number for the site.

  • sip_zone

    object — When you select a SIP zone nearest to your site, it might help reduce latency and improve call quality.

    • id

      string — The SIP Zone ID.

    • name

      string — The SIP Zone name.

  • site_code

    integer — The [site code](https://support.zoom.us/hc/en-us/articles/360020809672-Managing-Multiple-Sites#h_79ca9c8f-c97b-4486-aa59-d0d9d31a525b).

Example:

{
  "country": {
    "code": "US",
    "name": "United States"
  },
  "id": "SQv52YtkRLC2dwrDdYtGsA",
  "main_auto_receptionist": {
    "extension_id": "pl1XprjhTQK1CCMVKTqCFA",
    "extension_number": 12345,
    "id": "Kbdc9lv_SBCuPMjj_lhxVA",
    "name": "ApiTA_R_2020_07_12_00_41_57_145"
  },
  "name": "ApiTA_Site_2020_07_12_00_41_57_141",
  "short_extension": {
    "length": 3
  },
  "site_code": 321,
  "policy": {
    "select_outbound_caller_id": {
      "enable": true,
      "locked": true,
      "locked_by": "site",
      "modified": true,
      "allow_hide_outbound_caller_id": true
    },
    "personal_audio_library": {
      "enable": true,
      "locked": true,
      "locked_by": "site",
      "modified": true,
      "allow_music_on_hold_customization": true,
      "allow_voicemail_and_message_greeting_customization": true
    },
    "voicemail": {
      "allow_delete": true,
      "allow_download": false,
      "allow_videomail": true,
      "enable": true,
      "locked": true,
      "locked_by": "site",
      "modified": true
    },
    "voicemail_transcription": {
      "enable": true,
      "locked": true,
      "locked_by": "site",
      "modified": true
    },
    "voicemail_notification_by_email": {
      "include_voicemail_file": true,
      "include_voicemail_transcription": false,
      "forward_voicemail_to_email": true,
      "enable": true,
      "locked": true,
      "locked_by": "site",
      "modified": true
    },
    "shared_voicemail_notification_by_email": {
      "enable": true,
      "locked": true,
      "locked_by": "site",
      "modified": true
    },
    "international_calling": {
      "enable": true,
      "locked": true,
      "locked_by": "site",
      "modified": true
    },
    "zoom_phone_on_mobile": {
      "allow_calling_clients": [
        "ios"
      ],
      "allow_sms_mms_clients": [
        "ios"
      ],
      "enable": true,
      "locked": true,
      "locked_by": "site",
      "modified": true
    },
    "sms": {
      "enable": true,
      "international_sms": true,
      "international_sms_countries": [
        "US"
      ],
      "locked": true,
      "locked_by": "site",
      "modified": true,
      "allow_copy": true,
      "allow_paste": true
    },
    "elevate_to_meeting": {
      "enable": true,
      "locked": true,
      "locked_by": "site",
      "modified": true
    },
    "hand_off_to_room": {
      "enable": true,
      "locked": true,
      "locked_by": "site",
      "modified": true
    },
    "mobile_switch_to_carrier": {
      "enable": true,
      "locked": true,
      "locked_by": "site",
      "modified": true
    },
    "delegation": {
      "enable": true,
      "locked": true,
      "locked_by": "site",
      "modified": true
    },
    "ad_hoc_call_recording": {
      "enable": true,
      "recording_start_prompt": false,
      "recording_transcription": true,
      "play_recording_beep_tone": {
        "enable": true,
        "play_beep_volume": 60,
        "play_beep_time_interval": 15,
        "play_beep_member": "allMember"
      },
      "locked": true,
      "locked_by": "account",
      "modified": true
    },
    "auto_call_recording": {
      "allow_stop_resume_recording": true,
      "disconnect_on_recording_failure": true,
      "enable": true,
      "locked": true,
      "locked_by": "account",
      "modified": true,
      "recording_calls": "inbound",
      "recording_transcription": true,
      "play_recording_beep_tone": {
        "enable": true,
        "play_beep_volume": 60,
        "play_beep_time_interval": 15,
        "play_beep_member": "allMember"
      },
      "inbound_audio_notification": {
        "recording_start_prompt": true,
        "recording_explicit_consent": true
      },
      "outbound_audio_notification": {
        "recording_start_prompt": true,
        "recording_explicit_consent": true
      }
    },
    "call_handling_forwarding_to_other_users": {
      "enable": true,
      "call_forwarding_type": 1,
      "locked": true,
      "locked_by": "site",
      "modified": true
    },
    "check_voicemails_over_phone": {
      "enable": true,
      "locked": true,
      "locked_by": "site",
      "modified": true
    },
    "call_queue_pickup_code": {
      "enable": true,
      "locked": true,
      "locked_by": "site",
      "modified": true
    },
    "call_queue_opt_out_reason": {
      "enable": true,
      "locked": true,
      "locked_by": "site",
      "modified": true,
      "call_queue_opt_out_reasons_list": [
        {
          "code": "Break",
          "system": true,
          "enable": true
        }
      ]
    },
    "show_user_last_transferred_call": true,
    "auto_delete_data_after_retention_duration": {
      "enable": true,
      "reset": true,
      "locked": false,
      "locked_by": "site",
      "items": [
        {
          "type": "callLog",
          "duration": -1,
          "time_unit": "year"
        }
      ],
      "delete_type": 1
    },
    "call_park": {
      "call_not_picked_up_action": 50,
      "enable": true,
      "expiration_period": 3,
      "forward_to": {
        "display_name": "ZOOM_API Test",
        "extension_id": "TO586CYlQFC_WCUvPRXytA",
        "extension_number": 100014,
        "extension_type": "user",
        "id": "oG_nYRFuTJiY1tu0Fur_4Q"
      },
      "sequence": 1,
      "locked": false,
      "locked_by": "site",
      "modified": true
    },
    "call_overflow": {
      "call_overflow_type": 1,
      "enable": true,
      "locked": true,
      "locked_by": "site",
      "modified": true
    },
    "call_transferring": {
      "call_transferring_type": 1,
      "enable": true,
      "locked": true,
      "locked_by": "site",
      "modified": true
    },
    "audio_intercom": {
      "enable": true,
      "locked": true,
      "locked_by": "site",
      "modified": true
    },
    "block_calls_without_caller_id": {
      "enable": true,
      "locked": true,
      "locked_by": "site",
      "modified": true
    },
    "block_external_calls": {
      "enable": true,
      "locked": true,
      "locked_by": "site",
      "modified": true,
      "block_business_hours": true,
      "block_closed_hours": true,
      "block_holiday_hours": true,
      "block_call_action": 0,
      "block_call_change_type": 0,
      "e2e_encryption": {
        "enable": true,
        "locked": true,
        "locked_by": "site",
        "modified": true
      }
    },
    "force_off_net": {
      "enable": true,
      "allow_extension_only_users_call_users_outside_site": true
    },
    "external_calling_on_zoom_room_common_area": {
      "enable": true,
      "locked": true,
      "locked_by": "site",
      "modified": true
    },
    "zoom_phone_on_pwa": {
      "allow_calling": true,
      "allow_sms_mms": true,
      "enable": true,
      "locked": true,
      "locked_by": "site",
      "modified": true
    },
    "sms_auto_reply": {
      "enable": true,
      "locked": true,
      "locked_by": "site",
      "modified": true
    },
    "allow_end_user_edit_call_handling": {
      "enable": true,
      "locked": true,
      "locked_by": "site",
      "modified": true
    },
    "allow_caller_reach_operator": {
      "enable": true,
      "locked": true,
      "locked_by": "site",
      "modified": true
    },
    "forward_call_outside_of_site": {
      "enable": true,
      "locked": true,
      "locked_by": "site",
      "modified": true
    },
    "allow_mobile_home_phone_callout": {
      "enable": true,
      "locked": true,
      "locked_by": "site",
      "modified": true
    },
    "obfuscate_sensitive_data_during_call": {
      "enable": true,
      "locked": true,
      "locked_by": "site",
      "modified": true
    },
    "prevent_users_upload_audio_files": {
      "enable": true,
      "locked": true,
      "locked_by": "site",
      "modified": true
    },
    "voicemail_tasks": {
      "enable": true,
      "locked": true,
      "locked_by": "site",
      "modified": true
    },
    "voicemail_intent_based_prioritization": {
      "enable": true,
      "locked": true,
      "locked_by": "site",
      "modified": true
    },
    "team_sms_thread_summary": {
      "enable": true,
      "locked": true,
      "locked_by": "site",
      "modified": true
    },
    "display_call_feedback_survey": {
      "enable": true,
      "locked": true,
      "locked_by": "site",
      "modified": true,
      "feedback_type": 1,
      "feedback_mos": {
        "enable": true,
        "min": 1.5,
        "max": 3.5
      },
      "feedback_duration": {
        "enable": true,
        "min": 0,
        "max": 10
      }
    },
    "call_live_transcription": {
      "enable": true,
      "locked": true,
      "locked_by": "account",
      "modified": true,
      "transcription_start_prompt": {
        "enable": true,
        "audio_id": "yCT14TwySDGVUypVlKNEyA",
        "audio_name": "example.mp3"
      }
    },
    "call_screening": {
      "enable": true,
      "locked": true,
      "locked_by": "account",
      "modified": true,
      "exclude_user_company_contacts": false
    },
    "sms_template": {
      "enable": true,
      "locked": true,
      "locked_by": "account",
      "modified": true,
      "sms_template_list": [
        {
          "sms_template_id": "0qWIP8S8QXmo6KShUIyvZA",
          "name": "name",
          "description": "description",
          "content": "content",
          "active": true
        }
      ]
    },
    "advanced_encryption": {
      "enable": true,
      "locked": true,
      "locked_by": "account",
      "modified": true,
      "disable_incoming_unencrypted_voicemail": true
    },
    "customize_line_name": {
      "enable": true,
      "locked": true,
      "locked_by": "account",
      "modified": true,
      "user_line_name": "phoneNumber",
      "common_area_line_name": "phoneNumber"
    },
    "auto_opt_out_in_call_queue": {
      "enable": true,
      "locked": true,
      "locked_by": "account",
      "modified": true,
      "prompt_before_opt_out_call_queue": true
    },
    "incoming_call_notification": {
      "enable": true,
      "locked": true,
      "locked_by": "account",
      "modified": true,
      "block_type": "block_activity"
    },
    "call_summary": {
      "enable": true,
      "locked": true,
      "locked_by": "account",
      "modified": true,
      "auto_call_summary": true,
      "call_summary_start_prompt": {
        "enable": true,
        "audio_id": "yCT14TwySDGVUypVlKNEyA",
        "audio_name": "example.mp3"
      }
    },
    "schedule_firmware_update": {
      "enable": true,
      "locked": true,
      "locked_by": "account",
      "modified": true,
      "repeat_type": "weekly",
      "repeat_setting": {
        "weekly_setting": {
          "weekday": "monday"
        }
      },
      "time_period_start": 15,
      "time_period_end": 16,
      "time_zone": "Asia/Shanghai",
      "end_setting": {
        "never_end": true,
        "end_date": "2025-01-01"
      }
    },
    "zoom_phone_on_desktop": {
      "allow_calling_clients": [
        "mac_os"
      ],
      "allow_sms_mms_clients": [
        "mac_os"
      ],
      "enable": true,
      "locked": true,
      "locked_by": "site",
      "modified": true
    }
  },
  "sip_zone": {
    "id": "2J9UXzGuTaqCdZ8sw_0jBw",
    "name": "sip-zone01"
  },
  "caller_id_name": "CallerIdName",
  "india_state_code": "CG",
  "india_city": "Bemetara",
  "india_sdca_npa": "7700",
  "india_entity_name": "india-test-entity",
  "default_emergency_address": {
    "address_line1": "55 ALMADEN BLVD",
    "address_line2": "8 Floor",
    "city": "San Jose",
    "country": "US",
    "id": "Qza2T_KATwCeUfTkzGsOmQ",
    "is_default": true,
    "level": 1,
    "state_code": "CA",
    "status": 1,
    "zip": "95113"
  }
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> The site does not exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Delete a phone site

  • Method: DELETE
  • Path: /phone/sites/{siteId}
  • Tags: Sites

Use this API to delete a specific site in a Zoom account. To delete a site, in the query parameter, you must provide the site ID of another site where the assets of current site (users, numbers and phones) can be transferred to. You cannot use this API to delete the main site.

Prerequisites:

  • Account must have a Pro or a higher plan with Zoom Phone license.
  • Multiple sites must be enabled.

Scopes: phone:write:admin

Granular Scopes: phone:delete:site:admin

Rate Limit Label: Light

Responses

Status: 204 **HTTP Status Code:** `204` Site deleted.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Unable to transfer to the same site.<br> Main company number can not change {phoneNumber}.<br> Site does not exist.
Status: 409 **HTTP Status Code:** `409` <br> Conflict **Error Code:** `409` <br> Conflict target extension number, try later.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update phone site details

  • Method: PATCH
  • Path: /phone/sites/{siteId}
  • Tags: Sites

Updates information about a specific site.

It allows you to organize Zoom Phone users in your organization.

Prerequisites An account must have a Pro or a higher plan with Zoom Phone license.

Scopes: phone:write:admin

Granular Scopes: phone:update:site:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • caller_id_name

    string — When an outbound call uses a number as the caller ID, the caller ID name and the number display to the called party. The caller ID name can be up to 15 characters. The user can reset the caller ID name by setting it to &quot;&quot;.

  • default_emergency_address

    object — The default emergency address. If the address is not an exact match, we use the system generated corrected address.

  • name

    string — The name of the site.

  • policy

    object — The [site policy setting](https://support.zoom.us/hc/en-us/articles/360033511872-Changing-Zoom-Phone-policy-settings#h_af4d1935-9cb1-44d2-9a10-9bfba10d58a7).

    • ad_hoc_call_recording

      object — A list of ad hoc call recording settings.

      • enable

        boolean — Whether the current extension can record and save calls to the cloud.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • play_recording_beep_tone

        object — Whether to play the side tone beep for recorded users while recording.

        • enable

          boolean — Whether to play a side tone beep for recorded users while recording. It displays only when ad hoc call recording policy uses the new framework.

        • play_beep_member

          string, possible values: "allMember", "recordingSide" — The beep sides. It displays only when `enable` is true.

        • play_beep_time_interval

          integer, possible values: 5, 10, 15, 20, 25, 30, 60, 120 — The beep time interval in seconds. It displays only when `enable` is true.

        • play_beep_volume

          integer, possible values: 0, 20, 40, 60, 80, 100 — The volume of the side tone beep. It displays only when `enable` is set to `true`.

      • recording_start_prompt

        boolean — Whether a prompt plays to call participants when the recording has started.

      • recording_transcription

        boolean — Whether call recording transcription is enabled.

      • reset

        boolean — Whether the current settings use the phone account's settings if the current settings use the new policy framework.

    • advanced_encryption

      object — Whether to allow voicemail to be encrypted with keys which are not accessible to Zoom servers. These voicemails can be decrypted only by the intended user recipient. Shared line appearance, shared line group, call queue, or auto receptionist voicemail will not be encrypted, but can still be played. Email to voicemail, transcriptions, ability to check voicemails by dialing into the voicemail system, or web are not available when this feature is enabled. This policy requires a Power Pack license to be enabled. If the user does who inherits this policy does not have a Power Pack license, the policy will not be applied.

      • disable_incoming_unencrypted_voicemail

        boolean — Whether to disable incoming unencrypted voicemail.

      • enable

        boolean — Allows voicemail to be encrypted with keys which are not accessible to Zoom servers.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • reset

        boolean — Whether the current settings use the phone account's settings when the current settings use the new policy framework.

    • allow_caller_reach_operator

      object — This field enables users to allow their callers to reach an operator.Once disabled, users will not be able to route their calls to an operator as part of the "When a call is not answered" setting.

      • enable

        boolean — This field enables users to allow their callers to reach an operator .Once disabled, users will not be able to route their calls to an operator as part of the "When a call is not answered" setting.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • reset

        boolean — Whether the current settings use the phone account's settings if the current settings use the new policy framework.

    • allow_end_user_edit_call_handling

      object — This field allows users to edit call handling settings. Once disabled, users will not be able to edit their call handling settings on the web portal or enable call forwarding on the client.

      • enable

        boolean — This field allows users to edit call handling settings. Once disabled, users will not be able to edit their call handling settings on the web portal or enable call forwarding on the client.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • reset

        boolean — Whether the current settings use the phone account's settings if the current settings use the new policy framework.

    • allow_mobile_home_phone_callout

      object — This field allows users to use mobile or home phone to place calls. Zoom app will call this device first before ringing the called number.

      • enable

        boolean — This field allows users to use mobile or home phone to place calls. Zoom app will call this device first before ringing the called number.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • reset

        boolean — Whether the current settings use the phone account's settings if the current settings use the new policy framework.

    • audio_intercom

      object — Whether to allow hands-free peer-to-peer conversations. When an intercom call is received, the phone beeps to notify the user of the incoming intercom call, and the user's phone automatically answers the intercom call.

      • enable

        boolean

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • reset

        boolean — Whether the current settings use the phone account's settings when the current settings use the new policy framework.

    • auto_call_recording

      object — A list of the site's automatic call recording settings.

      • allow_stop_resume_recording

        boolean — Whether the stop and resume of automatic call recording is enabled.

      • disconnect_on_recording_failure

        boolean — Whether a call disconnects when there is an issue with the automatic call recording and the call cannot reconnect after five seconds. This does **not** include emergency calls.

      • enable

        boolean — Whether automatic call recording is enabled.

      • inbound_audio_notification

        object — Whether a prompt plays to call participants when the recording has started for inbound call is enabled.

        • recording_explicit_consent

          boolean — Whether the **Press 1** option that provides recording consent for inbound call is enabled. <b>Note:</b> * if customers who do not opt OP flag named `Enable Caller Based Consent Options`, the values of `recording_explicit_consent`, `inbound_audio_notification.recording_explicit_consent`, and `outbound_audio_notification.recording_explicit_consent` always remain consistent. * if customers who do not opt OP flag named `Enable Caller Based Consent Options`, update both `inbound_audio_notification.recording_explicit_consent` and `outbound_audio_notification.recording_explicit_consent` with the same value.

        • recording_start_prompt

          boolean — Whether a prompt plays to call participants when the recording has started for inbound call is enabled. <b>Note:</b> * if customers who do not opt OP flag named `Enable Caller Based Consent Options`, the values of `recording_start_prompt`, `inbound_audio_notification.recording_start_prompt`, and `outbound_audio_notification.recording_start_prompt` always remain consistent. * if customers who do not opt OP flag named `Enable Caller Based Consent Options`, update both `inbound_audio_notification.recording_start_prompt` and `outbound_audio_notification.recording_start_prompt` with the same value.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • outbound_audio_notification

        object — Whether a prompt plays to call participants when the recording has started for outbound call is enabled.

        • recording_explicit_consent

          boolean — Whether the **Press 1** option that provides recording consent for outbound call is enabled. <b>Note:</b> * if customers who do not opt OP flag named `Enable Caller Based Consent Options`, the values of `recording_explicit_consent`, `inbound_audio_notification.recording_explicit_consent`, and `outbound_audio_notification.recording_explicit_consent` always remain consistent. * if customers who do not opt OP flag named `Enable Caller Based Consent Options`, update both `inbound_audio_notification.recording_explicit_consent` and `outbound_audio_notification.recording_explicit_consent` with the same value.

        • recording_start_prompt

          boolean — Whether a prompt plays to call participants when the recording has started for outbound call is enabled. <b>Note:</b> * if customers who do not opt OP flag named `Enable Caller Based Consent Options`, the values of `recording_start_prompt`, `inbound_audio_notification.recording_start_prompt`, and `outbound_audio_notification.recording_start_prompt` always remain consistent. * if customers who do not opt OP flag named `Enable Caller Based Consent Options`, update both `inbound_audio_notification.recording_start_prompt` and `outbound_audio_notification.recording_start_prompt` with the same value.

      • play_recording_beep_tone

        object — Whether to play the side tone beep for recorded users while recording.

        • enable

          boolean — Whether to play a side tone beep for recorded users while recording. It only displays when auto call recording policy uses the new framework.

        • play_beep_member

          string, possible values: "allMember", "recordingSide" — The beep sides. It displays only when `enable` is true.

        • play_beep_time_interval

          integer, possible values: 5, 10, 15, 20, 25, 30, 60, 120 — The beep time interval in seconds. It displays only when `enable` is true.

        • play_beep_volume

          integer, possible values: 0, 20, 40, 60, 80, 100 — The volume of the side tone beep. It displays only when `enable` is set to `true`.

      • recording_calls

        string, possible values: "inbound", "outbound", "both" — The type of calls automatically recorded: * `inbound` * `outbound` * `both`

      • recording_explicit_consent

        boolean — Whether the `Press 1 to provide recording consent` is enabled. <b>Deprecated:</b> This field will be deprecated in a future release. As an alternative, use the `inbound_audio_notification.recording_explicit_consent` and `outbound_audio_notification.recording_explicit_consent` to operate the inbound and outbound prompt separately. <b>Note:</b> * if customers who opt OP flag named `Enable Caller Based Consent Options`, the values of `recording_explicit_consent` and `inbound_audio_notification.recording_explicit_consent` will remain consistent. When the field is updated, the `inbound_audio_notification.recording_explicit_consent` will be also updated. * if customers who do not opt OP flag named `Enable Caller Based Consent Options`, the values of `recording_explicit_consent`, `inbound_audio_notification.recording_explicit_consent`, and `outbound_audio_notification.recording_explicit_consent` always remain consistent. when the field is updated, the `inbound_audio_notification.recording_explicit_consent`, and `outbound_audio_notification.recording_explicit_consent` will be also updated.

      • recording_start_prompt

        boolean — Whether a prompt plays to call participants when the recording has started. <b>Deprecated:</b> This field will be deprecated in a future release. As an alternative, use the `inbound_audio_notification.recording_start_prompt` and `outbound_audio_notification.recording_start_prompt` to operate the inbound and outbound prompt separately. <b>Note:</b> * if customers who opt OP flag named `Enable Caller Based Consent Options`, the values of `recording_start_prompt` and `inbound_audio_notification.recording_start_prompt` will remain consistent. When the field is updated, the `inbound_audio_notification.recording_start_prompt` will be also updated. * if customers who do not opt OP flag named `Enable Caller Based Consent Options`, the values of `recording_start_prompt`, `inbound_audio_notification.recording_start_prompt`, and `outbound_audio_notification.recording_start_prompt` always remain consistent. when the field is updated, the `inbound_audio_notification.recording_start_prompt`, and `outbound_audio_notification.recording_start_prompt` will be also updated.

      • recording_transcription

        boolean — Whether call recording transcription is enabled.

      • reset

        boolean — Whether the current settings use the phone account's settings if the current settings use the new policy framework.

    • auto_delete_data_after_retention_duration

      object — Allows Zoom to automatically delete data after retention duration.

      • delete_type

        integer, possible values: 1, 2 — The delete policy. * 1 - soft delete * 2 - permanent delete

      • enable

        boolean — This setting allows Zoom to automatically delete data after the retention duration has lapsed.

      • items

        array — Items

        Items:

        • duration

          integer — The retention duration where -1 means unlimited. For units of time, see the `time_unit` below. For `year`, the duration:-1, 1-10; for `day`, the duration:-1, 1-60; for `month`, the duration:-1, 1-18.

        • time_unit

          string, possible values: "year", "month", "day" — The unit of time.

        • type

          string, possible values: "callLog", "onDemandRecording", "automaticRecording", "voicemail", "videomail", "sms" — The data types.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • reset

        boolean — Whether the current settings use the phone account's settings if the current settings use the new policy framework.

    • auto_opt_out_in_call_queue

      object — Whether to enable auto Opt-out from Call Queue after logging out from Zoom.

      • enable

        boolean — Once enabled, when Call Queue members log out of Zoom (Except for desk phones and Zoom Phone appliances), they will be automatically Opted-out from the Call Queue as well.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • prompt_before_opt_out_call_queue

        boolean — Once enabled, always ask the user if they want to opt-out from the Call Queue when they sign out of Zoom.

      • reset

        boolean — Whether the current settings use the phone account's settings when the current settings use the new policy framework.

    • block_calls_without_caller_id

      object — Whether calls without a caller ID are blocked.

      • enable

        boolean

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • reset

        boolean — Whether the current settings use the phone account's settings if the current settings use the new policy framework.

    • block_external_calls

      object — The rules for blocking external calls during business, closed, and holiday hours. This feature is only available for User, Zoom Room, and Common Area.

      • block_business_hours

        boolean — The field blocks external calls during business hours.

      • block_call_action

        integer, possible values: 0, 9 — The action when a call is blocked. 9-Disconnect, 0-Forward to voicemail/videomail.

      • block_call_change_type

        integer, possible values: 0, 1 — This setting applies only in the old policy framework. It applies changes to new extensions or all extensions. `1` - All extension, `0` - New extensions.

      • block_closed_hours

        boolean — This field blocks external calls during closed hours

      • block_holiday_hours

        boolean — The field blocks external calls during holiday hours.

      • e2e_encryption

        object — Allows users to switch their calls to End-to-End Encryption.

        • enable

          boolean — Whether to allow users to switch their calls to `End-to-End Encryption`. If users have `Automatic Call Recording` turned on, they cannot use `End-to-End Encryption`.

        • locked

          boolean — Whether the senior administrator allows users to modify the current settings.

        • locked_by

          string, possible values: "invalid", "account", "site" — Which level of administrator prohibits modifying the current settings.

        • modified

          boolean — Whether the current settings have been modified. If modified, they can be reset. The settings display in the new policy framework.

      • enable

        boolean

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • reset

        boolean — Whether the current settings use the phone account's settings, which are compatible with the old or new policy frameworks.

    • call_handling_forwarding_to_other_users

      object — Whether to allow users to forward their calls to other numbers.

      • call_forwarding_type

        integer, possible values: 1, 2, 3, 4 — `1` - Low restriction (external numbers not allowed) `2` - Medium restriction (external numbers and external contacts not allowed) `3` - High restriction (external numbers, external contacts and internal extensions without inbound automatic call recording not allowed) `4` - No restriction

      • enable

        boolean

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • reset

        boolean — Whether the current settings use the phone account's settings if the current settings use the new policy framework.

    • call_live_transcription

      object — Whether to let users turn on live transcriptions for a call.

      • enable

        boolean — This field enables users to turn on live transcriptions for a call.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • reset

        boolean — Whether the current settings use the phone account's settings when the current settings use the new policy framework.

      • transcription_start_prompt

        object — Whether to play a prompt to call participants when the transcription has started.

        • audio_id

          string — The unique identifier of the audio item. Only required when `transcription_start_prompt`is enable.

        • enable

          boolean — This setting enables play a prompt to call participants when the transcription has started.

    • call_overflow

      object — Allows users to forward their calls to other numbers when a call is not answered.

      • call_overflow_type

        integer, possible values: 1, 2, 3, 4 — `1` - Can forward to internal extensions and to external contacts `2` - Can forward only to internal extensions `3` - Can forward only to internal extensions that require inbound Automatic Call Recording `4` - Can forward to internal extensions, external contacts, and external numbers

      • enable

        boolean — Whether to allow users to forward their calls to other numbers.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • reset

        boolean — Whether the current settings use the phone account's settings when the current settings use the new policy framework.

    • call_park

      object — Allows calls placed on hold to be resumed from another location using a retrieval code.

      • call_not_picked_up_action

        integer — The action when a parked call is not picked up. `100` - Ring back to parker `0` - Forward to voicemail of the parker `9` - Disconnect `50` - Forward to another extension

      • enable

        boolean — Whether to allow calls on hold to be resumed from another location with a retrieval code.

      • expiration_period

        integer, possible values: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60 — A time limit for parked calls in minutes. After the expiration period ends, the retrieval code is no longer valid and a new code generates.

      • forward_to_extension_id

        string — The extension's forwarding information when `call_not_picked_up_action` uses the `50` - Forward to another extension.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • reset

        boolean — Whether the current settings use the phone account's settings if the current settings use the new policy framework.

      • sequence

        integer, possible values: 0, 1 — This field chooses how parked calls are assigned to a BLF (Busy Lamp Field) key. Sequential assignment parks the call at the next available BLF key. Random assignment parks the call at a randomly selected BLF key. `0` - Random `1` - Sequential

    • call_queue_opt_out_reason

      object — The opt-out reasons for call queues. When enabled, call queue members need to select an opt-out reason when they turn off the `receive queue call` feature.

      • call_queue_opt_out_reasons_list

        array — The reason list.

        Items:

        • code

          string — The opt out code.

        • enable

          boolean

        • system

          boolean — The reason for the system default. It cannot be edited.

      • enable

        boolean

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • reset

        boolean — Whether the current settings use the phone account's settings if the current settings use the new policy framework.

    • call_queue_pickup_code

      object — After enabling the feature, a unique pickup code generates for each queue. It can be customized in the Call Queue profile. Queue calls can be answered with the pickup code by the users under the same site.

      • enable

        boolean

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • reset

        boolean — Whether the current settings use the phone account's settings when the current settings use the new policy framework.

    • call_screening

      object — Whether to incoming direct external callers will be prompted to respond to a button to reach users, callers who don't respond will be disconnected. Devices will not be able to receive any third party faxes.

      • enable

        boolean — This setting enables incoming direct external callers will be prompted to respond to a button to reach users, callers who don't respond will be disconnected. Devices will not be able to receive any third party faxes.

      • exclude_user_company_contacts

        boolean — Whether exclude user and company contacts from call screening, calls will reach users as normal.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • reset

        boolean — Whether the current settings use the phone account's settings when the current settings use the new policy framework.

    • call_summary

      object — This setting allows users to generate a summary of a phone call. For users who enable call summary during a call, a summary will be automatically sent to them on the client and the web portal after the call has ended. It requires the account to enable the `Enable Phone Call Summary` feature.

      • auto_call_summary

        boolean — This setting enables an automatic call summary.

      • call_summary_start_prompt

        object — Whether to play a prompt to call participant when call summary has started.

        • audio_id

          string — The unique identifier of the audio item. Only required when you enable `call_summary_start_prompt`.

        • enable

          boolean — Whether to play a prompt to call participant when call summary has started.

      • enable

        boolean — Allows users to generate a summary of a phone call. For users who enable call summary during a call, a summary will be automatically sent to them on the client and the web portal after the call has ended.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • reset

        boolean — Whether the current settings use the phone account's settings when the current settings use the new policy framework.

    • call_transferring

      object — Allows users to warm or blind transfer their calls. This does not apply to warm transfer on IP Phones except for Yealink. Voicemail is transferable only to internal extensions.

      • call_transferring_type

        integer, possible values: 1, 2, 3, 4 — 1-No restriction 2-Medium restriction (external numbers and external contacts not allowed) 3-High restriction (external numbers, unrecorded external contacts, and internal extensions without inbound automatic recording not allowed) 4-Low restriction (external numbers not allowed)

      • enable

        boolean — Whether to allow users to warm or blind transfer their calls. This does not apply to warm transfer on IP Phones except for Yealink.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • reset

        boolean — Whether the current settings use the phone account's settings when the current settings use the new policy framework.

    • check_voicemails_over_phone

      object — Whether to allow extension owners or members of a shared line group to check voicemails for extension numbers over the phone using the PIN code.

      • enable

        boolean

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • reset

        boolean — Whether the current settings use the phone account's settings if the current settings use the new policy framework.

    • customize_line_name

      object — Whether to enable the line name template will be applied to all the desk phones on your account. Make sure there is enough space on the desk phone to display the line name.

      • common_area_line_name

        string, possible values: "phoneNumber", "extensionNumber", "displayName", "displayName;extensionNumber" — The common area line name.

      • enable

        boolean — This setting enables the line name template to be applied to all the desk phones on your account. Make sure there is enough space on the desk phone to display the line name.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • reset

        boolean — Whether the current settings use the phone account's settings when the current settings use the new policy framework.

      • user_line_name

        string, possible values: "phoneNumber", "extensionNumber", "displayName", "displayName;extensionNumber", "firstName;extensionNumber", "firstName;lastName;extensionNumber" — The user line name.

    • delegation

      object — Whether the user can use [call delegation](https://support.zoom.us/hc/en-us/articles/360032881731-Setting-up-call-delegation-shared-lines-appearance-).

      • enable

        boolean

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • reset

        boolean — Whether the current settings use the phone account's settings if the current settings use the new policy framework.

    • display_call_feedback_survey

      object — Whether a thumbs up or down survey displays at the end of each call. If participants respond with thumbs down, they can provide additional information about what went wrong.

      • enable

        boolean — Whether to display a thumbs up or down survey at the end of each call. If participants respond with thumbs down, they can provide additional information about what went wrong.

      • feedback_duration

        object — The call duration, in seconds, 0-60.

        • enable

          boolean — This field displays end-of-call experience feedback survey when call duration issues are detected.

        • max

          integer — The maximum call duration.

        • min

          integer — The minimum call duration.

      • feedback_mos

        object — The MOS score. Minimum: 1.0. Maximum: 3.0. The format is one decimal point.

        • enable

          boolean — This field displays end-of-call experience feedback survey when call mos score issues are detected.

        • max

          number — The maximum MOS score.

        • min

          number — The minimum MOS score.

      • feedback_type

        integer, possible values: 1, 2 — This field allows you to display feedback survey, `1` - display for every call, `2` - display when call quality issues are detected. Default `1`, if set with value `2`, need to set `feed_back_mos` or `feedback_duration`.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • reset

        boolean — Whether the current settings use the phone account's settings if the current settings use the new policy framework.

    • elevate_to_meeting

      object — Allows users to elevate their phone calls to a meeting.

      • enable

        boolean — Whether to allow users to elevate their phone calls to a meeting.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • reset

        boolean — Whether the current settings use the phone account's settings if the current settings use the new policy framework.

    • external_calling_on_zoom_room_common_area

      object — This field allows Zoom Rooms to call external phone numbers based on the calling plans.

      • enable

        boolean — This field allows Zoom Rooms to call external phone numbers based on the calling plans.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • reset

        boolean — Whether the current settings use the phone account's settings if the current settings use the new policy framework.

    • force_off_net

      object — It requires the account to enable the `Force Calls out to the PSTN network`feature.

      • allow_extension_only_users_call_users_outside_site

        boolean — This setting allows extension only users to call to users outside the site.

      • enable

        boolean — By enabling Force Off-Net, calls from users or extensions between sites route through the PSTN network. Users in this site can only be allowed to be part of advanced functionality (eg. Auto Receptionists, Call Queues) that is configured in this site. Users require a paid Zoom license and BYOC-P phone numbers to call between sites.

    • forward_call_outside_of_site

      object — This field allows users to forward their calls outside of their own site.Once disabled, users will only be able to forward their calls to users, call queues, shared line groups, etc., within their own site.

      • enable

        boolean — This field allows users to forward their calls outside of their own site.Once disabled, users will only be able to forward their calls to users, call queues, shared line groups, etc., within their own site.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • reset

        boolean — Whether the current settings use the phone account's settings if the current settings use the new policy framework.

    • hand_off_to_room

      object — Allows users to send a call to a Zoom Room.

      • enable

        boolean — Whether to allow users to send a call to a Zoom Room.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • reset

        boolean — Whether the current settings use the phone account's settings if the current settings use the new policy framework.

    • incoming_call_notification

      object — Allows users to select if an incoming call notification would block their current activity.

      • block_type

        string, possible values: "block_activity", "continue_with_alert" — The incoming call notification block type. `block_activity` means "Block my current activity", `continue_with_alert` means "Alert me but allow me to continue my current activity".

      • enable

        boolean — Allows users to select if an incoming call notification would block their current activity.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • reset

        boolean — Whether the current settings use the phone account's settings when the current settings use the new policy framework.

    • international_calling

      object — Whether to allow extensions to place international calls outside of the calling plan.

      • enable

        boolean

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • reset

        boolean — Whether the current settings use the phone account's settings if the current settings use the new policy framework.

    • mobile_switch_to_carrier

      object — Allows users to switch from Zoom Phone to their native carrier.

      • enable

        boolean — Whether to allow the user to switch from a Zoom Phone to their native carrier.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • reset

        boolean — Whether the current settings use the phone account's settings if the current settings use the new policy framework.

    • obfuscate_sensitive_data_during_call

      object — Once enabled, when a user on an active call presses a dial pad key on screen or number on the keyboard, the client DTMF tones will be muted and the numbers will be masked on the screen.

      • enable

        boolean — Once enabled, when a user on an active call presses a dial pad key on screen or number on the keyboard, the client DTMF tones will be muted and the numbers will be masked on the screen.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • reset

        boolean — Whether the current settings use the phone account's settings, if the current settings use the new policy framework.

    • personal_audio_library

      object — Allows users to change their own Audio Library.

      • allow_music_on_hold_customization

        boolean — Whether to allow music on hold customization.

      • allow_voicemail_and_message_greeting_customization

        boolean — Whether to allow voicemail and message greeting customization.

      • enable

        boolean — This setting allows users to access, share, download, or delete voicemail or videomail.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • reset

        boolean — Whether the current settings use the phone account's settings if the current settings use the new policy framework.

    • prevent_users_upload_audio_files

      object — Once enabled, users will not be able to upload audios on the web portal. Users will be still able to access text-to-speech or record audio files.

      • enable

        boolean — Once enabled, users will not be able to upload audios on the web portal. Users will be still able to access text-to-speech or record audio files.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • reset

        boolean — Whether the current settings use the phone account's settings if the current settings use the new policy framework.

    • schedule_firmware_update

      object — Defines how often and when to update the firmware of the devices.

      • enable

        boolean — Whether to define how often and when to update firmware of the devices.

      • end_setting

        object — End setting.

        • end_date

          string, format: date — The end date in the following format: \"yyyy-MM-dd\". Only required when `never_end` is false.

        • never_end

          boolean — This field indicates the setting never ends.

      • repeat_setting

        object — The repeat setting.

      • repeat_type

        string, possible values: "weekly", "monthly" — The repeat type.

      • reset

        boolean — Whether the current settings use the phone account's settings when the current settings use the new policy framework.

      • time_period_end

        integer — The time period end time. Example: 16 means 4 PM.

      • time_period_start

        integer — The time period start time. 15 means 3 PM.

      • time_zone

        string — The [time zone list](https://developer.zoom.us/docs/api-reference/other-references/abbreviation-lists/#timezones) for supported time zones and their formats.

    • select_outbound_caller_id

      object — Whether to allow the current extension to change the outbound caller ID when placing calls.

      • allow_hide_outbound_caller_id

        boolean — Whether to allow the current extension to hide outbound caller ID.

      • enable

        boolean — Whether to allow the current extension to change the outbound caller ID when placing calls.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • reset

        boolean — Whether the current settings use the phone account's settings if the current settings use the new policy framework.

    • shared_voicemail_notification_by_email

      object — Once enabled, users receive email notification when there is a new shared voicemail or videomail. If the extension that shares the voicemail or videomail has disabled the voicemail or videomail notification by email policy, users will not receive notifications. This setting only displays when the voicemail policy uses the new policy framework.

      • enable

        boolean

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • reset

        boolean — Whether the current settings use the phone account's settings if the current settings use the new policy framework.

    • show_user_last_transferred_call

      boolean — Whether to show the user who last transferred the call. Viewing preferences display on the incoming call panel. Selections made here will not affect the information shown in call logs.

    • sms

      object — Allows users, call queues, and auto receptionists to send and receive messages. You will still need to assign a valid calling plan and phone number to each user in order for them to send and receive messages. Do not enable this control if you intend to use SMS services with a third party SMS provider.

      • allow_copy

        boolean — This field allows users to copy messages.

      • allow_paste

        boolean — This field allows users to use the paste function to paste content (e.g. text or images) into SMS/MMS conversations.

      • enable

        boolean — Whether to allow users, call queues, and auto receptionists to send and receive messages. You need to assign a valid calling plan and phone number to each user for them to send and receive messages.

      • international_sms

        boolean — Whether the user can send and receive international messages.

      • international_sms_countries

        array — The country which users can send and receive international messages. The [country ISO code](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries).

        Items:

        string — Country ISO code

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • reset

        boolean — Whether the current settings use the phone account's settings if the current settings use the new policy framework.

    • sms_auto_reply

      object — This field enables SMS Auto Reply feature for User, Auto Receptionist, and Call Queue

      • enable

        boolean — This field enables SMS Auto Reply feature for User, Auto Receptionist, and Call Queue

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • reset

        boolean — Whether the current settings use the phone account's settings if the current settings use the new policy framework.

    • sms_template

      object — Whether to use pre-defined templates to help users compose messages. Power Pack license is required for this feature to work.

      • enable

        boolean — This setting enables you to use pre-defined templates to help users compose messages. Power Pack license is required for this feature to work.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • reset

        boolean — Whether the current settings use the phone account's settings when the current settings use the new policy framework.

      • sms_template_list

        array — The SMS template list.

        Items:

        • sms_template_id (required)

          string — The SMS template ID.

        • active

          boolean — Whether it is active or not.

    • team_sms_thread_summary

      object — This field allows users to summarize and extract tasks from English SMS conversations.

      • enable

        boolean — This field allows users to summarize and extract tasks from English SMS conversations.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • reset

        boolean — Whether the current settings use the phone account's settings if the current settings use the new policy framework.

    • voicemail

      object — Allows users to access, share, download, and to delete voicemail and videomail.

      • allow_delete

        boolean — This setting allows users to delete their own voicemail. It displays only when using the new policy framework.

      • allow_download

        boolean — This setting allows users to download their own voicemail. It displays only when using the new policy framework.

      • allow_videomail

        boolean — Whether to allow users to access, share, download, or delete the videomail

      • enable

        boolean — Whether to allow users to access, receive, or share voicemail and videomail.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • reset

        boolean — Whether the current settings use the phone account's settings if the current settings use the new policy framework.

    • voicemail_intent_based_prioritization

      object — This field allows users to prioritize urgent voicemails based on predefined priority topics. Users need to have voicemail transcription policy enabled.

      • enable

        boolean — This field allows users to prioritize urgent voicemails based on predefined priority topics. Users need to have voicemail transcription policy enabled.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • reset

        boolean — Whether the current settings use the phone account's settings if the current settings use the new policy framework.

    • voicemail_notification_by_email

      object — Once enabled, users receive email notifications when there is a new voicemail from users, call queues, auto receptionists, or shared line groups. Users who disabled the shared voicemail notification by email policy will not receive notifications. This setting only displays when the voicemail policy uses the new policy framework.

      • enable

        boolean

      • forward_voicemail_to_email

        boolean — Whether to forward the voicemail to email.

      • include_voicemail_file

        boolean — Whether to include the voicemail file.

      • include_voicemail_transcription

        boolean — Whether to include the voicemail transcription.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • reset

        boolean — Whether the current settings use the phone account's settings if the current settings use the new policy framework.

    • voicemail_tasks

      object — This field allows users to extract tasks from English voicemail transcriptions. Users need to have voicemail transcription policy enabled.

      • enable

        boolean — This field allows users to extract tasks from English voicemail transcriptions. Users need to have voicemail transcription policy enabled.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • reset

        boolean — Whether the current settings use the phone account's settings if the current settings use the new policy framework.

    • voicemail_transcription

      object — When you enable this setting, the system creates voicemail and videomail transcriptions and keeps them accessible, even if you disable the setting later. When you disable the setting, the system stops generating new transcriptions.

      • enable

        boolean — Whether to allow users to access transcriptions of voicemails from the Zoom client, Zoom web portal, and email notifications.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • reset

        boolean — Whether the current settings use the phone account's settings if the current settings use the new policy framework.

    • zoom_phone_on_desktop

      object — Allow users to use Zoom Phone on desktop clients (Mac OS, Windows, VDI client and Linux).

      • allow_calling_clients

        array — The clients in this list are allowed to make and receive calls.

        Items:

        string, possible values: "mac_os", "windows", "vdi_client", "linux" — The acceptable value is mac_os windows vdi_client linux.

      • allow_sms_mms_clients

        array — The clients in this list are allowed to use the SMS/MMS function.

        Items:

        string, possible values: "mac_os", "windows", "vdi_client", "linux" — The acceptable value is mac_os windows vdi_client linux.

      • enable

        boolean — Whether to allow users to use Zoom Phone on desktop clients (Mac OS, Windows, VDI clinet and Linux).

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • reset

        boolean — Whether the current settings use the phone account's settings if the current settings use the new policy framework.

    • zoom_phone_on_mobile

      object — Allows users to use Zoom Phone on mobile clients (iOS, iPad OS and Android).

      • allow_calling_clients

        array — The clients in this list are allowed to make and receive calls.

        Items:

        string, possible values: "ios", "android", "intune", "blackberry" — The acceptable value is ios android intune blackberry.

      • allow_calling_sms_mms

        boolean — Whether to allow calling and SMS/MMS functions on mobile.

      • allow_sms_mms_clients

        array — The clients in this list are allowed to use the SMS/MMS function.

        Items:

        string, possible values: "ios", "android", "intune", "blackberry" — The acceptable value is ios android intune blackberry.

      • enable

        boolean — Whether to allow users to use Zoom Phone on mobile clients (iOS, iPad OS and Android).

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • reset

        boolean — Whether the current settings use the phone account's settings if the current settings use the new policy framework.

    • zoom_phone_on_pwa

      object — This field allows users to use Zoom Phone on Zoom Progressive Web App

      • allow_calling

        boolean — This field allows users to use calling on Zoom Progressive Web App

      • allow_sms_mms

        boolean — This field allows users to use sms/mms on Zoom Progressive Web App

      • enable

        boolean — This field allows users to use Zoom Phone on Zoom Progressive Web App

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • reset

        boolean — Whether the current settings use the phone account's settings if the current settings use the new policy framework.

  • short_extension

    object — The short extension of the phone site.

    • length

      integer — This setting specifies the length of short extension numbers for the site.

    • ranges

      array — The range list. After adding a short extension range, the newly assigned extension numbers start from the `range_from` value.

      Items:

      • range_from

        string — The short extension's starting range number, which can be a non-negative value. This value **must** be less than the `range_to` value.

      • range_to

        string — The short extension's ending range number, which can be a non-negative value. This value **cannot** be less than or equal to the `range_from` value.

  • sip_zone

    object — If the account enabled the `Display Custom SIP Zone Options on Web Portal` feature, then selecting a SIP zone nearest to your site helps reduce latency and improve call quality.

    • id

      string — The SIP zone ID.

  • site_code

    integer — The [site code](https://support.zoom.us/hc/en-us/articles/360020809672-Managing-Multiple-Sites#h_79ca9c8f-c97b-4486-aa59-d0d9d31a525b).

Example:

{
  "name": "The SJ site",
  "site_code": 2341,
  "short_extension": {
    "length": 3,
    "ranges": [
      {
        "range_from": "123",
        "range_to": "456"
      }
    ]
  },
  "default_emergency_address": {
    "address_line1": "55 Almaden Blvd",
    "address_line2": "Test 3",
    "city": "San Jose",
    "country": "US",
    "state_code": "CA",
    "zip": "95113"
  },
  "sip_zone": {
    "id": "2J9UXzGuTaqCdZ8sw_0jBw"
  },
  "caller_id_name": "CallerIdName",
  "policy": {
    "select_outbound_caller_id": {
      "enable": true,
      "reset": true,
      "locked": true,
      "allow_hide_outbound_caller_id": true
    },
    "personal_audio_library": {
      "enable": true,
      "reset": true,
      "locked": true,
      "allow_music_on_hold_customization": true,
      "allow_voicemail_and_message_greeting_customization": true
    },
    "voicemail": {
      "allow_delete": true,
      "allow_download": false,
      "allow_videomail": true,
      "enable": true,
      "reset": true,
      "locked": true
    },
    "voicemail_transcription": {
      "enable": true,
      "reset": true,
      "locked": true
    },
    "voicemail_notification_by_email": {
      "include_voicemail_file": true,
      "include_voicemail_transcription": false,
      "forward_voicemail_to_email": true,
      "enable": true,
      "reset": true,
      "locked": true
    },
    "shared_voicemail_notification_by_email": {
      "enable": true,
      "reset": true,
      "locked": true
    },
    "international_calling": {
      "enable": true,
      "reset": true,
      "locked": true
    },
    "zoom_phone_on_mobile": {
      "enable": true,
      "reset": true,
      "locked": true,
      "allow_calling_clients": [
        "ios"
      ],
      "allow_sms_mms_clients": [
        "ios"
      ]
    },
    "sms": {
      "enable": true,
      "reset": true,
      "locked": true,
      "international_sms": true,
      "international_sms_countries": [
        "US"
      ],
      "allow_copy": true,
      "allow_paste": true
    },
    "elevate_to_meeting": {
      "enable": true,
      "reset": true,
      "locked": true
    },
    "hand_off_to_room": {
      "enable": true,
      "reset": true,
      "locked": true
    },
    "mobile_switch_to_carrier": {
      "enable": true,
      "reset": true,
      "locked": true
    },
    "delegation": {
      "enable": true,
      "reset": true,
      "locked": true
    },
    "ad_hoc_call_recording": {
      "enable": true,
      "reset": true,
      "locked": true,
      "recording_start_prompt": false,
      "recording_transcription": true,
      "play_recording_beep_tone": {
        "enable": true,
        "play_beep_volume": 60,
        "play_beep_time_interval": 15,
        "play_beep_member": "allMember"
      }
    },
    "auto_call_recording": {
      "allow_stop_resume_recording": true,
      "disconnect_on_recording_failure": true,
      "enable": true,
      "reset": true,
      "locked": true,
      "recording_calls": "inbound",
      "recording_transcription": true,
      "play_recording_beep_tone": {
        "enable": true,
        "play_beep_volume": 60,
        "play_beep_time_interval": 15,
        "play_beep_member": "allMember"
      },
      "inbound_audio_notification": {
        "recording_start_prompt": true,
        "recording_explicit_consent": true
      },
      "outbound_audio_notification": {
        "recording_start_prompt": true,
        "recording_explicit_consent": true
      }
    },
    "call_handling_forwarding_to_other_users": {
      "enable": true,
      "call_forwarding_type": 1,
      "reset": true,
      "locked": true
    },
    "check_voicemails_over_phone": {
      "enable": true,
      "reset": true,
      "locked": true
    },
    "call_queue_pickup_code": {
      "enable": true,
      "reset": true,
      "locked": true
    },
    "call_queue_opt_out_reason": {
      "enable": true,
      "reset": true,
      "locked": true,
      "call_queue_opt_out_reasons_list": [
        {
          "code": "Break",
          "system": true,
          "enable": true
        }
      ]
    },
    "show_user_last_transferred_call": true,
    "auto_delete_data_after_retention_duration": {
      "enable": true,
      "reset": true,
      "locked": true,
      "items": [
        {
          "type": "callLog",
          "duration": -1,
          "time_unit": "year"
        }
      ],
      "delete_type": 1
    },
    "call_park": {
      "call_not_picked_up_action": 50,
      "enable": true,
      "reset": true,
      "locked": true,
      "expiration_period": 3,
      "forward_to_extension_id": "TO586CYlQFC_WCUvPRXytA",
      "sequence": 1
    },
    "call_overflow": {
      "call_overflow_type": 1,
      "enable": true,
      "reset": true,
      "locked": true
    },
    "call_transferring": {
      "call_transferring_type": 1,
      "enable": true,
      "reset": true,
      "locked": true
    },
    "audio_intercom": {
      "enable": true,
      "reset": true,
      "locked": true
    },
    "block_calls_without_caller_id": {
      "enable": true,
      "reset": true,
      "locked": true
    },
    "block_external_calls": {
      "enable": true,
      "reset": true,
      "locked": true,
      "block_business_hours": true,
      "block_closed_hours": true,
      "block_holiday_hours": true,
      "block_call_action": 0,
      "block_call_change_type": 0,
      "e2e_encryption": {
        "enable": true,
        "locked": true,
        "locked_by": "site",
        "modified": true
      }
    },
    "force_off_net": {
      "enable": true,
      "allow_extension_only_users_call_users_outside_site": true
    },
    "external_calling_on_zoom_room_common_area": {
      "enable": true,
      "reset": true,
      "locked": true
    },
    "zoom_phone_on_pwa": {
      "enable": true,
      "reset": true,
      "locked": true,
      "allow_calling": true,
      "allow_sms_mms": true
    },
    "sms_auto_reply": {
      "enable": true,
      "reset": true,
      "locked": true
    },
    "allow_end_user_edit_call_handling": {
      "enable": true,
      "reset": true,
      "locked": true
    },
    "allow_caller_reach_operator": {
      "enable": true,
      "reset": true,
      "locked": true
    },
    "forward_call_outside_of_site": {
      "enable": true,
      "reset": true,
      "locked": true
    },
    "allow_mobile_home_phone_callout": {
      "enable": true,
      "reset": true,
      "locked": true
    },
    "obfuscate_sensitive_data_during_call": {
      "enable": true,
      "reset": true,
      "locked": true
    },
    "prevent_users_upload_audio_files": {
      "enable": true,
      "reset": true,
      "locked": true
    },
    "voicemail_tasks": {
      "enable": true,
      "reset": true,
      "locked": true
    },
    "voicemail_intent_based_prioritization": {
      "enable": true,
      "reset": true,
      "locked": true
    },
    "team_sms_thread_summary": {
      "enable": true,
      "reset": true,
      "locked": true
    },
    "display_call_feedback_survey": {
      "enable": true,
      "reset": true,
      "locked": true,
      "feedback_type": 1,
      "feedback_mos": {
        "enable": true,
        "min": 1.5,
        "max": 3.5
      },
      "feedback_duration": {
        "enable": true,
        "min": 0,
        "max": 10
      }
    },
    "call_live_transcription": {
      "enable": true,
      "reset": true,
      "locked": true,
      "transcription_start_prompt": {
        "enable": true,
        "audio_id": "yCT14TwySDGVUypVlKNEyA"
      }
    },
    "call_screening": {
      "enable": true,
      "reset": true,
      "locked": true,
      "exclude_user_company_contacts": true
    },
    "sms_template": {
      "enable": true,
      "reset": true,
      "locked": true,
      "sms_template_list": [
        {
          "sms_template_id": "0qWIP8S8QXmo6KShUIyvZA",
          "active": true
        }
      ]
    },
    "advanced_encryption": {
      "enable": true,
      "reset": true,
      "locked": true,
      "disable_incoming_unencrypted_voicemail": true
    },
    "customize_line_name": {
      "enable": true,
      "reset": true,
      "locked": true,
      "user_line_name": "phoneNumber",
      "common_area_line_name": "phoneNumber"
    },
    "auto_opt_out_in_call_queue": {
      "enable": true,
      "reset": true,
      "locked": true,
      "prompt_before_opt_out_call_queue": true
    },
    "incoming_call_notification": {
      "enable": true,
      "reset": true,
      "locked": true,
      "block_type": "block_activity"
    },
    "call_summary": {
      "enable": true,
      "reset": true,
      "locked": true,
      "auto_call_summary": true,
      "call_summary_start_prompt": {
        "enable": true,
        "audio_id": "yCT14TwySDGVUypVlKNEyA"
      }
    },
    "schedule_firmware_update": {
      "enable": true,
      "reset": true,
      "repeat_type": "weekly",
      "repeat_setting": {
        "weekly_setting": {
          "weekday": "monday"
        }
      },
      "time_period_start": 15,
      "time_period_end": 16,
      "time_zone": "Asia/Shanghai",
      "end_setting": {
        "never_end": true,
        "end_date": "2025-01-01"
      }
    },
    "zoom_phone_on_desktop": {
      "enable": true,
      "reset": true,
      "locked": true,
      "allow_calling_clients": [
        "mac_os"
      ],
      "allow_sms_mms_clients": [
        "mac_os"
      ]
    }
  }
}

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Site details updated successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Validation Failed. Site does not exist.<br> Align the range with the number of digits entered in `length`<br> `range_from` value must be smaller than `range_to` value.<br> Invalid address: {formattedAddress}.<br> Change country is not allowed.<br> Personal emergency address could not be changed to default.<br> Cannot update emergency address whose status is {status}.<br> This address could not be validated.<br> Invalid site code length.<br> Invalid short extension number length.<br> Invalid site code length.<br> Each set of ranges cannot have intersections.<br> The range_from or range_to can not be empty.<br> The range_from or range_to must be digits only. <br> **Error Code:** `400` <br> Site code is disabled. <br> **Error Code:** `13800` <br> You do not enable OP flag named 'Enable Caller Based Consent Options', please using same value to update 'inbound_audio_notification.recording_start_prompt' and 'outbound_audio_notification.recording_start_prompt'. <br> **Error Code:** `13800` <br> You do not enable OP flag named 'Enable Caller Based Consent Options', please using same value to update 'inbound_audio_notification.recording_start_prompt_audio_id' and 'outbound_audio_notification.recording_start_prompt_audio_id'. <br> **Error Code:** `13800` <br> You do not enable OP flag named 'Enable Caller Based Consent Options', please using same value to update 'inbound_audio_notification.recording_explicit_consent' and 'outbound_audio_notification.recording_explicit_consent'. <br> **Error Code:** `13802` <br> Audio does not exist: {audioId}. <br> **Error Code:** `13803` <br> SMS template does not exist: {sms_template_id}. <br> **Error Code:** `13804` <br> Invalid time period. <br> **Error Code:** `13805` <br> Invalid end date. <br> **Error Code:** `13806` <br> Time zone is invalid: {time_zone}. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2001` <br> Account does not exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List customized outbound caller ID phone numbers

  • Method: GET
  • Path: /phone/sites/{siteId}/outbound_caller_id/customized_numbers
  • Tags: Sites

Use this API to retrieve phone numbers that can be used as the site-level customized outbound caller ID.

Prerequisites:

  • A Business or Enterprise account
  • A Zoom Phone license.

Scopes: phone:read:admin

Granular Scopes: phone:read:list_site_customized_number:admin

Rate Limit Label: Light

Responses

Status: 200 **HTTP Status Code:** `200` Customized numbers for outbound caller ID listed successfully.
Content-Type: application/json
  • customize_numbers

    array

    Items:

    • customize_id

      string — The customization ID.

    • display_name

      string — Name of the phone number.

    • extension_id

      string — The extension ID.

    • extension_name

      string — The extension name.

    • extension_number

      string — The extension number.

    • extension_type

      string — The extension type.

    • incoming

      boolean — Whether the incoming policy is enabled for the phone number.

    • outgoing

      boolean — Whether the outgoing policy is enabled for the phone number.

    • phone_number

      string — The phone number in E164 format.

    • phone_number_id

      string — ID of the phone number.

    • site

      object

  • next_page_token

    string — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • page_size

    integer — The number of records returned within a single API call for each page.

  • total_records

    integer — The total number of records returned.

Example:

{
  "customize_numbers": [
    {
      "customize_id": "8_RkKw9OQ42oYsXqJJjs4A",
      "phone_number_id": "55JUZPwERHuGttd_j4qBsQ",
      "phone_number": "+12055437350",
      "display_name": "test abc",
      "incoming": true,
      "outgoing": true,
      "extension_id": "HaSokHMCSeK8taMdv2vnXQ",
      "extension_type": "callQueue",
      "extension_number": "10001",
      "extension_name": "SJ CQ",
      "site": {
        "id": "8f71O6rWT8KFUGQmJIFAdQ",
        "name": "testSite"
      }
    }
  ],
  "next_page_token": "BJLYC6PABbAHdjwSkGVQeeR6B1juwHqj3G2",
  "page_size": 30,
  "total_records": 10
}
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Add customized outbound caller ID phone numbers

  • Method: POST
  • Path: /phone/sites/{siteId}/outbound_caller_id/customized_numbers
  • Tags: Sites

Use this API to add the site-level customized outbound caller ID phone numbers.

Prerequisites:

  • A Business or Enterprise account
  • A Zoom Phone license.

Scopes: phone:write:admin

Granular Scopes: phone:write:site_customized_number:admin

Rate Limit Label: Light

Request Body

Content-Type: application/json
  • phone_number_ids

    array — The phone number IDs.

    Items:

    string

Example:

{
  "phone_number_ids": [
    "55JUZPwERHuGttd_j4qBsQ"
  ]
}

Responses

Status: 201 **HTTP Status Code:** `201` **Created** Customized caller ID numbers added successfully.
Content-Type: application/json

Example:

null
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Validation Failed. Site does not exist.<br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Remove customized outbound caller ID phone numbers

  • Method: DELETE
  • Path: /phone/sites/{siteId}/outbound_caller_id/customized_numbers
  • Tags: Sites

Use this API to remove the site-level customized outbound caller ID phone numbers.

Prerequisites:

  • A Business or Enterprise account
  • A Zoom Phone license.

Scopes: phone:write:admin

Granular Scopes: phone:delete:site_customized_number:admin

Rate Limit Label: Light

Responses

Status: 204 **HTTP Status Code:** `204` **Created** Customized numbers have been deleted successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Validation Failed. Site does not exist.<br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get a phone site setting

  • Method: GET
  • Path: /phone/sites/{siteId}/settings/{settingType}
  • Tags: Sites

Gets the site setting about a specific site according to the setting type. Sites allow you to organize Zoom Phone users in your organization.

Prerequisites:

  • Account must have a Pro or a higher plan with Zoom Phone license.
  • Multiple sites must be enabled.

Scopes: phone:read:admin

Granular Scopes: phone:read:site_setting:admin

Rate Limit Label: Light

Responses

Status: 200 **HTTP Status Code:** `200` Site setting information retrieved successfully.
Content-Type: application/json
  • audio_prompt

    object — The audio prompt setting.

    • audio_while_connecting

      object — The audio prompt setting for respective hours.

    • greeting_leave_voicemail_instruction

      object

    • greeting_menu_connect_to_operator_leave_or_check_voicemail

      object

    • greeting_menu_connect_to_operator_or_leave_voicemail

      object

    • greeting_menu_leave_or_check_voicemail

      object

    • hold_music

      object — The audio prompt setting for respective hours.

    • language

      string — The audio prompt language code. American English: `en-US` British English: `en-GB` Espa&ntilde;ol americano: `es-US` Fran&ccedil;ais canadien: `fr-CA` Dansk: `da-DK` Deutsch: `de-DE` Espa&ntilde;ol: `es-ES` Fran&ccedil;ais: `fr-FR` Italiano: `it-IT` Nederlands: `nl-NL` Portugues portugal: `pt-PT` Japanese: `ja-JP` Korean: `ko-KO` Portugues brasil: `pt-BR` Chinese: `zh-CN` Taiwanese: `zh-TW`

    • leave_voicemail_introduction

      object

    • message_greeting

      object

  • billing_account

    object — The billing account setting.

    • id

      string — The billing account ID.

    • name

      string — The billing account name.

  • business_hours

    object — This field allows you to set the default business hours for all users, Zoom Rooms, and Common Areas for the site.

    • custom_hour_type

      integer, possible values: 1, 2 — Business Hour Type `1`- 24 hours a day, 7 days a week; `2`- Custom hours.

    • custom_hours

      array — The custom business hours settings.

      Items:

      • from

        string — The custom hours start time, and `HH:mm` format.

      • to

        string — The custom hours end time, in `HH:mm` format.

      • type

        integer, possible values: 0, 1, 2 — The type of custom hours: * `0` &mdash; Disabled. * `1` &mdash; 24 hours. * `2` &mdash; Customized hours.

      • weekday

        integer, possible values: 1, 2, 3, 4, 5, 6, 7 — The day of the week: * `1` &mdash; Sunday * `2` &mdash; Monday * `3` &mdash; Tuesday * `4` &mdash; Wednesday * `5` &mdash; Thursday * `6` &mdash; Friday * `7` &mdash; Saturday

    • overflow

      object — This field seta the default overflow for business hours for users, Call Queues, and Shared Line Groups.

      • allow_caller_to_check_voicemail

        boolean — The option to allow callers to check voicemail.

      • allow_caller_to_reach_operator

        boolean — The option to allow callers to reach an operator.

      • operator

        object — The operator to allow callers to reach.

        • display_name

          string — The display name of extension.

        • extension_id

          string — The extension ID.

        • extension_number

          integer, format: int64 — The extension number.

        • extension_type

          string, possible values: "user", "callQueue", "autoReceptionist", "commonArea", "zoomRoom", "ciscoRoom/PolycomRoom", "sharedLineGroup" — The extension type. * `user` * `callQueue` * `autoReceptionist` * `commonArea` * `zoomRoom` * `ciscoRoom/PolycomRoom` * `sharedLineGroup`

  • closed_hours

    object — This field allows you to set the default closed hours for all users, Zoom Rooms, Common Areas, Auto Receptionists, Call Queues, and Shared Line Groups for the site.

    • overflow

      object — This field seta the default overflow for business hours for users, Call Queues, and Shared Line Groups.

      • allow_caller_to_check_voicemail

        boolean — The option to allow callers to check voicemail.

      • allow_caller_to_reach_operator

        boolean — The option to allow callers to reach an operator.

      • operator

        object — The operator to allow callers to reach.

        • display_name

          string — The display name of extension.

        • extension_id

          string — The extension ID.

        • extension_number

          integer, format: int64 — The extension number.

        • extension_type

          string, possible values: "user", "callQueue", "autoReceptionist", "commonArea", "zoomRoom", "ciscoRoom/PolycomRoom", "sharedLineGroup" — The extension type. * `user` * `callQueue` * `autoReceptionist` * `commonArea` * `zoomRoom` * `ciscoRoom/PolycomRoom` * `sharedLineGroup`

  • desk_phone

    object — The desk phone setting.

    • general_setting

      object — These general configurations of the desk phones in your account can be set globally, but some settings may not work for individual models. You need to manually reboot the desk phones to apply these changes.

      • setting_type

        string, possible values: "account_setting", "custom_setting", default: "account_setting" — The setting type. `account_setting` will use the configuration defined at the account level. `custom_setting` allows custom configurations to be defined specifically for this Site.

      • web_interface

        boolean — Enables desk phone web interface. Only returns when `setting_type` is `custom_setting`.

    • hot_desking_session_timeout

      object — The set duration after which users are signed out of hot desking devices.

      • number (required)

        integer, possible values: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 30

      • unit

        string, possible values: "minutes", "hours", default: "hours" — The `minutes` - available if the `number` values are: '5, 10, 15, 30' `hours` - not available if the `number` value is '30'.

  • dial_by_name

    object — The dial by name directory setting.

    • inherit

      boolean — Whether to inherit the dial by name directory maintained at the account level. This directory is read-only to sites.

    • rule

      string, possible values: "first_name", "last_name" — The search extensions by first or last name. Callers must enter at least two characters to perform a name search.

    • status

      boolean — Whether to allow callers to search for an extension by the first or last name. Currently supports English only.

  • holiday_hours

    object — This field allows you to set the default holiday hours for all users, Zoom Rooms, Common Areas, Auto Receptionists, Call Queues, and Shared Line Groups for the site.

    • holidays

      array — The holiday hours settings.

      Items:

      • from

        string, format: date-time — The holiday start date and time in `yyyy-MM-dd'T'HH:mm:ss'Z'` format.

      • holiday_id

        string — The holiday ID.

      • name

        string — The name of the holiday.

      • to

        string, format: date-time — The holiday end date and time, in `yyyy-MM-dd'T'HH:mm:ss'Z'` format.

    • overflow

      object — This field seta the default overflow for business hours for users, Call Queues, and Shared Line Groups.

      • allow_caller_to_check_voicemail

        boolean — The option to allow callers to check voicemail.

      • allow_caller_to_reach_operator

        boolean — The option to allow callers to reach an operator.

      • operator

        object — The operator to allow callers to reach.

        • display_name

          string — The display name of extension.

        • extension_id

          string — The extension ID.

        • extension_number

          integer, format: int64 — The extension number.

        • extension_type

          string, possible values: "user", "callQueue", "autoReceptionist", "commonArea", "zoomRoom", "ciscoRoom/PolycomRoom", "sharedLineGroup" — The extension type. * `user` * `callQueue` * `autoReceptionist` * `commonArea` * `zoomRoom` * `ciscoRoom/PolycomRoom` * `sharedLineGroup`

  • location_based_routing

    object — The location-based routing setting of the site.

    • enable

      boolean — When the policy is enabled, Zoom Phone calls are subject to the policy options defined.

    • enable_media_off_load_pstn_calls

      boolean — This field enables media offload for extensions to PSTN (Public Switched Telephone Network) calls.

    • place_receive_pstn_calls

      boolean — The place and receive PSTN (Public Switched Telephone Network) calls only when inside the locations.

  • outbound_caller_id

    object — The outbound caller ID setting.

    • auto_receptionists_numbers

      boolean — When checked, auto receptionists members will use the numbers as the outbound caller ID

    • call_queue_numbers

      boolean — When checked, call queue members will use the numbers as the outbound caller ID.

    • share_line_group_numbers

      boolean — When checked, share line group members will use the numbers as the outbound caller ID.

    • show_outbound_caller_id_for_internal_call

      boolean — When a call is made to an internal extension that uses the numbers associated with Auto Receptionist or Call Queue as the caller ID, the receiver sees an outbound caller ID selected by the caller.

  • security

    object — This field upgrades devices from the current site to use the SRTP with AES-256 bit encryption. After adding or removing a device type, devices of the corresponding type will get re-synced. For more information, see [Zoom Phone Encryption](https://support.zoom.us/hc/en-us/articles/360042578911#h_36a22ca1-89f1-4614-8d7e-3c6a957b261c).

    • device_types

      array — The effective device types.

      Items:

      string

Example:

{
  "location_based_routing": {
    "enable": false,
    "place_receive_pstn_calls": false,
    "enable_media_off_load_pstn_calls": false
  },
  "business_hours": {
    "custom_hour_type": 2,
    "custom_hours": [
      {
        "from": "09:00",
        "to": "18:00",
        "type": 0,
        "weekday": 1
      }
    ],
    "overflow": {
      "allow_caller_to_reach_operator": true,
      "operator": {
        "extension_id": "FGAMaMWESMCNF0jmEU1emw",
        "extension_number": 1000001018,
        "display_name": "Test_callQueue",
        "extension_type": "callQueue"
      },
      "allow_caller_to_check_voicemail": false
    }
  },
  "closed_hours": {
    "overflow": {
      "allow_caller_to_reach_operator": true,
      "operator": {
        "extension_id": "FGAMaMWESMCNF0jmEU1emw",
        "extension_number": 1000001018,
        "display_name": "Test_callQueue",
        "extension_type": "callQueue"
      },
      "allow_caller_to_check_voicemail": false
    }
  },
  "holiday_hours": {
    "holidays": [
      {
        "holiday_id": "i3gP6xFUTHqSFrIE6nHs7Q",
        "name": "Holiday 1",
        "from": "2022-03-08T16:00:00Z",
        "to": "2022-03-09T16:00:00Z"
      }
    ],
    "overflow": {
      "allow_caller_to_reach_operator": true,
      "operator": {
        "extension_id": "FGAMaMWESMCNF0jmEU1emw",
        "extension_number": 1000001018,
        "display_name": "Test_callQueue",
        "extension_type": "callQueue"
      },
      "allow_caller_to_check_voicemail": false
    }
  },
  "security": {
    "device_types": [
      "Poly trioc60"
    ]
  },
  "outbound_caller_id": {
    "auto_receptionists_numbers": false,
    "call_queue_numbers": false,
    "share_line_group_numbers": false,
    "show_outbound_caller_id_for_internal_call": false
  },
  "audio_prompt": {
    "language": "en-GB",
    "greeting_leave_voicemail_instruction": {
      "business_hours": {
        "audio_id": "yCT14TwySDGVUypVlKNEyA",
        "name": "hello.mp3"
      },
      "closed_hours": {
        "audio_id": "yCT14TwySDGVUypVlKNEyA",
        "name": "hello.mp3"
      },
      "holiday_hours": {
        "audio_id": "yCT14TwySDGVUypVlKNEyA",
        "name": "hello.mp3"
      }
    },
    "greeting_menu_leave_or_check_voicemail": {
      "business_hours": {
        "audio_id": "yCT14TwySDGVUypVlKNEyA",
        "name": "hello.mp3"
      },
      "closed_hours": {
        "audio_id": "yCT14TwySDGVUypVlKNEyA",
        "name": "hello.mp3"
      },
      "holiday_hours": {
        "audio_id": "yCT14TwySDGVUypVlKNEyA",
        "name": "hello.mp3"
      }
    },
    "greeting_menu_connect_to_operator_or_leave_voicemail": {
      "business_hours": {
        "audio_id": "yCT14TwySDGVUypVlKNEyA",
        "name": "hello.mp3"
      },
      "closed_hours": {
        "audio_id": "yCT14TwySDGVUypVlKNEyA",
        "name": "hello.mp3"
      },
      "holiday_hours": {
        "audio_id": "yCT14TwySDGVUypVlKNEyA",
        "name": "hello.mp3"
      }
    },
    "greeting_menu_connect_to_operator_leave_or_check_voicemail": {
      "business_hours": {
        "audio_id": "yCT14TwySDGVUypVlKNEyA",
        "name": "hello.mp3"
      },
      "closed_hours": {
        "audio_id": "yCT14TwySDGVUypVlKNEyA",
        "name": "hello.mp3"
      },
      "holiday_hours": {
        "audio_id": "yCT14TwySDGVUypVlKNEyA",
        "name": "hello.mp3"
      }
    },
    "leave_voicemail_introduction": {
      "business_hours": {
        "audio_id": "yCT14TwySDGVUypVlKNEyA",
        "name": "hello.mp3"
      },
      "closed_hours": {
        "audio_id": "yCT14TwySDGVUypVlKNEyA",
        "name": "hello.mp3"
      },
      "holiday_hours": {
        "audio_id": "yCT14TwySDGVUypVlKNEyA",
        "name": "hello.mp3"
      }
    },
    "message_greeting": {
      "business_hours": {
        "audio_id": "yCT14TwySDGVUypVlKNEyA",
        "name": "hello.mp3"
      },
      "closed_hours": {
        "audio_id": "yCT14TwySDGVUypVlKNEyA",
        "name": "hello.mp3"
      },
      "holiday_hours": {
        "audio_id": "yCT14TwySDGVUypVlKNEyA",
        "name": "hello.mp3"
      }
    },
    "audio_while_connecting": {
      "audio_id": "yCT14TwySDGVUypVlKNEyA",
      "name": "hello.mp3"
    },
    "hold_music": {
      "audio_id": "yCT14TwySDGVUypVlKNEyA",
      "name": "hello.mp3"
    }
  },
  "desk_phone": {
    "hot_desking_session_timeout": {
      "number": 5,
      "unit": "minutes"
    },
    "general_setting": {
      "setting_type": "account_setting",
      "web_interface": false
    }
  },
  "dial_by_name": {
    "status": true,
    "inherit": false,
    "rule": "last_name"
  },
  "billing_account": {
    "id": "3WWAEiEjTj2IQuyDiKMd_A",
    "name": "Delhi billing"
  }
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Site does not exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Add a site setting

  • Method: POST
  • Path: /phone/sites/{siteId}/settings/{settingType}
  • Tags: Sites

Sites allow you to organize Zoom Phone users in your organization. Use this API to add a site setting to a specific site according to the setting type.

Prerequisites:

  • Account must have a Pro or a higher plan with Zoom Phone license.
  • Multiple sites must be enabled.

Scopes: phone:write:admin

Granular Scopes: phone:write:site_setting:admin

Rate Limit Label: Light

Request Body

Content-Type: application/json
  • device_type

    string — The device type. Enable SRTP AES-256 encryption on the site for the specified device type. Used for `device_security` setting type.

  • holidays

    array — The holiday hours settings.

    Items:

    • from

      string, format: date-time — The holiday start date and time in `yyyy-MM-dd'T'HH:mm:ss'Z'` format.

    • name

      string — The name of the holiday.

    • to

      string, format: date-time — The holiday end date and time, in `yyyy-MM-dd'T'HH:mm:ss'Z'` format.

Example:

{
  "device_type": "Poly trioc60",
  "holidays": [
    {
      "name": "Holiday 1",
      "from": "2022-03-08T16:00:00Z",
      "to": "2022-03-09T16:00:00Z"
    }
  ]
}

Responses

Status: 201 **HTTP Status Code** `201` Created Successfully.
Content-Type: application/json
  • holidays

    array — The settings for holiday hours.

    Items:

    • from

      string, format: date-time — The holiday start date and time in `yyyy-MM-dd'T'HH:mm:ss'Z'` format.

    • holiday_id

      string — The holiday ID.

    • name

      string — The name of the holiday.

    • to

      string, format: date-time — The holiday end date and time, in `yyyy-MM-dd'T'HH:mm:ss'Z'` format.

Example:

{
  "holidays": [
    {
      "holiday_id": "i3gP6xFUTHqSFrIE6nHs7Q",
      "name": "Holiday 1",
      "from": "2022-03-08T16:00:00Z",
      "to": "2022-03-09T16:00:00Z"
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Validation Failed. Site does not exist.<br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Delete a site setting

  • Method: DELETE
  • Path: /phone/sites/{siteId}/settings/{settingType}
  • Tags: Sites

Sites allow you to organize Zoom Phone users in your organization. Use this API to delete the site setting of a specific site.

Prerequisites:

  • Account must have a Pro or a higher plan with Zoom Phone license.
  • Multiple sites must be enabled.

Scopes: phone:write:admin

Granular Scopes: phone:delete:site_setting:admin

Rate Limit Label: Light

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** The site setting have been deleted successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Validation Failed. Site does not exist.<br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update the site setting

  • Method: PATCH
  • Path: /phone/sites/{siteId}/settings/{settingType}
  • Tags: Sites

Allows you to organize Zoom Phone users in your organization. You can update the site setting of a specific site according to the setting type.

Prerequisites

  • Account must have a Pro or a higher plan with Zoom Phone license.
  • Multiple sites must be enabled.

Scopes: phone:write:admin

Granular Scopes: phone:update:site_setting:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • audio_prompt

    object — The audio prompt setting. Used for `audio_prompt` setting type.

    • audio_while_connecting

      object — The audio prompt setting for respective hours.

      • audio_id

        string — The unique identifier of the audio item.

    • greeting_leave_voicemail_instruction

      object — Audio prompt for `Greeting & Leave voicemail instruction`

      • business_hours

        object — The audio prompt setting for respective hours.

        • audio_id

          string — The unique identifier of the audio item.

      • closed_hours

        object — The audio prompt setting for respective hours.

        • audio_id

          string — The unique identifier of the audio item.

      • holiday_hours

        object — The audio prompt setting for respective hours.

        • audio_id

          string — The unique identifier of the audio item.

    • greeting_menu_connect_to_operator_leave_or_check_voicemail

      object — Audio prompt for `Greeting & Menu: Connect to operator, leave or check voicemail`

      • business_hours

        object — The audio prompt setting for respective hours.

        • audio_id

          string — The unique identifier of the audio item.

      • closed_hours

        object — The audio prompt setting for respective hours.

        • audio_id

          string — The unique identifier of the audio item.

      • holiday_hours

        object — The audio prompt setting for respective hours.

        • audio_id

          string — The unique identifier of the audio item.

    • greeting_menu_connect_to_operator_or_leave_voicemail

      object — The audio prompt for `Greeting & Menu: Connect to operator or leave voicemail`

      • business_hours

        object — The audio prompt setting for respective hours.

        • audio_id

          string — The unique identifier of the audio item.

      • closed_hours

        object — The audio prompt setting for respective hours.

        • audio_id

          string — The unique identifier of the audio item.

      • holiday_hours

        object — The audio prompt setting for respective hours.

        • audio_id

          string — The unique identifier of the audio item.

    • greeting_menu_leave_or_check_voicemail

      object — The audio prompt for `Greeting & Menu: Leave or check voicemail`

      • business_hours

        object — The audio prompt setting for respective hours.

        • audio_id

          string — The unique identifier of the audio item.

      • closed_hours

        object — The audio prompt setting for respective hours.

        • audio_id

          string — The unique identifier of the audio item.

      • holiday_hours

        object — The audio prompt setting for respective hours.

        • audio_id

          string — The unique identifier of the audio item.

    • hold_music

      object — The audio prompt setting for respective hours.

      • audio_id

        string — The unique identifier of the audio item.

    • language

      string — The audio prompt language code. American English: `en-US` British English: `en-GB` Espa&ntilde;ol americano: `es-US` Fran&ccedil;ais canadien: `fr-CA` Dansk: `da-DK` Deutsch: `de-DE` Espa&ntilde;ol: `es-ES` Fran&ccedil;ais: `fr-FR` Italiano: `it-IT` Nederlands: `nl-NL` Portugues portugal: `pt-PT` Japanese: `ja-JP` Korean: `ko-KO` Portugues brasil: `pt-BR` Chinese: `zh-CN` Taiwanese: `zh-TW`

    • leave_voicemail_introduction

      object — The audio prompt for `Leave voicemail instruction`

      • business_hours

        object — The audio prompt setting for respective hours.

        • audio_id

          string — The unique identifier of the audio item.

      • closed_hours

        object — The audio prompt setting for respective hours.

        • audio_id

          string — The unique identifier of the audio item.

      • holiday_hours

        object — The audio prompt setting for respective hours.

        • audio_id

          string — The unique identifier of the audio item.

    • message_greeting

      object — The audio prompt for `Message Greeting`

      • business_hours

        object — The audio prompt setting for respective hours.

        • audio_id

          string — The unique identifier of the audio item.

      • closed_hours

        object — The audio prompt setting for respective hours.

        • audio_id

          string — The unique identifier of the audio item.

      • holiday_hours

        object — The audio prompt setting for respective hours.

        • audio_id

          string — The unique identifier of the audio item.

  • billing_account

    object — The billing account setting.

    • id

      string — The billing account ID.

  • business_hours

    object — Sets the default business hours for all users, Zoom Rooms, and Common Areas for the site. It's used for the `business_hours` setting type.

    • custom_hour_type

      integer, possible values: 1, 2 — The business hour type `1`- 24 hours a Day, 7 days a week, `2`- Custom hours.

    • custom_hours

      array — The settings for custom business hours.

      Items:

      • from

        string — The start time for custom hours in `HH:mm` format.

      • to

        string — The end time custom hours in `HH:mm` format.

      • type

        integer, possible values: 0, 1, 2 — The type of custom hours: * `0` &mdash; Disabled. * `1` &mdash; 24 hours. * `2` &mdash; Customized hours.

      • weekday

        integer, possible values: 1, 2, 3, 4, 5, 6, 7 — The day of the week: * `1` &mdash; Sunday * `2` &mdash; Monday * `3` &mdash; Tuesday * `4` &mdash; Wednesday * `5` &mdash; Thursday * `6` &mdash; Friday * `7` &mdash; Saturday

    • overflow

      object — Sets the default overflow for business hours for users, call queues and shared line groups.

      • allow_caller_to_check_voicemail

        boolean — This setting allows callers to check voicemail.

      • allow_caller_to_reach_operator

        boolean — This setting allows callers to reach an operator.

      • operator

        object — The operator to allow callers to reach.

        • extension_id

          string — The extension's ID.

  • closed_hours

    object — Sets the default closed hours for all users, Zoom Rooms, Common Areas, Auto Receptionists, Call Queues and Shared Line Groups for the site. Used for `closed_hours` setting type.

    • overflow

      object — Sets the default overflow for business hours for users, Call Queues and Shared Line Groups.

      • allow_caller_to_check_voicemail

        boolean — Allows callers to check voicemail.

      • allow_caller_to_reach_operator

        boolean — Allows callers to reach an operator.

      • operator

        object — The operator to allow callers to reach.

        • extension_id

          string — The extension's ID.

  • desk_phone

    object — The desk phone setting.

    • hot_desking_session_timeout

      object — The set duration after which users are signed out of hot desking devices.

      • number (required)

        integer, possible values: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 30 — The number

      • unit

        string, possible values: "minutes", "hours", default: "hours" — `The `minutes`. This seeting is only available if the `number` values are: '5, 10, 15, 30' `hours` - not available if the `number` value is '30'

  • dial_by_name

    object — The dial by name directory setting.

    • inherit

      boolean — Whether to inherit the dial by name directory maintained at the account level. This directory is `read-only` to sites.

    • rule

      string, possible values: "first_name", "last_name" — The search extensions by first or last name. Callers must enter at least 2 characters to perform a name search.

    • status

      boolean — Whether to allow callers to search for an extension by the first or last name. Currently supports English only.

  • general_setting

    object — These general configurations of the desk phones in your account can be set globally, but some settings may not work for individual models. You need to manually reboot the desk phones to apply these changes.

    • setting_type

      string, possible values: "account_setting", "custom_setting", default: "account_setting" — The setting type. `account_setting` will use the configuration defined at the account level. `custom_setting` allows custom configurations to be defined specifically for this Site.

    • web_interface

      boolean — This setting enables desk phone web interface. This field is only available when `setting_type` is `custom_setting`.

  • holiday_hours

    object — Sets the default holiday hours for all users, Zoom Rooms, common areas, auto receptionists, call queues and shared linegroups for the site. It's used for the `holiday_hours` setting type.

    • holidays

      array — The settings for holiday hours.

      Items:

      • from

        string, format: date-time — The holiday start date and time in `yyyy-MM-dd'T'HH:mm:ss'Z'` format.

      • holiday_id

        string — The holiday's ID.

      • name

        string — The name of the holiday.

      • to

        string, format: date-time — The holiday end date and time, in `yyyy-MM-dd'T'HH:mm:ss'Z'` format.

    • overflow

      object — Sets the default overflow for business hours for users, call queues and shared line groups.

      • allow_caller_to_check_voicemail

        boolean — Allows callers to check voicemail.

      • allow_caller_to_reach_operator

        boolean — Allows callers to reach an operator.

      • operator

        object — The operator to allow callers to reach.

        • extension_id

          string — The extension's ID.

  • location_based_routing

    object — The location-based routing setting of the site. It's used for `local_based_routing` setting type.

    • enable

      boolean — When the policy is enabled, Zoom Phone calls will be subject to the policy options defined.

    • enable_media_off_load_pstn_calls

      boolean — This setting enables media offload for extensions to PSTN (Public Switched Telephone Network) calls.

    • place_receive_pstn_calls

      boolean — This setting places and receives PSTN (Public Switched Telephone Network) calls only when inside the locations.

  • outbound_caller_id

    object — The outbound caller ID setting. It's used for the `outbound_caller_id` setting type.

    • auto_receptionists_numbers

      boolean — When checked, auto receptionists members will use the numbers as the outbound caller ID

    • call_queue_numbers

      boolean — When checked, call queue members will use the numbers as the outbound caller ID.

    • share_line_group_numbers

      boolean — When checked, share line group members will use the numbers as the outbound caller ID.

    • show_outbound_caller_id_for_internal_call

      boolean — When a call is made to an internal extension that uses the numbers associated with Auto Receptionist or Call Queue as the caller ID, the receiver will see an outbound caller ID selected by the caller.

Example:

{
  "location_based_routing": {
    "enable": false,
    "place_receive_pstn_calls": false,
    "enable_media_off_load_pstn_calls": false
  },
  "business_hours": {
    "custom_hour_type": 2,
    "custom_hours": [
      {
        "from": "09:00",
        "to": "18:00",
        "type": 0,
        "weekday": 1
      }
    ],
    "overflow": {
      "allow_caller_to_reach_operator": true,
      "operator": {
        "extension_id": "p4O_BLMGS7ejPPMaBzgpcQ"
      },
      "allow_caller_to_check_voicemail": false
    }
  },
  "closed_hours": {
    "overflow": {
      "allow_caller_to_reach_operator": true,
      "operator": {
        "extension_id": "p4O_BLMGS7ejPPMaBzgpcQ"
      },
      "allow_caller_to_check_voicemail": false
    }
  },
  "holiday_hours": {
    "holidays": [
      {
        "holiday_id": "i3gP6xFUTHqSFrIE6nHs7Q",
        "name": "Holiday 1",
        "from": "2022-03-08T16:00:00Z",
        "to": "2022-03-09T16:00:00Z"
      }
    ],
    "overflow": {
      "allow_caller_to_reach_operator": true,
      "operator": {
        "extension_id": "p4O_BLMGS7ejPPMaBzgpcQ"
      },
      "allow_caller_to_check_voicemail": false
    }
  },
  "outbound_caller_id": {
    "auto_receptionists_numbers": false,
    "call_queue_numbers": false,
    "share_line_group_numbers": false,
    "show_outbound_caller_id_for_internal_call": false
  },
  "audio_prompt": {
    "language": "en-GB",
    "greeting_leave_voicemail_instruction": {
      "business_hours": {
        "audio_id": "yCT14TwySDGVUypVlKNEyA"
      },
      "closed_hours": {
        "audio_id": "yCT14TwySDGVUypVlKNEyA"
      },
      "holiday_hours": {
        "audio_id": "yCT14TwySDGVUypVlKNEyA"
      }
    },
    "greeting_menu_leave_or_check_voicemail": {
      "business_hours": {
        "audio_id": "yCT14TwySDGVUypVlKNEyA"
      },
      "closed_hours": {
        "audio_id": "yCT14TwySDGVUypVlKNEyA"
      },
      "holiday_hours": {
        "audio_id": "yCT14TwySDGVUypVlKNEyA"
      }
    },
    "greeting_menu_connect_to_operator_or_leave_voicemail": {
      "business_hours": {
        "audio_id": "yCT14TwySDGVUypVlKNEyA"
      },
      "closed_hours": {
        "audio_id": "yCT14TwySDGVUypVlKNEyA"
      },
      "holiday_hours": {
        "audio_id": "yCT14TwySDGVUypVlKNEyA"
      }
    },
    "greeting_menu_connect_to_operator_leave_or_check_voicemail": {
      "business_hours": {
        "audio_id": "yCT14TwySDGVUypVlKNEyA"
      },
      "closed_hours": {
        "audio_id": "yCT14TwySDGVUypVlKNEyA"
      },
      "holiday_hours": {
        "audio_id": "yCT14TwySDGVUypVlKNEyA"
      }
    },
    "leave_voicemail_introduction": {
      "business_hours": {
        "audio_id": "yCT14TwySDGVUypVlKNEyA"
      },
      "closed_hours": {
        "audio_id": "yCT14TwySDGVUypVlKNEyA"
      },
      "holiday_hours": {
        "audio_id": "yCT14TwySDGVUypVlKNEyA"
      }
    },
    "message_greeting": {
      "business_hours": {
        "audio_id": "yCT14TwySDGVUypVlKNEyA"
      },
      "closed_hours": {
        "audio_id": "yCT14TwySDGVUypVlKNEyA"
      },
      "holiday_hours": {
        "audio_id": "yCT14TwySDGVUypVlKNEyA"
      }
    },
    "audio_while_connecting": {
      "audio_id": "yCT14TwySDGVUypVlKNEyA"
    },
    "hold_music": {
      "audio_id": "yCT14TwySDGVUypVlKNEyA"
    }
  },
  "desk_phone": {
    "hot_desking_session_timeout": {
      "number": 5,
      "unit": "minutes"
    }
  },
  "general_setting": {
    "setting_type": "account_setting",
    "web_interface": false
  },
  "dial_by_name": {
    "status": true,
    "inherit": false,
    "rule": "last_name"
  },
  "billing_account": {
    "id": "3WWAEiEjTj2IQuyDiKMd_A"
  }
}

Responses

Status: 204 **HTTP Status Code:** `204` No Content
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Validation Failed. Site does not exist.<br>Prompt files do not exist, audio ids: {0}.<br>Hot-desking session timeout setting is invalid.<br> <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List phone users

  • Method: GET
  • Path: /phone/users
  • Tags: Users

Returns a list of all of an account's users who are assigned a Zoom Phone license.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Phone license

Scopes: phone:read:admin

Granular Scopes: phone:read:list_users:admin

Rate Limit Label: MEDIUM

Responses

Status: 200 **HTTP Status Code:** `200` **OK** Phone users retrieved successfully.
Content-Type: application/json
  • next_page_token

    string — The next page token paginates through a large set of results. A next page token is returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • page_size

    integer, default: 30 — The number of records returned from a single API call.

  • total_records

    integer — The total records found for this query.

  • users

    array

    Items:

    • activation_status

      string, possible values: "activated", "ready to activate", "not ready" — The activation status of the user. The value can be either of the following: `activated`: User have been activated, this type of user can make or receive calls. `ready to activate`: User have been assigned phone license but didn't activated, this type of user can make or receive calls. `not ready`: User have been assigned phone license, but the user didn't confirm the invitation. This user doesn't belong to this account yet.

    • calling_plans

      array

      Items:

      • billing_account_id

        string — The billing account ID. It displays when the user is located in India.

      • billing_account_name

        string — The billing account name. It displays when the user is located in India.

      • billing_subscription_id

        string — The billing subscription ID. It displays when the account supports billing multiple subscriptions.

      • billing_subscription_name

        string — The billing subscription name. It displays when the account supports billing multiple subscriptions.Can be edited through the Billing page.

      • name

        string — The name of the user's calling plan.

      • type

        integer — The type of calling plan where the user is enrolled.

    • cost_center

      string — The cost center where the user belongs.

    • department

      string — The department where the user belongs.

    • email

      string, format: email — The email address of the user.

    • extension_id

      string — The extension ID.

    • extension_number

      integer, format: int64 — The extension number assigned to the user's Zoom phone number.

    • id

      string — The unique identifier of the user (userId).

    • name

      string — The name of the user.

    • phone_numbers

      array

      Items:

      • id

        string — The phone number ID.

      • number

        string — The phone number.

    • phone_user_id

      string — The Zoom phone identifier of the user.

    • site

      object

    • status

      string — The status of the user's Zoom Phone license. The value can be either of the following: `activate`: Active Zoom phone user. `deactivate`: User with Zoom phone license disabled. This type of user can't make or receive calls.

Example:

{
  "next_page_token": "nav48KOj42vYPSG4f0cCdT575bZ980did22",
  "page_size": 30,
  "total_records": 45,
  "users": [
    {
      "calling_plans": [
        {
          "name": "US/CA Metered Calling Plan",
          "type": 100,
          "billing_account_id": "3WWAEiEjTj2IQuyDiKMd_A",
          "billing_account_name": "Delhi billing",
          "billing_subscription_id": "FT-SUBREF-21168178",
          "billing_subscription_name": "My Subscription"
        }
      ],
      "email": "202007160003@testapi.com",
      "extension_id": "V4UobpuxRxCwN_8iNf7k4w",
      "extension_number": 1000001036,
      "id": "w0RChiauQeqRlv5fgxYULQ",
      "name": "APITA AUTO",
      "phone_user_id": "BOSr0vUiTl61WLR-Q_7bUw",
      "site": {
        "id": "IjJ2D75SQJit1VdDvkK_mQ",
        "name": "ApiTA_Site_2020_07_12_02_33_45_707"
      },
      "status": "activate",
      "activation_status": "activated",
      "phone_numbers": [
        {
          "id": "---M1padRvSUtw7YihN7sA",
          "number": "14232058798"
        }
      ],
      "department": "Phone department",
      "cost_center": "Phone cost center"
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> The next page token is invalid or expired. Please enter at least {0} valid characters. <br> **Error Code:** `124` <br> You do not have permission, because the current site `{0}` does not belong to the target sites. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2001` <br> Account does not exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update multiple users' properties in batch

  • Method: PUT
  • Path: /phone/users/batch
  • Tags: Users

Updates multiple users' properties in batch. For example, you can update the users' site when batchType is equal to move_site. You can update 10 users at a time.

Prerequisites:

  • Business, or Education account
  • Zoom Phone license

Scopes: phone:write:admin

Granular Scopes: phone:update:batch_users:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • activation_status

    string, possible values: "activate", "deactivate" — The type that activates or deactivates in batch. You must enter `activate`: Activate Zoom Phone feature to users, `site_id` is not required. `deactivate`: Deactivate the Zoom Phone feature of users, users can not make or receive calls, `site_id` is not required.

  • batch_type

    string, possible values: "move_site", "assign_pending_user", "activate" — The type that updates in batch. You must enter `move_site`: `user_ids` and `site_id` into the current request body. `assign_pending_user`: Assign user to the Zoom Phone feature of the Zoom One license. `site_id` is not required. `activate`: Activate Zoom Phone feature to users, `site_id` is not required.

  • site_id

    string — The unique identifier of the [site](https://support.zoom.us/hc/en-us/articles/360020809672) where the user should be moved or assigned.

  • user_ids

    array — The IDs of user.

    Items:

    string

Example:

{
  "batch_type": "move_site",
  "user_ids": [
    "DYHrdpjrS3uaOf7dPkkg8w"
  ],
  "site_id": "8f71O6rWT8KFUGQmJIFAdQ",
  "activation_status": "activate"
}

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Successfully update multiple users' properties in batch.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Current batch type does not support, batch type:{0}. <br> **Error Code:** `12007` <br> The user in Trash cannot be assigned Zoom One license. <br> **Error Code:** `12008` <br> The Zoom Phone feature of the Zoom One license cannot be supported for users assigned to India sites. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2001` <br> Account does not exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Batch add users

  • Method: POST
  • Path: /phone/users/batch
  • Tags: Users

Adds phone users in batch. You can add up to 10 users at a time.

Prerequisites

  • The users must be active in your Zoom account.
  • Pro or higher account plan with Zoom phone license
  • Account owner or admin permissions

Scopes: phone:write:admin

Granular Scopes: phone:write:batch_users:admin

Rate Limit Label: MEDIUM

Request Body

Content-Type: application/json
  • users

    array

    Items:

    • calling_plans (required)

      array — The calling plan. If the account supports billing multiple subscriptions and includes more than one type A plan, use the following format to assign a type from a specific subscription:type:billing_subscription_id or type:billing_subscription_name. * Type &quot;AU/NZ Metered&quot; if the assigned package is &quot;Australia/New Zealand Metered Calling Plan&quot;. * Type &quot;AU/NZ Unlimited&quot; if the assigned package is &quot;Australia/New Zealand Unlimited Calling Plan&quot;. * Type &quot;UK/Ireland Metered&quot; if the assigned package is &quot;United Kingdom/Ireland Metered Calling Plan&quot;. * Type &quot;UK/Ireland Unlimited&quot; if the assigned package is &quot;United Kingdom/Ireland Unlimited Calling Plan&quot;. * Type &quot;US/CA Metered&quot; if the assigned package is &quot;United States/Canada Metered Calling Plan&quot;. * Type &quot;US/CA Unlimited&quot; if the assigned package is &quot;United States/Canada Unlimited Calling Plan&quot;. * Type &quot;Europe Zone A Metered&quot; if the assigned package is &quot;Europe Zone A Metered Calling Plan&quot;. * Type &quot;Europe Zone A Unlimited&quot; if the assigned package is &quot;Europe Zone A Unlimited Calling Plan&quot;. * Type &quot;Europe Zone B Metered&quot; if the assigned package is &quot;Europe Zone B Metered Calling Plan&quot;. * Type &quot;Europe Zone B Unlimited&quot; if the assigned package is &quot;Europe Zone B Unlimited Calling Plan&quot;. * Type &quot;JP Metered&quot; if the assigned package is &quot;Japan Metered Calling Plan&quot;. * Type &quot;JP Unlimited&quot; if the assigned package is &quot;Japan Unlimited Calling Plan&quot;. * Type &quot;IN Metered&quot; if the assigned package is &quot;India Metered Calling Plan&quot;. * Type &quot;IN Unlimited&quot; if the assigned package is &quot;India Unlimited Calling Plan&quot;. * Type &quot;IN Pro&quot; if the assigned package is &quot;Zoom Phone India Pro&quot;. * Type &quot;IN International Calling Add-On&quot; if the assigned package is &quot;India International Calling Add-On&quot;. * Type &quot;Global Select Metered&quot; if the assigned package is &quot;Global Select Metered Calling Plan&quot;. * Type &quot;Global Select&quot; if the assigned package is &quot;Global Select Calling Plan&quot;. * Type &quot;International Calling Add-On&quot; if the assigned package is &quot;International Calling Add-On&quot;. * Type &quot;Beta&quot; if the assigned package is &quot;Beta Calling Plan&quot;. * Type &quot;Pro&quot; if the assigned package is &quot;Zoom Phone Pro&quot;. * Type &quot;Power Pack&quot; if the assigned package is &quot;Zoom Phone Power Pack&quot;. Leave this section blank if no package has been assigned.

      Items:

      string

    • email (required)

      string — The user email. It ensures the users are active in your Zoom account.

    • extension_number (required)

      string — The extension number. Do not include the site code in an extension number if the site code is enabled.

    • activation_status

      string, possible values: "activate", "deactivate" — The activation status. Configures the activation status of user. When activation_status is not set, its value should depend on "Activate Zoom Phone users automatically" in the account settings. `activate`: Activate the Zoom Phone feature, users can make or receive calls. `deactivate`: Deactivate the Zoom Phone feature, users can not make or receive calls.

    • desk_phones

      array — Required: brand, model, and MAC address of each desk phone. Optional: provision template. Skips the provision template not supported by the device. For more information, see [supported devices](https://support.zoom.us/hc/en-us/articles/360001299063-Zoom-Voice-Supported-Devices). Each user can be assigned up to 3 desk phones. All users must belong to the same site if a desk phone is assigned to multiple users.

      Items:

      • brand

        string — The manufacturer (brand) name of the device.

      • mac

        string — The MAC address of the desk phone.

      • model

        string — The model name of the device.

      • provision_template

        string — The provision template name. Supported by select devices.

    • first_name

      string — The user's first name. It ensures the users are active in your Zoom account.

    • last_name

      string — The user's last name. It ensures the users are active in your Zoom account.

    • outbound_caller_id

      string — The outbound caller ID. Hides the caller ID if left blank. You can set an extension's phone number or any company number as the outbound caller ID.

    • phone_numbers

      array — The phone numbers in E164 format. Separate multiple phone number entries with commas. Make sure that these numbers have been ported to your account as unassigned phone numbers.

      Items:

      string

    • select_outbound_caller_id

      boolean — Whether to allow this extension to change the outbound caller ID when placing calls.

    • site_code

      string — The site code. It's required if the site name is not provided or if Indian plans are assigned.

    • site_name

      string — The site name. It's required if the site code is not provided or if Indian plans are assigned.

    • sms

      boolean — Whether to enable SMS for this user.

    • template_name

      string — The template name. Configure the user setting according to the specified template. The template must belong to the same site as the user.

Example:

{
  "users": [
    {
      "email": "user@example.com",
      "first_name": "Zeb",
      "last_name": "Zoomie",
      "calling_plans": [
        "AU/NZ Metered or AU/NZ Metered:FT-SUBREF-21168178 or AU/NZ Metered:My SubRefer 1"
      ],
      "site_code": "1",
      "site_name": "Main Site",
      "template_name": "account_user_template_01",
      "extension_number": "100012345",
      "activation_status": "activate",
      "phone_numbers": [
        "+12055437350"
      ],
      "outbound_caller_id": "+12055437350",
      "select_outbound_caller_id": true,
      "sms": true,
      "desk_phones": [
        {
          "brand": "Yealink",
          "model": "405hd",
          "mac": "80-5e-c0-3d-eb-c4",
          "provision_template": "TestProvisionTemplate"
        }
      ]
    }
  ]
}

Responses

Status: 201 **HTTP Status Code:** `201` Created.
Content-Type: application/json

Array of:

  • email

    string — The imported user email.

  • id

    string — The user ID.

  • Max items: 10

Example:

[
  {
    "email": "ta_test_import_user_01@example.com",
    "id": "FwOAeL4TRmqQrmF0jOfzkQ"
  }
]
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> User size must be less than 10. You need to have administrative privileges to edit this site. <br> **Error Code:** `300` <br> Validation Failed. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `404` <br> Template is invalid <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get a user's profile

  • Method: GET
  • Path: /phone/users/{userId}
  • Tags: Users

Returns a user's Zoom phone profile. For user-level apps, pass the me value instead of the userId parameter.

Prerequisites

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:read,phone:read:admin

Granular Scopes: phone:read:user,phone:read:user:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` User profile object returned.
Content-Type: application/json
  • calling_plans

    array — The calling plan of the user

    Items:

    • billing_account_id

      string — The billing account ID. It displays when the user is located in India.

    • billing_account_name

      string — The billing account name. It displays when the user is located in India.

    • billing_subscription_id

      string — The billing subscription ID. It displays when the account supports billing multiple subscriptions.

    • billing_subscription_name

      string — The billing subscription name. It displays when the account supports billing multiple subscriptions.Can be edited via the Billing page.

    • type

      integer — The [type](https://marketplace.zoom.us/docs/api-reference/other-references/plans#zoom-phone-calling-plans) of calling plan.

  • cost_center

    string — The cost center name.

  • department

    string — The department's name.

  • email

    string — The email address of the user.

  • emergency_address

    object

  • extension_id

    string — The extension ID.

  • extension_number

    integer, format: int64 — The extension number.

  • id

    string — The Zoom user ID.

  • phone_numbers

    array

    Items:

    • id

      string — The phone number ID.

    • number

      string — The phone number.

  • phone_user_id

    string — The Zoom phone user ID.

  • policy

    object — A list of the user's policies. Policies are exceptions to the user's calling plan restrictions.

    • ad_hoc_call_recording

      object — A list of ad hoc call recording settings.

      • enable

        boolean — Whether the current extension can record and save calls to the cloud.

      • locked

        boolean — Whether the senior administrator allow users to modify the current settings.

      • locked_by

        string, possible values: "account", "user_group", "site" — Which level of administrator prohibits the modification of the current settings.

      • play_recording_beep_tone

        object

        • enable

          boolean — Whether to play the side tone beep for recorded users while recording. It displays only when ad hoc call recording policy uses the new framework.

        • play_beep_member

          string, possible values: "allMember", "recordingSide" — The beep sides. It displays only when the `enable` is set to true.

        • play_beep_time_interval

          integer, possible values: 5, 10, 15, 20, 25, 30, 60, 120 — The beep time interval in seconds. It displays only when the `enable` is set to true.

        • play_beep_volume

          integer, possible values: 0, 20, 40, 60, 80, 100 — The side tone beep volume. It displays only when `enable` is set to `true`.

      • recording_start_prompt

        boolean — Whether a prompt plays to call participants when the recording has started.

      • recording_transcription

        boolean — Whether the call recording transcription is enabled.

    • ad_hoc_call_recording_access_members

      array — The shared ad hoc call recording access member list.

      Items:

      All of:

      • access_user_id

        string — The Zoom user ID to share access permissions.

      • allow_delete

        boolean — Whether the user has delete permissions. The default is **false**.

      • allow_download

        boolean — Whether the user has download permissions. The default is **false**.

      • shared_id

        string — The unique identifier of the shared sub-setting that the user can access.

    • allow_end_user_edit_call_handling

      object

      • enable

        boolean — Whether to allow users to be able to edit their call handling settings on the web portal or enable call forwarding on the client.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset (displayed when using the new policy framework).

    • audio_intercom

      object — Whether the user can use audio intercom.

      • enable

        boolean

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "account", "user_group", "site" — Which level of administrator prohibits modifying the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset in the update call.

    • auto_call_recording

      object — A list of the user's automatic call recording settings.

      • allow_stop_resume_recording

        boolean — Whether the stop of and resuming of automatic call recording is enabled.

      • disconnect_on_recording_failure

        boolean — Whether a call disconnects when there is an issue with automatic call recording and the call cannot reconnect after five seconds. It does **not** include emergency calls.

      • enable

        boolean — Whether the automatic call recording is enabled.

      • inbound_audio_notification

        object

        • recording_explicit_consent

          boolean — Whether the **Press 1** option that provides recording consent for outbound call is enabled. <b>Note:</b> * If customers do not opt OP flag named `Enable Caller Based Consent Options`, the values of `recording_explicit_consent`, `inbound_audio_notification.recording_explicit_consent`, and `outbound_audio_notification.recording_explicit_consent` always remain consistent. * If customers do not opt OP flag named `Enable Caller Based Consent Options`, update both `inbound_audio_notification.recording_explicit_consent` and `outbound_audio_notification.recording_explicit_consent` with the same value.

        • recording_start_prompt

          boolean — Whether a prompt plays to call participants when the recording has started for inbound call is enabled. <b>Note:</b> * If customers do not opt OP flag named `Enable Caller Based Consent Options`, the values of `recording_start_prompt`, `inbound_audio_notification.recording_start_prompt`, and `outbound_audio_notification.recording_start_prompt` always remain consistent. * If customers do not opt OP flag named `Enable Caller Based Consent Options`, update both `inbound_audio_notification.recording_start_prompt` and `outbound_audio_notification.recording_start_prompt` with the same value.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "account", "user_group", "site" — Which level of administrator prohibits the modification of the current settings.

      • outbound_audio_notification

        object

        • recording_explicit_consent

          boolean — Whether the **Press 1** option that provides recording consent for outbound call is enabled. <b>Note:</b> * If customers do not opt OP flag named `Enable Caller Based Consent Options`, the values of `recording_explicit_consent`, `inbound_audio_notification.recording_explicit_consent`, and `outbound_audio_notification.recording_explicit_consent` always remain consistent. * If customers do not opt OP flag named `Enable Caller Based Consent Options`, update both `inbound_audio_notification.recording_explicit_consent` and `outbound_audio_notification.recording_explicit_consent` with the same value.

        • recording_start_prompt

          boolean — Whether a prompt plays to call participants when the recording has started for outbound call is enabled. <b>Note:</b> * If customers do not opt OP flag named `Enable Caller Based Consent Options`, the values of `recording_start_prompt`, `inbound_audio_notification.recording_start_prompt`, and `outbound_audio_notification.recording_start_prompt` always remain consistent. * If customers do not opt OP flag named `Enable Caller Based Consent Options`, update both `inbound_audio_notification.recording_start_prompt` and `outbound_audio_notification.recording_start_prompt` with the same value.

      • play_recording_beep_tone

        object

        • enable

          boolean — Whether to play the side tone beep for recorded users while recording. It displays only when auto call recording policy uses the new framework.

        • play_beep_member

          string, possible values: "allMember", "recordingSide" — The beep sides. It displays only when the `enable` is set to true.

        • play_beep_time_interval

          integer, possible values: 5, 10, 15, 20, 25, 30, 60, 120 — The beep time interval in seconds. It displays only when the `enable` is set to true.

        • play_beep_volume

          integer, possible values: 0, 20, 40, 60, 80, 100 — The side tone beep volume. It displays only when `enable` is set to `true`.

      • recording_calls

        string, possible values: "inbound", "outbound", "both" — The type of calls automatically recorded: * `inbound` * `outbound` * `both`

      • recording_explicit_consent

        boolean — Whether the **Press 1** option that provides recording consent is enabled. <b>Deprecated:</b> This field will be deprecated in a future release. As an alternative, use the `inbound_audio_notification.recording_explicit_consent` and `outbound_audio_notification.recording_explicit_consent` to operate inbound and outbound prompt separately. <b>Note:</b> * if customers who opt OP flag named `Enable Caller Based Consent Options`, the values of `recording_explicit_consent` and `inbound_audio_notification.recording_explicit_consent` will remain consistent. When the field is updated, the `inbound_audio_notification.recording_explicit_consent` will be also updated. * If customers do not opt OP flag named `Enable Caller Based Consent Options`, the values of `recording_explicit_consent`, `inbound_audio_notification.recording_explicit_consent`, and `outbound_audio_notification.recording_explicit_consent` always remain consistent. When the field is updated, the `inbound_audio_notification.recording_explicit_consent`, and `outbound_audio_notification.recording_explicit_consent` will be also updated.

      • recording_start_prompt

        boolean — Whether a prompt plays to call participants when the recording has started. <b>Deprecated:</b> This field will be deprecated in a future release. As an alternative, use the `inbound_audio_notification.recording_start_prompt` and `outbound_audio_notification.recording_start_prompt` to operate inbound and outbound prompt separately. <b>Note:</b> * If customers who opt OP flag named `Enable Caller Based Consent Options`, the values of `recording_start_prompt` and `inbound_audio_notification.recording_start_prompt` will remain consistent. When the field is updated, the `inbound_audio_notification.recording_start_prompt` will be also updated. * If customers do not opt OP flag named `Enable Caller Based Consent Options`, the values of `recording_start_prompt`, `inbound_audio_notification.recording_start_prompt`, and `outbound_audio_notification.recording_start_prompt` always remain consistent. When the field is updated, the `inbound_audio_notification.recording_start_prompt`, and `outbound_audio_notification.recording_start_prompt` will be also updated.

      • recording_transcription

        boolean — Whether the call recording transcription is enabled.

    • auto_call_recording_access_members

      array — The shared automatic call recording access member list.

      Items:

      All of:

      • access_user_id

        string — The Zoom user ID to share access permissions.

      • allow_delete

        boolean — Whether the user has delete permissions. The default is **false**.

      • allow_download

        boolean — Whether the user has download permissions. The default is **false**.

      • shared_id

        string — The unique identifier of the shared sub-setting that the user can access.

    • call_handling_forwarding_to_other_users

      object — Whether to allow the user to forward calls to other numbers.

      • call_forwarding_type

        integer, possible values: 1, 2, 3, 4 — `1` - Low restriction (external numbers not allowed) `2` - Medium restriction (external numbers and external contacts not allowed) `3` - High restriction (external numbers, external contacts and internal extensions without inbound automatic call recording not allowed) `4` - No restriction

      • enable

        boolean

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "account", "user_group", "site" — Which level of administrator prohibits the modification of the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset (displayed when using the new policy framework).

    • call_overflow

      object

      • call_overflow_type

        integer, possible values: 1, 2, 3, 4 — `1` - Low restriction (external numbers not allowed) `2` - Medium restriction (external numbers and external contacts not allowed) `3` - High restriction (external numbers, external contacts and internal extensions without inbound automatic call recording not allowed) `4` - No restriction

      • enable

        boolean — Whether to allow the user to forward calls to other numbers.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "account", "user_group", "site" — Which level of administrator prohibits the modification of the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset (displayed when using the new policy framework).

    • call_park

      object

      • call_not_picked_up_action

        integer — The action when a parked call is not picked up. 100-Ring back to parker, 0-Forward to voicemail of the parker, 9-Disconnect, 50-Forward to another extension.

      • enable

        boolean — Whether to allow calls placed on hold to be resumed from another location using a retrieval code.

      • expiration_period

        integer, possible values: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60 — A time limit for parked calls and unit minutes. After the expiration period ends, the retrieval code is no longer valid and a new code will be generated.

      • forward_to

        object — The extension's forwarding information.

        • display_name

          string — The extension's name.

        • extension_id

          string — The extension ID.

        • extension_number

          integer, format: int64 — The extension number.

        • extension_type

          string, possible values: "user", "zoomRoom", "commonArea", "ciscoRoom/polycomRoom", "autoReceptionist", "callQueue", "sharedLineGroup" — The type of extension: * `user` * `zoomRoom` * `commonArea` * `ciscoRoom/polycomRoom` * `autoReceptionist` * `sharedLineGroup` * `callQueue`

        • id

          string — The ID of the extension `user`, `zoomRoom`, `commonArea`, `ciscoRoom/polycomRoom`, `autoReceptionist`, `callQueue` or `sharedLineGroup`.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "account", "user_group", "site" — Which level of administrator prohibits the modification of the current settings.

    • call_transferring

      object

      • call_transferring_type

        integer, possible values: 1, 2, 3, 4 — This field contains these settings: 1-No restriction. 2-Medium restriction (external numbers and external contacts not allowed). 3-High restriction (external numbers, unrecorded external contacts, and internal extensions without inbound automatic recording not allowed). 4-Low restriction (external numbers not allowed).

      • enable

        boolean — Whether to allow user to warm or blind transfer their calls. This does not apply to warm transfer on IP Phones except for Yealink.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "account", "user_group", "site" — Which level of administrator prohibits the modification of the current settings.

    • check_voicemails_over_phone

      object — Whether the user can check voicemails of users and shared line groups over phone using a PIN code.

      • enable

        boolean

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "account", "user_group", "site" — Which level of administrator prohibits modifying the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset in the update call.

    • delegation

      boolean — Whether the user can use [call delegation](https://support.zoom.us/hc/en-us/articles/360032881731-Setting-up-call-delegation-shared-lines-appearance-).

    • e2e_encryption

      object

      • enable

        boolean — Whether to allow users to switch their calls to `End-to-End Encryption`. If users have the `Automatic Call Recording` turned on, they will not be able to use the `End-to-End Encryption`.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "account", "user_group", "site" — Which level of administrator prohibits modifying the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset (displayed when using the new policy framework).

    • elevate_to_meeting

      boolean — Whether the user can elevate their phone calls to a meeting.

    • emergency_address_management

      object

      • enable

        boolean — Whether to allow the current extension to manage its own emergency addresses.

      • prompt_default_address

        boolean — Whether to prompt the user to set or confirm a default address.

    • emergency_calls_to_psap

      boolean — When disabled, emergency calls placed by the user will not be delivered to the Public Safety Answering Point(PSAP), but still will be delivered to the Internal Safety Response Team based on the settings.

    • forwarding_to_external_numbers

      boolean — Whether call forwarding to external numbers is enabled. Use the `call_handling_forwarding_to_other_users` instead.

    • hand_off_to_room

      object

      • enable

        boolean — Whether to allow users to send a call to a Zoom Room.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "account", "user_group", "site" — Which level of administrator prohibits the modification of the current settings.

    • international_calling

      boolean — Whether the current extension can make international calls outside of their calling plan.

    • mobile_switch_to_carrier

      object

      • enable

        boolean — Whether to allow the user to switch from a Zoom Phone to their native carrier.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "account", "user_group", "site" — Which level of administrator prohibits the modification of the current settings.

    • outbound_calling

      object

      • enable

        boolean — Whether to define calling rules to restrict the user or extension from calling specific countries, cities, or numbers.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset (displayed when using the new policy framework).

    • outbound_sms

      object

      • enable

        boolean — Whether to allow users to send and receive messages. You will still need to assign a valid calling plan and phone number to each user for them to send and receive messages.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset (displayed when using the new policy framework).

    • peer_to_peer_media

      object — Whether to allow Zoom clients to send media directly to each other. Users or devices that have certain features like recording or monitoring enabled may not be able to use the peer to peer media sharing feature.

      • enable

        boolean

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "account", "user_group", "site" — Which level of administrator prohibits modifying the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset in the update call.

    • personal_audio_library

      object

      • allow_music_on_hold_customization

        boolean — Whether to allow music on hold customization.

      • allow_voicemail_and_message_greeting_customization

        boolean — Whether to allow voicemail and message greeting customization.

      • enable

        boolean — Whether to allow users to change their own audio library.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "account", "user_group", "site" — Which level of administrator prohibits the modification of the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset in the update call.

    • select_outbound_caller_id

      object

      • allow_hide_outbound_caller_id

        boolean — Whether to allow the current extension to hide outbound caller id.

      • enable

        boolean — Whether to allow the current extension to change the outbound caller ID when placing calls.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "account", "user_group", "site" — Which level of administrator prohibits the modification of the current settings.

    • shared_voicemail_notification_by_email

      object

      • enable

        boolean — If enabled, the user will receive email notification when there is a new shared voicemail.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "account", "user_group", "site" — Which level of administrator prohibits modifying the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset in the update call.

    • sms

      object

      • allow_copy

        boolean — Allow users to copy message.

      • allow_paste

        boolean — Allow users to use the paste function to paste content (e.g. text or images) into SMS/MMS conversations.

      • enable

        boolean — Whether the user can send and receive messages.

      • international_sms

        boolean — Whether the user can send and receive international messages.

      • international_sms_countries

        array — The country that can send and receive international messages. The [country ISO code](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries).

        Items:

        string

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "account", "user_group", "site" — Which level of administrator prohibits modifying the current settings.

    • voicemail

      object

      • allow_delete

        boolean — This field allows the user to delete his own voicemail.

      • allow_download

        boolean — This field allows the user to download their voicemail.

      • allow_transcription

        boolean — Whether the voicemail transcription is enabled.

      • allow_videomail

        boolean — Whether to allow users to access, share, download, or delete the video mail

      • enable

        boolean — Whether the current extension can access, receive, or share voicemail.

    • voicemail_access_members

      array — The shared voicemail access member list.

      Items:

      All of:

      • access_user_id

        string — The Zoom user ID to share the voicemail access permissions with.

      • allow_delete

        boolean — Whether the user has delete permissions. The default is **false**.

      • allow_download

        boolean — Whether the user has download permissions. The default is **false**.

      • allow_sharing

        boolean — Whether the user has permission to share. The default is **false**.

      • shared_id

        string — The unique identifier of the shared sub-setting that the user can access.

    • voicemail_intent_based_prioritization

      object

      • enable

        boolean — Whether to allow users to prioritize urgent voicemails based on predefined priority topics. Users need to have voicemail transcription policy enabled.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "account", "user_group", "site" — Which level of administrator prohibits modifying the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset (displayed when using the new policy framework).

    • voicemail_notification_by_email

      object

      • enable

        boolean — If enabled, the user will receive email notifications when there is a new voicemail from users, call queues, auto receptionists, or shared line groups.

      • include_voicemail_file

        boolean — Whether to include the voicemail file.

      • include_voicemail_transcription

        boolean — Whether to include the voicemail transcription.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "account", "user_group", "site" — Which level of administrator prohibits modifying the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset in the update call.

    • voicemail_tasks

      object

      • enable

        boolean — Whether to allow users to extract tasks from English voicemail transcriptions. Users need to have voicemail transcription policy enabled.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "account", "user_group", "site" — Which level of administrator prohibits modifying the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset (displayed when using the new policy framework).

    • voicemail_transcription

      object

      • enable

        boolean — Whether to allow the user to access transcriptions of voicemails.

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "account", "user_group", "site" — Which level of administrator prohibits modifying the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, they can be reset in the update call.

    • zoom_phone_on_desktop

      object — Allows user to use Zoom Phone on desktop clients (Mac OS, Windows, VDI client and Linux).

      • allow_calling_clients

        array — The clients in this list are allowed to make and receive calls.

        Items:

        string, possible values: "mac_os", "windows", "vdi_client", "linux" — The acceptable value is: mac_os windows vdi_client linux.

      • allow_sms_mms_clients

        array — The clients in this list are allowed to use the SMS/MMS function.

        Items:

        string, possible values: "mac_os", "windows", "vdi_client", "linux" — The acceptable value is mac_os windows vdi_client linux.

      • enable

        boolean — Whether to allow users to use Zoom Phone on desktop clients (Mac OS, Windows, VDI clinet and Linux).

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "invalid", "account", "site" — Which level of administrator prohibits the modification of the current settings.

      • modified

        boolean — Whether the current settings have been modified. If modified, you can reset settings to display when using the new policy framework.

    • zoom_phone_on_mobile

      object

      • allow_calling_clients

        array — The clients in this list are allowed to make and receive calls.

        Items:

        string, possible values: "ios", "android", "intune", "blackberry" — Acceptable value is: ios android intune blackberry

      • allow_calling_sms_mms

        boolean — Whether to allow calling and SMS/MMS functions on mobile.

      • allow_sms_mms_clients

        array — The clients in this list are allowed to use the SMS/MMS function.

        Items:

        string, possible values: "ios", "android", "intune", "blackberry" — The acceptable value is ios android intune blackberry.

      • enable

        boolean — Whether to allow user to use Zoom Phone on mobile clients (iOS, iPad OS, and Android).

      • locked

        boolean — Whether the senior administrator allows users to modify the current settings.

      • locked_by

        string, possible values: "account", "user_group", "site" — Which level of administrator prohibits the modification of the current settings.

  • site_admin

    boolean — Whether the user is a [site admin](https://support.zoom.us/hc/en-us/articles/360042099012) or not.

  • site_id

    string — The unique identifier of a [site](https://support.zoom.us/hc/en-us/articles/360020809672).

  • status

    string, possible values: "activate", "deactivate" — The status of the user. `activate`: An active user. `deactivate`: User has been deactivated from the Zoom Phone system.

Example:

{
  "calling_plans": [
    {
      "type": 600,
      "billing_account_id": "3WWAEiEjTj2IQuyDiKMd_A",
      "billing_account_name": "Delhi billing",
      "billing_subscription_id": "FT-SUBREF-21168178",
      "billing_subscription_name": "My Subscription"
    }
  ],
  "cost_center": "testCostCenter",
  "department": "testDepartment",
  "email": "suesu_test_delete3@testapi.com",
  "emergency_address": {
    "address_line1": "55 Almaden Boulevard",
    "address_line2": "1002 Airport Way S",
    "city": "SAN JOSE",
    "country": "US",
    "id": "CCc8zYT1SN60i7uDMzDbXA",
    "state_code": "CA",
    "zip": "95113"
  },
  "extension_id": "nNGsNx2zRDyiIXWVI23FCQ",
  "extension_number": 100012347,
  "id": "NL3cEpSdRc-c2t8aLoZqiw",
  "phone_numbers": [
    {
      "id": "---M1padRvSUtw7YihN7sA",
      "number": "14232058798"
    }
  ],
  "phone_user_id": "u7pnC468TaS46OuNoEw6GA",
  "policy": {
    "ad_hoc_call_recording": {
      "enable": true,
      "recording_start_prompt": true,
      "recording_transcription": true,
      "play_recording_beep_tone": {
        "enable": true,
        "play_beep_volume": 60,
        "play_beep_time_interval": 15,
        "play_beep_member": "allMember"
      },
      "locked": true,
      "locked_by": "account"
    },
    "ad_hoc_call_recording_access_members": [
      {
        "access_user_id": "w0RChiauQeqRlv5fgxYULQ",
        "allow_delete": false,
        "allow_download": false,
        "shared_id": "--e8ugg0SeS-9clgrDkn2w"
      }
    ],
    "auto_call_recording": {
      "allow_stop_resume_recording": true,
      "disconnect_on_recording_failure": true,
      "enable": true,
      "locked": true,
      "locked_by": "account",
      "recording_calls": "inbound",
      "recording_transcription": true,
      "play_recording_beep_tone": {
        "enable": true,
        "play_beep_volume": 60,
        "play_beep_time_interval": 15,
        "play_beep_member": "allMember"
      },
      "inbound_audio_notification": {
        "recording_start_prompt": true,
        "recording_explicit_consent": true
      },
      "outbound_audio_notification": {
        "recording_start_prompt": true,
        "recording_explicit_consent": true
      }
    },
    "auto_call_recording_access_members": [
      {
        "access_user_id": "w0RChiauQeqRlv5fgxYULQ",
        "allow_delete": false,
        "allow_download": false,
        "shared_id": "--e8ugg0SeS-9clgrDkn2w"
      }
    ],
    "call_overflow": {
      "call_overflow_type": 1,
      "enable": true,
      "locked": true,
      "locked_by": "site",
      "modified": true
    },
    "call_park": {
      "call_not_picked_up_action": 9,
      "enable": true,
      "expiration_period": 10,
      "forward_to": {
        "display_name": "test extension name",
        "extension_id": "CcrEGgmeQem1uyJsuIRKwA",
        "extension_number": 1000123477,
        "extension_type": "user",
        "id": "fWOgOALdT1ei4vjXK-QYsA"
      },
      "locked": true,
      "locked_by": "account"
    },
    "call_transferring": {
      "call_transferring_type": 2,
      "enable": true,
      "locked": true,
      "locked_by": "account"
    },
    "delegation": true,
    "elevate_to_meeting": true,
    "emergency_address_management": {
      "enable": true,
      "prompt_default_address": true
    },
    "emergency_calls_to_psap": true,
    "call_handling_forwarding_to_other_users": {
      "enable": true,
      "call_forwarding_type": 1,
      "locked": true,
      "locked_by": "site",
      "modified": true
    },
    "hand_off_to_room": {
      "enable": true,
      "locked": true,
      "locked_by": "account"
    },
    "international_calling": true,
    "mobile_switch_to_carrier": {
      "enable": true,
      "locked": true,
      "locked_by": "account"
    },
    "select_outbound_caller_id": {
      "enable": true,
      "allow_hide_outbound_caller_id": true,
      "locked": true,
      "locked_by": "account"
    },
    "sms": {
      "enable": true,
      "international_sms": true,
      "international_sms_countries": [
        "US"
      ],
      "locked": true,
      "locked_by": "account",
      "allow_copy": true,
      "allow_paste": true
    },
    "voicemail": {
      "allow_delete": true,
      "allow_download": true,
      "allow_transcription": true,
      "allow_videomail": true,
      "enable": true
    },
    "voicemail_access_members": [
      {
        "access_user_id": "w0RChiauQeqRlv5fgxYULQ",
        "allow_delete": false,
        "allow_download": false,
        "allow_sharing": false,
        "shared_id": "--e8ugg0SeS-9clgrDkn2w"
      }
    ],
    "zoom_phone_on_mobile": {
      "allow_calling_clients": [
        "ios"
      ],
      "allow_sms_mms_clients": [
        "ios"
      ],
      "enable": true,
      "locked": true,
      "locked_by": "account"
    },
    "personal_audio_library": {
      "enable": true,
      "locked": true,
      "locked_by": "account",
      "modified": true,
      "allow_music_on_hold_customization": true,
      "allow_voicemail_and_message_greeting_customization": true
    },
    "voicemail_transcription": {
      "enable": true,
      "locked": true,
      "locked_by": "account",
      "modified": true
    },
    "voicemail_notification_by_email": {
      "include_voicemail_file": true,
      "include_voicemail_transcription": false,
      "enable": true,
      "locked": true,
      "locked_by": "account",
      "modified": true
    },
    "shared_voicemail_notification_by_email": {
      "enable": true,
      "locked": true,
      "locked_by": "account",
      "modified": true
    },
    "check_voicemails_over_phone": {
      "enable": true,
      "locked": true,
      "locked_by": "account",
      "modified": true
    },
    "audio_intercom": {
      "enable": true,
      "locked": true,
      "locked_by": "account",
      "modified": true
    },
    "peer_to_peer_media": {
      "enable": true,
      "locked": true,
      "locked_by": "account",
      "modified": true
    },
    "e2e_encryption": {
      "enable": true,
      "locked": true,
      "locked_by": "site",
      "modified": true
    },
    "outbound_calling": {
      "enable": true,
      "locked": true,
      "modified": true
    },
    "outbound_sms": {
      "enable": true,
      "locked": true,
      "modified": true
    },
    "allow_end_user_edit_call_handling": {
      "enable": true,
      "locked": true,
      "modified": true
    },
    "voicemail_intent_based_prioritization": {
      "enable": true,
      "locked": true,
      "locked_by": "site",
      "modified": true
    },
    "voicemail_tasks": {
      "enable": true,
      "locked": true,
      "modified": true,
      "locked_by": "site"
    },
    "zoom_phone_on_desktop": {
      "allow_calling_clients": [
        "mac_os"
      ],
      "allow_sms_mms_clients": [
        "mac_os"
      ],
      "enable": true,
      "locked": true,
      "locked_by": "site",
      "modified": true
    }
  },
  "site_admin": true,
  "site_id": "8f71O6rWT8KFUGQmJIFAdQ",
  "status": "activate"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Invalid user id. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `1001` <br> User does not exist: {userId}. <br> **Error Code:** `2001` <br> Account does not exist. <br> **Error Code:** `404` <br> Site does not exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update a user's profile

  • Method: PATCH
  • Path: /phone/users/{userId}
  • Tags: Users

Updates a user's Zoom Phone profile. For user-level apps, pass the me value instead of the userId parameter.

To add, update or remove the shared access members for voicemail and call recordings, use the Add/Update/Delete a user's shared access setting API.

Prerequisites:

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:write,phone:write:admin

Granular Scopes: phone:update:user,phone:update:user:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • emergency_address_id

    string — The emergency address ID.

  • extension_number

    string — The extension number of the user. The number must be complete (i.e. site number + short extension).

  • policy

    object — A list of the user's policies.

    • ad_hoc_call_recording

      object — A list of ad hoc call recording settings.

      • enable

        boolean — Whether the current extension can record and save calls to the cloud.

      • play_recording_beep_tone

        object

        • enable

          boolean — Whether to play a side tone beep for recorded users while recording. Only displayed when ad hoc call recording policy uses the new framework.

        • play_beep_member

          string, possible values: "allMember", "recordingSide" — The beep sides. It displays only when `enable` is true.

        • play_beep_time_interval

          integer, possible values: 5, 10, 15, 20, 25, 30, 60, 120 — The beep time interval in seconds. It displays only when `enable` is true.

        • play_beep_volume

          integer, possible values: 0, 20, 40, 60, 80, 100 — The volume of the side tone beep. It displays only when `enable` is set to `true`.

      • recording_start_prompt

        boolean — Whether a prompt plays to call participants when the recording has started.

      • recording_transcription

        boolean — Whether call recording transcription is enabled.

      • reset

        boolean — Whether the user's ad hoc recording reset option will use the phone site's settings.

    • audio_intercom

      object

      • enable

        boolean — If enabled, user can use audio intercom.

      • reset

        boolean — Whether the user's audio intercom reset option will use the phone site's settings.

    • auto_call_recording

      object — A list of the user's automatic call recording settings.

      • allow_stop_resume_recording

        boolean — Whether the stop of and resuming of automatic call recording is enabled.

      • disconnect_on_recording_failure

        boolean — Whether a call disconnects when there is an issue with automatic call recording and the call cannot reconnect after five seconds. This does **not** include emergency calls.

      • enable

        boolean — Whether automatic call recording is enabled.

      • inbound_audio_notification

        object

        • recording_explicit_consent

          boolean — Whether the **Press 1** option that provides recording consent for inbound call is enabled. <b>Note:</b> * If customers do not opt for an OP flag named `Enable Caller Based Consent Options`, the values of `recording_explicit_consent`, `inbound_audio_notification.recording_explicit_consent`, and `outbound_audio_notification.recording_explicit_consent` always remain consistent. * If customers do not opt for an OP flag named `Enable Caller Based Consent Options`, update both `inbound_audio_notification.recording_explicit_consent` and `outbound_audio_notification.recording_explicit_consent` with the same value.

        • recording_start_prompt

          boolean — Whether a prompt plays to call participants when the recording has started for inbound call is enabled. <b>Note:</b> * If customers do not opt for an OP flag named `Enable Caller Based Consent Options`, the values of `recording_start_prompt`, `inbound_audio_notification.recording_start_prompt`, and `outbound_audio_notification.recording_start_prompt` always remain consistent. * If customers who do not opt OP flag named `Enable Caller Based Consent Options`, update both `inbound_audio_notification.recording_start_prompt` and `outbound_audio_notification.recording_start_prompt` with the same value.

      • outbound_audio_notification

        object

        • recording_explicit_consent

          boolean — Whether the **Press 1** option that provides recording consent for outbound call is enabled. <b>Note:</b> * if customers who do not opt OP flag named `Enable Caller Based Consent Options`, the values of `recording_explicit_consent`, `inbound_audio_notification.recording_explicit_consent`, and `outbound_audio_notification.recording_explicit_consent` always remain consistent. * if customers who do not opt OP flag named `Enable Caller Based Consent Options`, update both `inbound_audio_notification.recording_explicit_consent` and `outbound_audio_notification.recording_explicit_consent` with the same value.

        • recording_start_prompt

          boolean — Whether a prompt plays to call participants when the recording has started for outbound call is enabled. <b>Note:</b> * If customers do not opt for an OP flag named `Enable Caller Based Consent Options`, the values of `recording_start_prompt`, `inbound_audio_notification.recording_start_prompt`, and `outbound_audio_notification.recording_start_prompt` always remain consistent. * If customers do not opt OP flag named `Enable Caller Based Consent Options`, update both `inbound_audio_notification.recording_start_prompt` and `outbound_audio_notification.recording_start_prompt` with the same value.

      • play_recording_beep_tone

        object

        • enable

          boolean — Whether to play a side tone beep for recorded users while recording. Only displayed when auto call recording policy uses the new framework.

        • play_beep_member

          string, possible values: "allMember", "recordingSide" — The beep sides. It displays only when `enable` is true.

        • play_beep_time_interval

          integer, possible values: 5, 10, 15, 20, 25, 30, 60, 120 — The beep time interval in seconds. It displays only when `enable` is true.

        • play_beep_volume

          integer, possible values: 0, 20, 40, 60, 80, 100 — The volume of the side tone beep. It displays only when `enable` is set to `true`.

      • recording_calls

        string, possible values: "inbound", "outbound", "both" — The type of calls automatically recorded: * `inbound` * `outbound` * `both`

      • recording_explicit_consent

        boolean — Whether press 1 to provide recording consent is enabled. <b>Deprecated:</b> This field will be deprecated in a future release. As an alternative, use the `inbound_audio_notification.recording_explicit_consent` and `outbound_audio_notification.recording_explicit_consent` to operate inbound and outbound prompt separately. <b>Note:</b> * If customers opt for an OP flag named `Enable Caller Based Consent Options`, the values of `recording_explicit_consent` and `inbound_audio_notification.recording_explicit_consent` will remain consistent. When the field is updated, the `inbound_audio_notification.recording_explicit_consent` will be also updated. * If customers do not opt for an OP flag named `Enable Caller Based Consent Options`, the values of `recording_explicit_consent`, `inbound_audio_notification.recording_explicit_consent`, and `outbound_audio_notification.recording_explicit_consent` always remain consistent. When the field is updated, the `inbound_audio_notification.recording_explicit_consent`, and `outbound_audio_notification.recording_explicit_consent` will be also updated.

      • recording_start_prompt

        boolean — Whether a prompt plays to call participants when the recording has started. <b>Deprecated:</b> This field will be deprecated in a future release. As an alternative, use the `inbound_audio_notification.recording_start_prompt` and `outbound_audio_notification.recording_start_prompt` to operate inbound and outbound prompt separately. <b>Note:</b> * if customers who opt OP flag named `Enable Caller Based Consent Options`, the values of `recording_start_prompt` and `inbound_audio_notification.recording_start_prompt` will remain consistent. When the field is updated, the `inbound_audio_notification.recording_start_prompt` will be also updated. * if customers who do not opt OP flag named `Enable Caller Based Consent Options`, the values of `recording_start_prompt`, `inbound_audio_notification.recording_start_prompt`, and `outbound_audio_notification.recording_start_prompt` always remain consistent. when the field is updated, the `inbound_audio_notification.recording_start_prompt`, and `outbound_audio_notification.recording_start_prompt` will be also updated.

      • recording_transcription

        boolean — Whether call recording transcription is enabled.

      • reset

        boolean — Whether the user's automatic call recording reset option will use the phone site's settings.

    • call_handling_forwarding_to_other_users

      object — Whether to allow user to forward calls to other numbers.

      • call_forwarding_type

        integer, possible values: 1, 2, 3, 4 — `1` - Low restriction (external numbers not allowed) `2` - Medium restriction (external numbers and external contacts not allowed) `3` - High restriction (external numbers, external contacts and internal extensions without inbound automatic call recording not allowed) `4` - No restriction

      • enable

        boolean

      • reset

        boolean — Whether the current settings will use the phone site's settings (applicable if the current settings are using the new policy framework).

    • call_overflow

      object

      • call_overflow_type

        integer, possible values: 1, 2, 3, 4 — `1` - Low restriction (external numbers not allowed) `2` - Medium restriction (external numbers and external contacts not allowed) `3` - High restriction (external numbers, external contacts and internal extensions without inbound automatic call recording not allowed) `4` - No restriction

      • enable

        boolean — Whether to allow user to forward calls to other numbers.

      • reset

        boolean — Whether the current settings will use the phone site's settings (applicable if the current settings are using the new policy framework).

    • call_park

      object

      • call_not_picked_up_action

        integer — The action when a parked call is not picked up. 100-Ring back to parker, 0-Forward to voicemail of the parker, 9-Disconnect, 50-Forward to another extension.

      • enable

        boolean — Whether to allow calls placed on hold to be resumed from another location using a retrieval code.

      • expiration_period

        integer, possible values: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60 — A time limit for parked calls, unit minutes. After the expiration period ends, the retrieval code is no longer valid and a new code will be generated.

      • forward_to_extension_id

        string — The extension ID.

    • call_transferring

      object

      • call_transferring_type

        integer, possible values: 1, 2, 3, 4 — 1-No restriction. 2-Medium restriction (external numbers and external contacts not allowed). 3-High restriction (external numbers, unrecorded external contacts, and internal extensions without inbound automatic recording not allowed). 4-Low restriction (external numbers not allowed).

      • enable

        boolean — Whether to allow the user to warm or blind transfer their calls. This does not apply to warm transfer on IP Phones except for Yealink.

      • reset

        boolean — Whether the current settings will use the phone site's settings (applicable if the current settings are using the new policy framework).

    • check_voicemails_over_phone

      object

      • enable

        boolean — If enabled, user can check voicemails over phone using a PIN code.

      • reset

        boolean — Whether the user's check voicemail over phone reset option will use the phone site's settings.

    • delegation

      boolean — Whether the user can use [call delegation](https://support.zoom.us/hc/en-us/articles/360032881731-Setting-up-call-delegation-shared-lines-appearance-).

    • e2e_encryption

      object

      • enable

        boolean — Whether to allow users to switch their calls to `End-to-End Encryption`. If users have the `Automatic Call Recording` turned on, they will not be able to use the `End-to-End Encryption`.

      • reset

        boolean — Whether the current settings will use the phone account's settings (applicable if the current settings are using the new policy framework).

    • elevate_to_meeting

      boolean — Whether the user can elevate their phone calls to a meeting.

    • emergency_address_management

      object

      • enable

        boolean — Whether to allow the current extension to manage its own emergency addresses.

      • prompt_default_address

        boolean — Whether to prompt the user to set or confirm a default address.

    • emergency_calls_to_psap

      boolean — When disabled, emergency calls placed by the user will not be delivered to the Public Safety Answering Point(PSAP), but still will be delivered to the Internal Safety Response Team based on the settings.

    • forwarding_to_external_numbers

      boolean — Whether to allow call forwarding to external numbers. Use the `call_handling_forwarding_to_other_users` instead.

    • hand_off_to_room

      object

      • enable

        boolean — Whether to allow users to send a call to a Zoom Room.

    • international_calling

      boolean — Whether the current extension can make international calls outside of their calling plan.

    • mobile_switch_to_carrier

      object

      • enable

        boolean — Whether to allow the user to switch from a Zoom Phone to their native carrier.

    • personal_audio_library

      object

      • allow_music_on_hold_customization

        boolean — Whether to allow the user to customize allow music on hold.

      • allow_voicemail_and_message_greeting_customization

        boolean — Whether to allow the user to customize voicemail and message greeting.

      • enable

        boolean — Whether to allow users to change their own audio library.

      • reset

        boolean — Whether the user's personal audio library reset option will use the phone site's settings.

    • select_outbound_caller_id

      object

      • allow_hide_outbound_caller_id

        boolean — Whether to allow the current extension to hide outbound caller id.

      • enable

        boolean — Whether to allow the current extension to change the outbound caller ID when placing calls.

    • shared_voicemail_notification_by_email

      object

      • enable

        boolean — If enabled, the user will receive email notification when there is a new shared voicemail.

      • reset

        boolean — Whether the user's share voicemail notification by email reset option will use the phone site's settings.

    • sms

      object

      • allow_copy

        boolean — This field allows users to copy messages.

      • allow_paste

        boolean — This field allows users to use the paste function to paste content (e.g. text or images) into SMS/MMS conversations.

      • enable

        boolean — Whether the user can send and receive messages.

      • international_sms

        boolean — Whether the user can send and receive international messages.

      • international_sms_countries

        array — The country which can send and receive international messages. The [country iso code](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries).

        Items:

        string

    • voicemail

      object

      • allow_delete

        boolean — This field allows the user to delete his own voicemail.

      • allow_download

        boolean — This field allows the user to download his own voicemail.

      • allow_transcription

        boolean — Whether to allow voicemail transcription.

      • allow_videomail

        boolean — Whether to allow users to access, share, download or delete the videomail.

      • enable

        boolean — Whether the current extension can access, receive, or share voicemail.

    • voicemail_access_members

      array — This field updates a voicemail setting. &lt;b&gt;Deprecated:&lt;/b&gt; we will completely deprecate this property in a future release. Use `Add/Update/Delete a user's shared access setting` API instead, with settingType 'voice-mail' to manage the voicemail access members.

      Items:

      • access_user_id

        string — The Zoom user ID to share the voicemail access permissions with.

      • allow_delete

        boolean — Whether the user has delete permissions. The default is **false**.

      • allow_download

        boolean — Whether the user has download permissions. The default is **false**.

      • allow_sharing

        boolean — Whether the user has permission to share. The default is **false**.

    • voicemail_notification_by_email

      object

      • enable

        boolean — If enabled, user will receive email notifications when there is a new voicemail from users, call queues, auto receptionists or shared line groups.

      • include_voicemail_file

        boolean — Whether to include voicemail file.

      • include_voicemail_transcription

        boolean — Whether to include voicemail transcription.

      • reset

        boolean — Whether the user's voicemail notification by email reset option will use the phone site's settings.

    • voicemail_transcription

      object

      • enable

        boolean — Whether to allow the user to access transcriptions of voicemails`.

      • reset

        boolean — Whether the user's voicemail transcription reset option will use the phone site's settings.

    • zoom_phone_on_desktop

      object — Allows users to use Zoom Phone on desktop clients (Mac OS, Windows, VDI client and Linux).

      • allow_calling_clients

        array — The clients in this list are allowed to make and receive calls.

        Items:

        string, possible values: "mac_os", "windows", "vdi_client", "linux" — The acceptable value is mac_os windows vdi_client linux.

      • allow_sms_mms_clients

        array — The clients in this list are allowed to use the SMS/MMS function.

        Items:

        string, possible values: "mac_os", "windows", "vdi_client", "linux" — The acceptable value is mac_os windows vdi_client linux.

      • enable

        boolean — Whether to allow users to use Zoom Phone on desktop clients (Mac OS, Windows, VDI clinet and Linux).

      • reset

        boolean — Whether the current settings use the phone account's settings if the current settings use the new policy framework.

    • zoom_phone_on_mobile

      object

      • allow_calling_clients

        array — The clients in this list are allowed to make and receive calls.

        Items:

        string, possible values: "ios", "android", "intune", "blackberry" — The acceptable value is ios android intune blackberry.

      • allow_calling_sms_mms

        boolean — Whether to allow Calling and SMS/MMS functions on Mobile.

      • allow_sms_mms_clients

        array — The clients in this list are allowed to use the SMS/MMS function.

        Items:

        string, possible values: "ios", "android", "intune", "blackberry" — The acceptable value is ios android intune blackberry.

      • enable

        boolean — Whether to allow user to use Zoom Phone on mobile clients (iOS, iPad OS and Android).

  • site_id

    string — The unique identifier of the [site](https://support.zoom.us/hc/en-us/articles/360020809672) where the user should be moved or assigned.

  • template_id

    string — The settings template ID. If the `site_id` field is set, look for the template site with the value of the `site_id` field. The template ID has precedence and the policy will be ignored even if the `policy` field is set.

Example:

{
  "emergency_address_id": "CCc8zYT1SN60i7uDMzDbXA",
  "extension_number": "1000123477",
  "policy": {
    "ad_hoc_call_recording": {
      "enable": true,
      "recording_start_prompt": true,
      "recording_transcription": true,
      "reset": true,
      "play_recording_beep_tone": {
        "enable": true,
        "play_beep_volume": 60,
        "play_beep_time_interval": 15,
        "play_beep_member": "allMember"
      }
    },
    "auto_call_recording": {
      "allow_stop_resume_recording": true,
      "disconnect_on_recording_failure": true,
      "enable": true,
      "recording_calls": "inbound",
      "recording_transcription": true,
      "play_recording_beep_tone": {
        "enable": true,
        "play_beep_volume": 60,
        "play_beep_time_interval": 15,
        "play_beep_member": "allMember"
      },
      "reset": true,
      "inbound_audio_notification": {
        "recording_start_prompt": true,
        "recording_explicit_consent": true
      },
      "outbound_audio_notification": {
        "recording_start_prompt": true,
        "recording_explicit_consent": true
      }
    },
    "call_overflow": {
      "call_overflow_type": 1,
      "enable": true,
      "reset": true
    },
    "call_park": {
      "call_not_picked_up_action": 50,
      "enable": true,
      "expiration_period": 10,
      "forward_to_extension_id": "CcrEGgmeQem1uyJsuIRKwA"
    },
    "call_transferring": {
      "call_transferring_type": 2,
      "enable": true,
      "reset": true
    },
    "delegation": true,
    "elevate_to_meeting": true,
    "emergency_address_management": {
      "enable": true,
      "prompt_default_address": true
    },
    "emergency_calls_to_psap": true,
    "call_handling_forwarding_to_other_users": {
      "enable": true,
      "call_forwarding_type": 1,
      "reset": true
    },
    "hand_off_to_room": {
      "enable": true
    },
    "international_calling": true,
    "mobile_switch_to_carrier": {
      "enable": true
    },
    "select_outbound_caller_id": {
      "enable": true,
      "allow_hide_outbound_caller_id": true
    },
    "sms": {
      "enable": true,
      "international_sms": true,
      "international_sms_countries": [
        "US"
      ],
      "allow_copy": true,
      "allow_paste": true
    },
    "voicemail": {
      "allow_delete": true,
      "allow_download": true,
      "allow_transcription": true,
      "allow_videomail": true,
      "enable": true
    },
    "voicemail_access_members": [
      {
        "access_user_id": "w0RChiauQeqRlv5fgxYULQ",
        "allow_delete": false,
        "allow_download": false,
        "allow_sharing": false
      }
    ],
    "zoom_phone_on_mobile": {
      "enable": true,
      "allow_calling_clients": [
        "ios"
      ],
      "allow_sms_mms_clients": [
        "ios"
      ]
    },
    "personal_audio_library": {
      "allow_music_on_hold_customization": true,
      "allow_voicemail_and_message_greeting_customization": true,
      "enable": true,
      "reset": true
    },
    "voicemail_transcription": {
      "enable": true,
      "reset": true
    },
    "voicemail_notification_by_email": {
      "include_voicemail_file": true,
      "include_voicemail_transcription": true,
      "enable": true,
      "reset": true
    },
    "shared_voicemail_notification_by_email": {
      "enable": true,
      "reset": true
    },
    "check_voicemails_over_phone": {
      "enable": true,
      "reset": true
    },
    "audio_intercom": {
      "enable": true,
      "reset": true
    },
    "e2e_encryption": {
      "enable": true,
      "reset": true
    },
    "zoom_phone_on_desktop": {
      "enable": true,
      "reset": true,
      "allow_calling_clients": [
        "mac_os"
      ],
      "allow_sms_mms_clients": [
        "mac_os"
      ]
    }
  },
  "site_id": "8f71O6rWT8KFUGQmJIFAdQ",
  "template_id": "Dv4YdINdTk+Z5RToadh5ug=="
}

Responses

Status: 204 **HTTP Status Code:** `204` Profile updated.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `13800` <br> You do not enable OP flag named 'Enable Caller Based Consent Options', use the same value to update 'inbound_audio_notification.recording_start_prompt' and 'outbound_audio_notification.recording_start_prompt'. <br> **Error Code:** `13800` <br> You do not enable OP flag named 'Enable Caller Based Consent Options', use the same value to update 'inbound_audio_notification.recording_explicit_consent' and 'outbound_audio_notification.recording_explicit_consent'. <br> **Error Code:** `300` <br> Invalid user id. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2001` <br> Account does not exist. <br> **Error Code:** `1001` <br> User does not exist: {userId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update user's calling plan

  • Method: PUT
  • Path: /phone/users/{userId}/calling_plans
  • Tags: Users

Switches the calling plans of a Zoom Phone user. For user-level apps, pass the me value instead of the userId parameter.

Prerequisites

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:write:admin,phone:write

Granular Scopes: phone:update:calling_plan,phone:update:calling_plan:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json

Example:

{
  "source_type": 100,
  "target_type": 200,
  "source_billing_subscription_id": "FT-SUBREF-21168178",
  "target_billing_subscription_id": "FT-SUBREF-21168178"
}

Responses

Status: 204 **HTTP Status Code:** `204` Calling plan updated successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `404` <br> User did not subscribe to the source plan. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `1001` <br> User does not exist:{userId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Assign calling plan to a user

  • Method: POST
  • Path: /phone/users/{userId}/calling_plans
  • Tags: Users

Assigns a calling plan to a Zoom Phone user. For user-level apps, pass the me value instead of the userId parameter.

Prerequisites

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:write,phone:write:admin

Granular Scopes: phone:write:calling_plan,phone:write:calling_plan:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • calling_plans

    array

    Items:

    • billing_account_id

      string — The billing account ID. If the user is located in India, this field is required.

    • billing_subscription_id

      string — The billing subscription ID. It displays when the account supports billing multiple subscriptions

    • type

      integer — The [type](https://developers.zoom.us/docs/api/references/phone-calling-plans/) of calling plan.

Example:

{
  "calling_plans": [
    {
      "type": 100,
      "billing_account_id": "3WWAEiEjTj2IQuyDiKMd_A",
      "billing_subscription_id": "FT-SUBREF-21168178"
    }
  ]
}

Responses

Status: 200 **HTTP Status code:** `200` Calling plan assigned successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Invalid user id. Invalid field. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `1001` <br> User does not exist:{userId}. <br> **Error Code:** `2001` <br> Account does not exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Unassign user's calling plan

  • Method: DELETE
  • Path: /phone/users/{userId}/calling_plans/{planType}
  • Tags: Users

Unassigns a Zoom Phone user's calling plan. For user-level apps, pass the me value instead of the userId parameter.

Prerequisites:

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:write,phone:write:admin

Granular Scopes: phone:delete:users_calling_plan,phone:delete:users_calling_plan:admin

Rate Limit Label: LIGHT

Responses

Status: 204 **HTTP Status Code:** `204` Calling plan unassigned successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Invalid user id. <br> **Error Code:** `400` <br> Invalid field. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `1001` <br> User does not exist:{userId}. <br> **Error Code:** `2001` <br> Account does not exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List users' phone numbers for a customized outbound caller ID

  • Method: GET
  • Path: /phone/users/{userId}/outbound_caller_id/customized_numbers
  • Tags: Users

Retrieves phone numbers that can be the user-level customized outbound caller ID.

Prerequisites:

  • A Business or Enterprise account
  • A Zoom Phone license.

Scopes: phone:read:admin,phone:read

Granular Scopes: phone:read:list_user_customized_number,phone:read:list_user_customized_number:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` Customized numbers for outbound caller ID listed successfully.
Content-Type: application/json
  • customize_numbers

    array

    Items:

    • customize_id

      string — The customization ID.

    • display_name

      string — The name of the phone number.

    • extension_id

      string — The extension ID.

    • extension_name

      string — The extension name.

    • extension_number

      string — The extension number.

    • extension_type

      string — The extension type.

    • incoming

      boolean — Whether the incoming policy is enabled for the phone number.

    • outgoing

      boolean — Whether the outgoing policy is enabled for the phone number.

    • phone_number

      string — The phone number in E164 format.

    • phone_number_id

      string — The ID of the phone number.

    • site

      object

  • next_page_token

    string — The next page token paginates through a large set of results. A next page token is returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • page_size

    integer — The number of records returned within a single API call for each page.

  • total_records

    integer — The total number of records returned.

Example:

{
  "customize_numbers": [
    {
      "customize_id": "8_RkKw9OQ42oYsXqJJjs4A",
      "phone_number_id": "55JUZPwERHuGttd_j4qBsQ",
      "phone_number": "+12055437350",
      "display_name": "test abc",
      "incoming": true,
      "outgoing": true,
      "extension_id": "HaSokHMCSeK8taMdv2vnXQ",
      "extension_type": "callQueue",
      "extension_number": "10001",
      "extension_name": "SJ CQ",
      "site": {
        "id": "8f71O6rWT8KFUGQmJIFAdQ",
        "name": "testSite"
      }
    }
  ],
  "next_page_token": "BJLYC6PABbAHdjwSkGVQeeR6B1juwHqj3G2",
  "page_size": 30,
  "total_records": 10
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> The next page token is invalid or expired. <br> **Error Code:** `300` <br> Invalid user id. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2001` <br> Account does not exist. <br> **Error Code:** `1001` <br> User does not exist:{userId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Add phone numbers for users' customized outbound caller ID

  • Method: POST
  • Path: /phone/users/{userId}/outbound_caller_id/customized_numbers
  • Tags: Users

Adds users' customized outbound caller ID phone numbers.

Prerequisites:

  • A Business or Enterprise account
  • A Zoom Phone license.

Scopes: phone:write:admin,phone:write

Granular Scopes: phone:write:user_customized_number,phone:write:user_customized_number:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • phone_number_ids

    array — The phone number IDs.

    Items:

    string

Example:

{
  "phone_number_ids": [
    "55JUZPwERHuGttd_j4qBsQ"
  ]
}

Responses

Status: 201 **HTTP Status Code:** `201` **Created** Customized caller ID numbers added successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Invalid user id. Account level settings cannot be managed until disable multiple sites. Site not exist. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2001` <br> Account does not exist. <br> **Error Code:** `1001` <br> User does not exist:{userId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Remove users' customized outbound caller ID phone numbers

  • Method: DELETE
  • Path: /phone/users/{userId}/outbound_caller_id/customized_numbers
  • Tags: Users

Removes the users' customized outbound caller ID phone numbers.

Prerequisites:

  • A Business or Enterprise account
  • A Zoom Phone license.

Scopes: phone:write:admin,phone:write

Granular Scopes: phone:delete:user_customized_number,phone:delete:user_customized_number:admin

Rate Limit Label: Light

Responses

Status: 204 **HTTP Status Code:** `204` **Created** Customized numbers have been deleted successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Validation Failed. Site does not exist.<br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get user policy details

  • Method: GET
  • Path: /phone/users/{userId}/policies/{policyType}
  • Tags: Users

Returns the user policy details.

Prerequisites

  • Pro or higher account plan with Zoom phone license

Scopes: phone:read:admin

Granular Scopes: phone:read:user_policy:admin

Rate Limit Label: MEDIUM

Responses

Status: 200 **HTTP Status Code:** `200` **OK** Get user policy details successfully.
Content-Type: application/json

One of:

  • allow_emergency_calls

    object — The user-level settings for whether emergency calls are allowed for users and from specific device types.

    • allow_emergency_calls_from_clients

      boolean — Whether users are allowed to make emergency calls from zoom clients.

    • allow_emergency_calls_from_deskphones

      boolean — Whether users are allowed to make emergency calls from desk phones.

    • enable

      boolean — Whether users are allowed to make emergency calls.

    • locked

      boolean — Whether this setting is locked by the account administrator and cannot be overridden.

    • locked_by

      string, possible values: "invalid", "account", "user_group", "site" — This field specifies the configuration level that has enforced the lock. This indicates where the setting was originally locked and cannot be overridden.

    • modified

      boolean — Whether the current settings have been changed from the inherited defaults. If true, the settings can be reset. Applicable only when using the new policy framework.

Example:

{
  "allow_emergency_calls": {
    "enable": true,
    "locked": true,
    "locked_by": "account",
    "modified": true,
    "allow_emergency_calls_from_clients": true,
    "allow_emergency_calls_from_deskphones": true
  }
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Invalid value for parameter 'policyType'. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2001` <br> Account does not exist. <br> **Error Code:** `1001` <br> User does not exist: {userId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update user policy

  • Method: PATCH
  • Path: /phone/users/{userId}/policies/{policyType}
  • Tags: Users

Updates a user's Zoom Phone policy.

Prerequisites

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:write:admin

Granular Scopes: phone:update:user_policy:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json

One of:

  • allow_emergency_calls

    object — The user-level settings for whether emergency calls are allowed for users and from specific device types.

    • allow_emergency_calls_from_clients

      boolean — Whether users are allowed to make emergency calls from Zoom clients.

    • allow_emergency_calls_from_deskphones

      boolean — Whether users are allowed to make emergency calls from desk phones.

    • enable

      boolean — Whether users are allowed to make emergency calls.

    • reset

      boolean — Whether the current settings should be reset to inherit from higher-level configurations. Only applicable when the new policy framework is in use.

Example:

{
  "allow_emergency_calls": {
    "enable": true,
    "reset": true,
    "allow_emergency_calls_from_clients": true,
    "allow_emergency_calls_from_deskphones": true
  }
}

Responses

Status: 204 **HTTP Status Code:** `204` User policy updated.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Invalid value for parameter 'policyType'. <br> **Error Code:** `400` <br> Reset cannot be combined with other operations. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2001` <br> Account does not exist. <br> **Error Code:** `1001` <br> User does not exist: {userId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get a user's profile settings

  • Method: GET
  • Path: /phone/users/{userId}/settings
  • Tags: Users

Returns the Zoom Phone profile settings of a user. For user-level apps, pass the me value instead of the userId parameter.

Prerequisites

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:read,phone:read:admin

Granular Scopes: phone:read:user_setting:admin,phone:read:user_setting

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` User Setting object returned.
Content-Type: application/json
  • ad_hoc_call_recording_access_members

    array — The shared ad hoc call recording access member list. &lt;b&gt;Deprecated&lt;/b&gt;, we will completely deprecate this property in a future release. Instead use policy.ad_hoc_call_recording_access_members property from 'Get a user's profile' API.

    Items:

    All of:

    • access_user_id

      string — The Zoom user ID to share the access permissions with.

    • allow_delete

      boolean — This field specifies whether the user has delete permissions. The default is **false**.

    • allow_download

      boolean — This field specifies whether the user has download permissions. The default is **false**.

    • shared_id

      string — The unique identifier of the shared sub-setting that the user can access.

  • area_code

    string — The area code of user.

  • audio_prompt_language

    string — The audio prompt language code. American English: `en-US` British English: `en-GB` Espa&ntilde;ol americano: `es-US` Fran&ccedil;ais canadien: `fr-CA` Dansk: `da-DK` Deutsch: `de-DE` Espa&ntilde;ol: `es-ES` Fran&ccedil;ais: `fr-FR` Italiano: `it-IT` Nederlands: `nl-NL` Portugues portugal: `pt-PT` Japanese: `ja-JP` Korean: `ko-KO` Portugues brasil: `pt-BR` Chinese: `zh-CN` Taiwanese: `zh-TW`

  • auto_call_recording_access_members

    array — The shared automatic call recording access member list. &lt;b&gt;Deprecated&lt;/b&gt;, we will completely deprecate this property in a future release. Instead use policy.auto_call_recording_access_members property from 'Get a user's profile' API.

    Items:

    All of:

    • access_user_id

      string — The Zoom user ID to share the access permissions with.

    • allow_delete

      boolean — This field specifies whether the user has delete permissions. The default is **false**.

    • allow_download

      boolean — This field specifies whether the user has download permissions. The default is **false**.

    • shared_id

      string — The unique identifier of the shared sub-setting that the user can access.

  • company_number

    string — The [company number](https://support.zoom.us/hc/en-us/articles/360028553691) can be used by external callers to reach your phone users (by dialing the main company number and the user's extension). It can also be used by phone users as their caller ID when making calls.

  • country

    object — The site's country.

  • delegation

    object — The user delegation.

    • assistants

      array — The delegation assistants.

      Items:

      • display_name

        string — The display name.

      • extension_id

        string — The extension's ID.

      • extension_number

        integer, format: int64 — The extension's number.

      • extension_type

        string — The extension's type: `user` or `commonArea`.

      • id

        string — The user or common area ID.

    • locked

      boolean — Whether to allow users to access to the feature of delegation.

    • privacy

      boolean — Whether to allow members to prevent others from picking up a held call, and listening, whispering, barging, or taking over a call if it's configured.

    • privileges

      array, possible values: 1, 2, 3, 4, 5, 6, 7 — The delegation privileges. 1-Place Calls, 2-Answer Calls, 3-Pick Up Hold Calls, 4-Manage VIP Contacts, 5-Opt In/Out, 6-Join and Merge Calls, 7-Set Business Hours.

      Items:

      integer

  • desk_phone

    object — This field contains information on phones or devices provisioned for the user.

    • devices

      array — The information about the desk phones.

      Items:

      • device_type

        string — The device type, including the manufacturer and the model name.

      • display_name

        string — The display name of the device.

      • id

        string — The device ID.

      • mac_address

        string — The MAC address or serial number of the device.

      • policy

        object — The device policy.

        • call_control

          object

          • status

            string, possible values: "unsupported", "on", "off" — This field allows the call control feature to the current device. Configure the desk phone devices to enable call control, which allows users to perform desk phone's call control actions from the Zoom desktop client, including making and accepting calls. Options include: * `unsupported` * `on` * `off`

        • hot_desking

          object

          • status

            string, possible values: "unsupported", "on", "off" — This field allows the hot desking feature to the current device. It lets the guest user sign in to the desk phone. You can't use the desk phone until the guest user signs out. Options include: * `unsupported` * `on` * `off`

      • private_ip

        string — The private IP of the registered device.

      • public_ip

        string — The public IP of the registered device.

      • status

        string, possible values: "online", "offline" — The status of the device: `online` or `offline`.

    • keys_positions

      object

      • primary_number

        string — The primary number of the user.

    • phone_screen_lock

      boolean — After enabling this option, you can lock your desk phone screen. A PIN code is required to unlock your phone. This feature is not supported on some devices. See [Supported Device Types](https://support.zoom.us/hc/en-us/articles/360029698771) for more information.

    • pin_code

      string — The PIN code to be used to access voicemail, hot desking, and unlocking desk phones.

  • extension_number

    integer, format: int64 — The owner's extension number.

  • intercom

    object

    • audio_intercoms

      array — The extensions invited into the intercom relationship.

      Items:

      • device_id

        string — The device ID. Applicable when the extension level is `commonArea`.

      • device_status

        string, possible values: "online", "offline", "no device" — The status of the device. Applicable when the extension level is `commonArea`.

      • display_name

        string — The display's name.

      • extension_id

        string — The extension's ID.

      • extension_number

        string — The extension's number.

      • extension_type

        string — The extension's type: `user` or `commonArea`.

      • status

        string, possible values: "active", "pending" — The status of the extension: `active` or `pending`.

    • device

      object — The selected default device to which all your intercom calls will be routed.

      • id

        string — The device's ID.

      • name

        string — The device's name.

  • music_on_hold_id

    string — The music on hold ID. Options: empty char - default and `0` - disable

  • outbound_caller

    object — The information about the outbound caller.

    • number

      string — The outbound calling number.

  • outbound_caller_ids

    array

    Items:

    • is_default

      boolean — Whether the outbound caller ID is the default or not. If `true`, the outbound caller ID is the default caller ID.

    • name

      string — The outbound caller's name.

    • number

      string — The outbound caller's number.

  • shared_lines_call_setting

    object — The shared lines incoming call handling options.

    • shared_line_appearances

      object — The shared line appearances incoming call handling options.

      • executives

        array — The incoming call handling options for individual executives.

        Items:

        • allow_opt_out

          boolean — Whether the current user is allowed to opt in or out from receiving incoming calls for this executive. If false, the `receive_calls` field cannot be modified.

        • display_name

          string — The user display name of current executive.

        • receive_calls

          boolean — Whether receiving incoming calls for this executive. Default is **true**.

        • user_id

          string — The user ID of current executive.

    • shared_line_groups

      object — The shared line groups incoming call handling options.

      • receive_calls

        boolean — Whether receiving incoming calls for all of the shared line groups. Default is **true**.

      • shared_line_group

        array — The incoming call handling options for individual shared line group.

        Items:

        • display_name

          string — The display name of current shared line group..

        • receive_calls

          boolean — Whether receiving incoming calls for this shared line group. Default is **true**.

        • slg_id

          string — The unique identifier of the Shared Line Group.

  • status

    string, possible values: "Active", "Inactive" — The status of the user.

  • voice_mail

    array — The shared voicemail access member list. &lt;b&gt;Deprecated&lt;/b&gt;, we will completely deprecate this property in a future release. Instead use policy.voicemail_access_members property from 'Get a user's profile' API.

    Items:

    • access_user_id

      string — The member's ID in the shared voicemail access list determines the sharing or updating of access permissions. It must be the unique identifier of the user, or unique identifier of the common area depending on the access user type.

    • access_user_type

      string, possible values: "commonArea", "user" — The extension type of the member to be added in the shared voicemail access member list. Allowed: user | commonArea.

    • delete

      boolean — Whether the user has delete permissions. The default is **false**.

    • download

      boolean — Whether the user has download permissions. The default is **false**.

    • shared_id

      string — The unique identifier of the shared voicemail that the user can access.

Example:

{
  "area_code": "01",
  "audio_prompt_language": "en-US",
  "company_number": "+12058945640",
  "country": {
    "code": "US",
    "country_code": "1",
    "name": "United States"
  },
  "delegation": {
    "assistants": [
      {
        "display_name": "test user delegation",
        "extension_id": "CcrEGgmeQem1uyJsuIRKwA",
        "extension_number": 1000123477,
        "extension_type": "user",
        "id": "fWOgOALdT1ei4vjXK-QYsA"
      }
    ],
    "privacy": true,
    "privileges": 1,
    "locked": true
  },
  "desk_phone": {
    "devices": [
      {
        "device_type": "Yealink t42s",
        "display_name": "ApiTA_Device_2020_12_14_22_59_31_749",
        "id": "GHFnf5WQe-H-_r0Wwx9iQ",
        "policy": {
          "call_control": {
            "status": "off"
          },
          "hot_desking": {
            "status": "off"
          }
        },
        "status": "online",
        "mac_address": "203a07240534",
        "private_ip": "192.168.10.13",
        "public_ip": "220.148.231.126"
      }
    ],
    "keys_positions": {
      "primary_number": "+123456789"
    },
    "phone_screen_lock": true,
    "pin_code": "0995"
  },
  "extension_number": 1000001036,
  "music_on_hold_id": "NOZ98sQvTimYi0XxL_x-iQ",
  "outbound_caller": {
    "number": "+123456789"
  },
  "outbound_caller_ids": [
    {
      "is_default": true,
      "name": "Outbound caller name.",
      "number": "+2097392651"
    }
  ],
  "status": "Active",
  "voice_mail": [
    {
      "access_user_id": "w0RChiauQeqRlv5fgxYULQ",
      "access_user_type": "commonArea",
      "delete": true,
      "download": true,
      "shared_id": "--e8ugg0SeS-9clgrDkn2w"
    }
  ],
  "intercom": {
    "audio_intercoms": [
      {
        "extension_id": "52OdSKGSSS-EOyJwQncFvA",
        "extension_number": "1000001004",
        "extension_type": "user",
        "display_name": "test name",
        "status": "pending",
        "device_id": "GHFnf5WQe-H-_r0Wwx9iQ",
        "device_status": "offline"
      }
    ],
    "device": {
      "id": "JHwOJZ_PRICfVhQlL0x_ww",
      "name": "Sita's Phone"
    }
  },
  "auto_call_recording_access_members": [
    {
      "access_user_id": "w0RChiauQeqRlv5fgxYULQ",
      "allow_delete": false,
      "allow_download": false,
      "shared_id": "--e8ugg0SeS-9clgrDkn2w"
    }
  ],
  "ad_hoc_call_recording_access_members": [
    {
      "access_user_id": "w0RChiauQeqRlv5fgxYULQ",
      "allow_delete": false,
      "allow_download": false,
      "shared_id": "--e8ugg0SeS-9clgrDkn2w"
    }
  ],
  "shared_lines_call_setting": {
    "shared_line_appearances": {
      "executives": [
        {
          "user_id": "DJPrG46sQPmaMnzFrKecOw",
          "display_name": "John Doe",
          "receive_calls": true,
          "allow_opt_out": true
        }
      ]
    },
    "shared_line_groups": {
      "receive_calls": true,
      "shared_line_group": [
        {
          "slg_id": "RQinnFtmTJ25mx89tW5Cmw",
          "display_name": "jamieSLGTest0",
          "receive_calls": true
        }
      ]
    }
  }
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Invalid user id. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `1001` <br> User does not exist: {userId}. <br> **Error Code:** `2001` <br> Account does not exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update a user's profile settings

  • Method: PATCH
  • Path: /phone/users/{userId}/settings
  • Tags: Users

Updates the Zoom Phone profile settings of a user. For user-level apps, pass the me value instead of the userId parameter.

Prerequisites

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:write,phone:write:admin

Granular Scopes: phone:update:user_setting,phone:update:user_setting:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • area_code

    string — The user's area code.

  • audio_prompt_language

    string — The audio prompt language code. American English: `en-US` British English: `en-GB` Espa&ntilde;ol americano: `es-US` Fran&ccedil;ais canadien: `fr-CA` Dansk: `da-DK` Deutsch: `de-DE` Espa&ntilde;ol: `es-ES` Fran&ccedil;ais: `fr-FR` Italiano: `it-IT` Nederlands: `nl-NL` Portugues portugal: `pt-PT` Japanese: `ja-JP` Korean: `ko-KO` Portugues brasil: `pt-BR` Chinese: `zh-CN` Taiwanese: `zh-TW`

  • country_iso_code

    string — The [country ISO code](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries)

  • music_on_hold_id

    string — The music on hold prompt ID. Options: empty char - default and `0` - disable

  • outbound_caller_id

    string — The user's outbound caller ID phone number, in E164 format. If you hide the caller ID, set the value to an `empty string`

  • shared_lines_call_setting

    object — Whether handling incoming calls for this executive or modifying call settings, delegation privileges to opt in or out are required.

    • shared_line_appearances

      object — The shared line appearances incoming call handling options.

      • executives

        array — The incoming call handling options for individual executives.

        Items:

        • receive_calls

          boolean — Whether receiving incoming calls for this executive, modifying this setting requires opt in/out delegation privileges.

        • user_id

          string — The user ID of current executive.

    • shared_line_groups

      object — The shared line groups incoming call handling options.

      • receive_calls

        boolean — Whether receiving incoming calls for all of the shared line groups.

      • shared_line_group

        array — The incoming call handling options for individual shared line group.

        Items:

        • receive_calls

          boolean — Whether receiving incoming calls for this shared line group.

        • slg_id

          string — The unique identifier of the Shared Line Group.

Example:

{
  "area_code": "01",
  "audio_prompt_language": "en-US",
  "country_iso_code": "US",
  "music_on_hold_id": "NOZ98sQvTimYi0XxL_x-iQ",
  "outbound_caller_id": "+123123123",
  "shared_lines_call_setting": {
    "shared_line_appearances": {
      "executives": [
        {
          "user_id": "DJPrG46sQPmaMnzFrKecOw",
          "receive_calls": true
        }
      ]
    },
    "shared_line_groups": {
      "receive_calls": true,
      "shared_line_group": [
        {
          "slg_id": "RQinnFtmTJ25mx89tW5Cmw",
          "receive_calls": true
        }
      ]
    }
  }
}

Responses

Status: 204 **HTTP Status Code:** `204` User Setting updated.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Invalid user id. <br> **Error Code:** `400` <br> Outbound caller id has been locked. Do not allow hiding outbound caller id. Invalid outbound caller ID. <br> **Error Code:** `1151` <br> User {userId} cannot disable receiving incoming calls for executive {executiveUserId}. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `1001` <br> User does not exist: {userId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Add a user's shared access setting

  • Method: POST
  • Path: /phone/users/{userId}/settings/{settingType}
  • Tags: Users

Adds the user setting according to the setting type, specifically for delegation, intercom and shared access for voicemail, and call recordings. For user-level apps, pass the me value instead of the userId parameter.

To see the shared access settings in the Zoom web portal, go to Admin > Phone System Management > Users & Rooms . Choose Users and select User Policy. Go to Voicemail, Automatic Call Recording and Ad Hoc Call Recording.

To view the delegation and intercom setting in your Zoom web portal, navigate to Admin > Phone System Management > Users & Rooms. Choose the Users tab and select User Settings

Prerequisites:

  • A Business or Enterprise account

Scopes: phone:write:admin,phone:write

Granular Scopes: phone:write:shared_setting,phone:write:shared_setting:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • ad_hoc_call_recording_access_members

    array — The shared ad hoc call recording access member list.

    Items:

    • access_user_id

      string — The Zoom user ID to share access permissions.

    • allow_delete

      boolean — Whether the user has delete permissions. The default is **false**.

    • allow_download

      boolean — Whether the user has download permissions. The default is **false**.

  • auto_call_recording_access_members

    array — The shared automatic call recording access member list.

    Items:

    • access_user_id

      string — The Zoom user ID to share access permissions.

    • allow_delete

      boolean — Whether the user has delete permissions. The default is **false**.

    • allow_download

      boolean — Whether the user has download permissions. The default is **false**.

  • delegation_assistant_extension_id

    string — The extension ID of the delegation assistant: `user` or `common area`.

  • device_id

    string — The device ID.

  • voice_mail

    object — This field allows you to update the voicemail setting. &lt;b&gt;Deprecated:&lt;/b&gt; we will completely deprecate this property in a future release. Use property `voicemail_access_members` instead.

    • access_user_id

      string — The member's ID in the shared voicemail access list determines the sharing or updating of access permissions. It must be the unique identifier of the user, or the unique identifier of the common area, depending on the access user type.

    • access_user_type

      string, possible values: "commonArea", "user" — The extension type of the member to be added in the shared voicemail access member list. The default type will be user if empty. Allowed: user | commonArea.

    • delete

      boolean — Whether the user has delete permissions. The default is **false**.

    • download

      boolean — Whether the user has download permissions. The default is **false**.

  • voicemail_access_members

    array — The shared voicemail access member list.

    Items:

    • access_user_id

      string — The member's ID in the shared voicemail access list determines the sharing or updating of access permissions. It must be the unique identifier of the user, or the unique identifier of the common area, depending on the access user type.

    • access_user_type

      string, possible values: "commonArea", "user" — The extension type of the member to be added in the shared voicemail access member list. The default type will be user if empty. Allowed: user | commonArea.

    • allow_delete

      boolean — Whether the user has delete permissions. The default is **false**.

    • allow_download

      boolean — Whether the user has download permissions. The default is **false**.

    • allow_sharing

      boolean — Whether the user has permission to share. The default is **false**.

Example:

{
  "delegation_assistant_extension_id": "CcrEGgmeQem1uyJsuIRKwA",
  "device_id": "-GHFnf5WQe-H-_r0Wwx9iQ",
  "voice_mail": {
    "access_user_id": "w0RChiauQeqRlv5fgxYULQ",
    "access_user_type": "commonArea",
    "delete": true,
    "download": true
  },
  "voicemail_access_members": [
    {
      "access_user_id": "w0RChiauQeqRlv5fgxYULQ",
      "access_user_type": "commonArea",
      "allow_delete": false,
      "allow_download": false,
      "allow_sharing": false
    }
  ],
  "auto_call_recording_access_members": [
    {
      "access_user_id": "w0RChiauQeqRlv5fgxYULQ",
      "allow_delete": false,
      "allow_download": false
    }
  ],
  "ad_hoc_call_recording_access_members": [
    {
      "access_user_id": "w0RChiauQeqRlv5fgxYULQ",
      "allow_delete": false,
      "allow_download": false
    }
  ]
}

Responses

Status: 201 **HTTP Status Code** `201` Created Successfully.
Content-Type: application/json
  • ad_hoc_call_recording_access_members

    array — The shared ad hoc call recording access member list.

    Items:

    All of:

    • access_user_id

      string — The Zoom user ID to share access permissions.

    • allow_delete

      boolean — Whether the user has delete permissions. The default is **false**.

    • allow_download

      boolean — Whether the user has download permissions. The default is **false**.

    • shared_id

      string — The unique identifier of the shared sub-setting that the user can access.

  • auto_call_recording_access_members

    array — The shared automatic call recording access member list.

    Items:

    All of:

    • access_user_id

      string — The Zoom user ID to share access permissions.

    • allow_delete

      boolean — Whether the user has delete permissions. The default is **false**.

    • allow_download

      boolean — Whether the user has download permissions. The default is **false**.

    • shared_id

      string — The unique identifier of the shared sub-setting that the user can access.

  • delegation

    object — The user delegation.

    • assistants

      array — The delegation assistants.

      Items:

      • display_name

        string — The display name.

      • extension_id

        string — The extension ID.

      • extension_number

        integer, format: int64 — The extension number.

      • extension_type

        string — The extension type: `user` or `commonArea`.

      • id

        string — The user or common area ID.

    • privacy

      boolean — Whether to allow members to prevent others from picking up a held call, and listening, whispering, barging, or taking over a call if it's configured.

    • privileges

      array, possible values: 1, 2, 3 — The delegation privileges. 1-Place Calls, 2-Answer Calls, 3- Pick Up Hold Calls.

      Items:

      integer

  • voice_mail

    object — This field adds a voicemail setting. &lt;b&gt;Deprecated:&lt;/b&gt; we will completely deprecate this property in a future release. Use property `voicemail_access_members` instead.

    • access_user_id

      string — The member's ID in the shared voicemail access list determines the sharing or updating of access permissions. It must be the unique identifier of the user, or unique identifier of the common area depending on the access user type.

    • access_user_type

      string, possible values: "commonArea", "user" — The extension type of the member to be added in the shared voicemail access member list. Allowed: user | commonArea.

    • delete

      boolean — Whether the user has delete permissions. The default is **false**.

    • download

      boolean — Whether the user has download permissions. The default is **false**.

    • shared_id

      string — The unique identifier of the voicemail that the user can access.

  • voicemail_access_members

    array — The shared voicemail access member list.

    Items:

    All of:

    • access_user_id

      string — The member's ID in the shared voicemail access list determines the sharing or updating of access permissions. It must be the unique identifier of the user, or unique identifier of the common area depending on the access user type.

    • access_user_type

      string, possible values: "commonArea", "user" — The extension type of the member to be added in the shared voicemail access member list. Allowed: user | commonArea.

    • allow_delete

      boolean — Whether the user has delete permissions. The default is **false**.

    • allow_download

      boolean — Whether the user has download permissions. The default is **false**.

    • allow_sharing

      boolean — Whether the user has permission to share. The default is **false**.

    • shared_id

      string — The unique identifier of the shared sub-setting that the user can access.

Example:

{
  "delegation": {
    "assistants": [
      {
        "display_name": "test delegation assistants",
        "extension_id": "CcrEGgmeQem1uyJsuIRKwA",
        "extension_number": 1000001036,
        "extension_type": "user",
        "id": "w0RChiauQeqRlv5fgxYULQ"
      }
    ],
    "privacy": true,
    "privileges": 1
  },
  "voice_mail": {
    "access_user_id": "w0RChiauQeqRlv5fgxYULQ",
    "access_user_type": "commonArea",
    "delete": true,
    "download": true,
    "shared_id": "--e8ugg0SeS-9clgrDkn2w"
  },
  "voicemail_access_members": [
    {
      "access_user_id": "w0RChiauQeqRlv5fgxYULQ",
      "access_user_type": "commonArea",
      "allow_delete": false,
      "allow_download": false,
      "allow_sharing": false,
      "shared_id": "--e8ugg0SeS-9clgrDkn2w"
    }
  ],
  "auto_call_recording_access_members": [
    {
      "access_user_id": "w0RChiauQeqRlv5fgxYULQ",
      "allow_delete": false,
      "allow_download": false,
      "shared_id": "--e8ugg0SeS-9clgrDkn2w"
    }
  ],
  "ad_hoc_call_recording_access_members": [
    {
      "access_user_id": "w0RChiauQeqRlv5fgxYULQ",
      "allow_delete": false,
      "allow_download": false,
      "shared_id": "--e8ugg0SeS-9clgrDkn2w"
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Invalid user id. Invalid user sub-setting type. Voicemail has already been shared to the user. Delegation assistant is required. Delegation assistant is not a user or a common area. User delegation assistant does not exist: {delegation_assistant_extension_id}. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `1001` <br> User does not exist: {userId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Delete a user's shared access setting

  • Method: DELETE
  • Path: /phone/users/{userId}/settings/{settingType}
  • Tags: Users

Removes the user setting according to the setting type, specifically for delegation, intercom and shared access for voicemail and call recordings. For user-level apps, pass the me value instead of the userId parameter.

To see the shared access settings in the Zoom web portal, go to Admin > Phone System Management > Users & Rooms . Click Users and select User Policy. Go to Voicemail, Automatic Call Recording and Ad Hoc Call Recording.

To view the delegation and intercom setting in your Zoom web portal, navigate to Admin > Phone System Management > Users & Rooms. Click the Users tab and select User Settings

Prerequisites:

  • A Business or Enterprise account

Scopes: phone:write:admin,phone:write

Granular Scopes: phone:delete:shared_setting,phone:delete:shared_setting:admin

Rate Limit Label: Light

Responses

Status: 204 **HTTP Status Code:** `204` No Content
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Invalid user sub-setting type.<br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `1001` <br> User does not exist: {userId}.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update a user's shared access setting

  • Method: PATCH
  • Path: /phone/users/{userId}/settings/{settingType}
  • Tags: Users

Updates the user setting according to the setting type, specifically for delegation, intercom and shared access for voicemail and call recordings. For user-level apps, pass the me value instead of the userId parameter.

To see the shared access settings in the Zoom web portal, go to Admin > Phone System Management > Users & Rooms . Choose Users and select User Policy. Go to Voicemail, Automatic Call Recording and Ad Hoc Call Recording.

To view the delegation and intercom setting in your Zoom web portal, navigate to Admin > Phone System Management > Users & Rooms. Choose the Users tab and select User Settings

Prerequisites:

  • A Business or Enterprise account

Scopes: phone:write:admin,phone:write

Granular Scopes: phone:update:shared_setting,phone:update:shared_setting:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • ad_hoc_call_recording_access_members

    array — The shared ad hoc call recording access member list.

    Items:

    All of:

    • access_user_id

      string — The Zoom user ID to share the access permissions with.

    • allow_delete

      boolean — This field specifies whether the user has delete permissions. The default is **false**.

    • allow_download

      boolean — This field specifies whether the user has download permissions. The default is **false**.

    • shared_id

      string — The unique identifier of the shared sub-setting that the user can access.

  • auto_call_recording_access_members

    array — The shared automatic call recording access member list.

    Items:

    All of:

    • access_user_id

      string — The Zoom user ID to share the access permissions with.

    • allow_delete

      boolean — This field specifies whether the user has delete permissions. The default is **false**.

    • allow_download

      boolean — This field specifies whether the user has download permissions. The default is **false**.

    • shared_id

      string — The unique identifier of the shared sub-setting that the user can access.

  • delegation

    object — The user delegation.

    • locked

      boolean — Whether to allow users to access to the feature of delegation.

    • privacy

      boolean — Whether to allow members to prevent others from picking up a held call, and listening, whispering, barging, or taking over a call if it's configured.

    • privileges

      array, possible values: 1, 2, 3, 4, 5, 6, 7, 8 — The delegation privileges. 1-Place Calls, 2-Answer Calls, 3-Pick Up Hold Calls, 4-Manage VIP Contacts, 5-Opt In/Out, 6-Join and Merge Calls, 7-Set Business Hours, 8-Reply to SMS.

      Items:

      integer

  • desk_phone

    object — This field updates desk phone information.

    • devices

      array — The setting for the devices.

      Items:

      • id

        string — The device ID.

      • policy

        object — The device policy.

        • call_control

          object

          • status

            string, possible values: "on", "off" — This field allows call control features to the current device: configure the desk phone devices to mirror call control actions of the Zoom desktop client, including making and accepting calls. Options include: * `on` * `off`

        • hot_desking

          object

          • status

            string, possible values: "on", "off" — This field allows hot desking feature to the current device: letting the guest user sign in to the desk phone. You can't use the desk phone until the guest user signs out. Options include: * `on` * `off`

    • phone_screen_lock

      boolean — After enabling this option, you can lock your desk phone screen. PIN Code is required to unlock your phone. This feature is not supported on some devices. See [Supported Device Types](https://support.zoom.us/hc/en-us/articles/360029698771) for more information.

    • pin_code

      string — The PIN Code to access voicemail, hot desking, and unlocking desk phones.

  • intercom

    object — This field updates the intercom setting.

    • device_id

      string — The ID of the device to which all your intercom calls will be routed.

    • extension_id

      string — The ID of the extension that you want to invite intercom connection.

  • voice_mail

    object — This field updates the voicemail setting. &lt;b&gt;Deprecated:&lt;/b&gt; we will completely deprecate this property in a future release. Use property `voicemail_access_members` instead.

    • access_user_id

      string — The member's ID in the shared voicemail access list determines the sharing or updating of access permissions. It must be the unique identifier of the user, or unique identifier of the common area depending on the access user type.

    • access_user_type

      string, possible values: "commonArea", "user" — The extension type of the member to be added in the shared voicemail access member list. Allowed: user | commonArea.

    • delete

      boolean — Whether the user has delete permissions. The default is **false**.

    • download

      boolean — Wether the user has download permissions. The default is **false**.

    • shared_id

      string — This field specifies the ID of the voicemail.

  • voicemail_access_members

    array — The shared voicemail access member list.

    Items:

    All of:

    • access_user_id

      string — The member's ID in the shared voicemail access list determines the sharing or updating of access permissions. It must be the unique identifier of the user, or unique identifier of the common area depending on the access user type.

    • access_user_type

      string, possible values: "commonArea", "user" — The extension type of the member to be added in the shared voicemail access member list. Allowed: user | commonArea.

    • allow_delete

      boolean — Whether the user has delete permissions. The default is **false**.

    • allow_download

      boolean — Whether the user has download permissions. The default is **false**.

    • allow_sharing

      boolean — Whether the user has permission to share. The default is **false**.

    • shared_id

      string — The unique identifier of the shared sub-setting that the user can access.

Example:

{
  "delegation": {
    "privacy": true,
    "privileges": 1,
    "locked": true
  },
  "desk_phone": {
    "devices": [
      {
        "id": "-GHFnf5WQe-H-_r0Wwx9iQ",
        "policy": {
          "call_control": {
            "status": "off"
          },
          "hot_desking": {
            "status": "off"
          }
        }
      }
    ],
    "phone_screen_lock": true,
    "pin_code": "09912"
  },
  "voice_mail": {
    "access_user_id": "w0RChiauQeqRlv5fgxYULQ",
    "access_user_type": "commonArea",
    "delete": true,
    "download": true,
    "shared_id": "--e8ugg0SeS-9clgrDkn2w"
  },
  "intercom": {
    "extension_id": "JHwOJZ_PRICfVhQlL0x_ww",
    "device_id": "wG2kKqxyTJOCETmOpS5Kww"
  },
  "voicemail_access_members": [
    {
      "access_user_id": "w0RChiauQeqRlv5fgxYULQ",
      "access_user_type": "commonArea",
      "allow_delete": false,
      "allow_download": false,
      "allow_sharing": false,
      "shared_id": "--e8ugg0SeS-9clgrDkn2w"
    }
  ],
  "auto_call_recording_access_members": [
    {
      "access_user_id": "w0RChiauQeqRlv5fgxYULQ",
      "allow_delete": false,
      "allow_download": false,
      "shared_id": "--e8ugg0SeS-9clgrDkn2w"
    }
  ],
  "ad_hoc_call_recording_access_members": [
    {
      "access_user_id": "w0RChiauQeqRlv5fgxYULQ",
      "allow_delete": false,
      "allow_download": false,
      "shared_id": "--e8ugg0SeS-9clgrDkn2w"
    }
  ]
}

Responses

Status: 204 **HTTP Status Code:** `204` No Content
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Invalid user id. Invalid user setting Type: {settingType}. Delegation privileges error. Delegation privacy error. Delegation assistants do not exist. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `1001` <br> User does not exist: {userId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get user voicemail details from a call log

  • Method: GET
  • Path: /phone/users/{userId}/call_logs/{id}/voice_mail
  • Tags: Voicemails

Returns the detailed information on a voicemail associated with a call log ID.

For user-level apps, pass the me value instead of the userId parameter.

Prerequisites

  • User must belong to a Business or Enterprise account
  • User must have a Zoom Phone license

Scopes: phone:read,phone:read:admin,phone_voicemail:read,phone_voicemail:read:admin

Granular Scopes: phone:read:voicemail,phone:read:voicemail:admin

Rate Limit Label: LIGHT

Responses

Status: 200 The voicemail information.
Content-Type: application/json
  • call_element_id

    string — The phone call element's unique ID.

  • call_history_id

    string

  • call_id

    string — The phone call ID.

  • call_log_id

    string — The call log ID.

  • callee_account_code

    string — The callee's account code. To dial between accounts, use the format: [Account code] - [extension number].

  • callee_name

    string — The name of the callee.

  • callee_number

    string — The callee's phone number.

  • callee_number_type

    integer, possible values: 1, 2, 3 — The callee's number type: * `1` &mdash; Internal number. * `2` &mdash; External number. * `3` &mdash; Customized emergency number.

  • caller_account_code

    string — The caller's account code. To dial between accounts, use the format: [Account code] - [extension number].

  • caller_name

    string — The name of the caller.

  • caller_number

    string — The caller's phone number.

  • caller_number_type

    integer, possible values: 1, 2 — The caller's number type: * `1` &mdash; Internal number. * `2` &mdash; External number.

  • date_time

    string — The date the voicemail was created.

  • download_url

    string — The URL to download the voicemail. For security purposes, you must provide an OAuth access token in the auth header to download the voicemail file using this url. Example request: ``` curl --request GET \ --url {download_url} \ --header 'authorization: Bearer {access_token}' \ --header 'content-type: application/json' ```

  • duration

    integer — The duration of voicemail in seconds.

  • id

    string — The voicemail ID.

  • status

    string, possible values: "read", "unread" — The voicemail status: either 'read' or 'unread'.

  • transcription

    object — The voicemail transcript.

    • content

      string — The content of the voicemail transcript.

    • engine

      string — This field indicates the company that provides the transcription engine technology.

    • status

      integer, possible values: 0, 1, 2, 4, 5, 9, 11, 12, 13, 14, 409, 415, 422, 500, 601, 602, 603, 999 — The status of the voicemail transcript: * `0` &mdash; Transcript is not available. * `1` &mdash; Transcript is processing. * `2` &mdash; Transcript processed successfully. * `4` &mdash; Transcript is disabled. * `5` &mdash; Transcript is enabled. * `9` &mdash; Transcript web error. * `11` &mdash; Transcript download error. * `12` &mdash; Transcript upload error. * `13` &mdash; Transcript web database error. * `14` &mdash; Transcript BYOS (Bring Your Own Storage) upload error. * `409` &mdash; Transcript duplicate processing request error. * `415` &mdash; Transcript unsupported media error. * `422` &mdash; Transcript cannot be processed. * `500` &mdash; Transcript server error. * `601` &mdash; Transcript AISense after retry error. * `602` &mdash; Transcript AISense upload file error. * `603` &mdash; Transcript AISense download file error. * `999` &mdash; Transcript AISense error.

Example:

{
  "call_id": "876634343743",
  "call_element_id": "20210609-a297ae04-a875-4cfd-85ab-4adcead91edb",
  "callee_name": "Jane Doe",
  "callee_number": "34567889",
  "callee_number_type": 2,
  "caller_name": "John Doe",
  "caller_number": "12345678",
  "caller_number_type": 1,
  "date_time": "2019-05-19T20:00:00Z",
  "download_url": "exampleurl.io",
  "duration": 18,
  "id": "d43520fc6b7e4b26bbeef58a8a80f235",
  "status": "read",
  "transcription": {
    "content": "some transcript content",
    "status": 2,
    "engine": "otter"
  },
  "caller_account_code": "111",
  "callee_account_code": "222"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Invalid user id. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `404` <br> Voice mail does not exist: {0}. <br> **Error Code:** `1001` <br> User does not exist: {userId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get user's voicemails

  • Method: GET
  • Path: /phone/users/{userId}/voice_mails
  • Tags: Voicemails

Returns a user's Zoom Phone voicemails. For user-level apps, pass the me value instead of the userId parameter.

Prerequisites

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:read,phone:read:admin,phone_voicemail:read,phone_voicemail:read:admin

Granular Scopes: phone:read:list_voicemails,phone:read:list_voicemails:admin

Rate Limit Label: MEDIUM

Responses

Status: 200 **HTTP Status Code:** `200` User object returned.
Content-Type: application/json
  • from

    string, format: date — The start date of the query.

  • next_page_token

    string — The next page token paginates through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • page_count

    integer — The total number of pages.

  • page_size

    integer — The zize of each page.

  • to

    string, format: date — The end date.

  • total_records

    integer — The total number of records.

  • voice_mails

    array — The voicemails.

    Items:

    • call_element_id

      string — The phone call element's unique ID.

    • call_history_id

      string — The phone call history's unique ID.

    • call_id

      string — The phone call's unique ID.

    • call_log_id

      string — The phone call log's unique ID.

    • callee_account_code

      string — The callee's account code. To dial between accounts, use the format: [Account code] - [extension number].

    • callee_name

      string — The contact name of callee.

    • callee_number

      string — The number of the callee.

    • callee_number_type

      integer, possible values: 1, 2, 3 — The callee's number type: * `1` &mdash; Internal number. * `2` &mdash; External number. * `3` &mdash; Customized emergency number.

    • caller_account_code

      string — The caller's account code. To dial between accounts, use the format: [Account code] - [extension number].

    • caller_name

      string — The contact name of the caller.

    • caller_number

      string — The number of the caller.

    • caller_number_type

      integer, possible values: 1, 2 — The caller's number type: * `1` &mdash; Internal number. * `2` &mdash; External number.

    • date_time

      string — The time and date the voice mail started.

    • download_url

      string — The download URL of the attachment. For security purposes, you must provide an OAuth access token in the auth header to download the voicemail file using this URL. Example request: ``` curl --request GET \ --url {download_url} \ --header 'authorization: Bearer {access_token}' \ --header 'content-type: application/json' ```

    • duration

      integer — The duration of voicemail in seconds.

    • id

      string — The voicemail ID.

    • status

      string, possible values: "read", "unread" — The status of the voice mail. It can be either 'read' or 'unread'

Example:

{
  "from": "2021-05-19",
  "next_page_token": "VcXBknJ0MQ7kuXun5WKmSjHC1hOBGS2bbr2",
  "page_count": 10,
  "page_size": 15,
  "to": "2021-06-19",
  "total_records": 150,
  "voice_mails": [
    {
      "call_id": "876634343743",
      "call_element_id": "20210609-a297ae04-a875-4cfd-85ab-4adcead91edb",
      "callee_name": "Jane Doe",
      "callee_number": "34567889",
      "callee_number_type": 2,
      "caller_name": "John Doe",
      "caller_number": "12345678",
      "caller_number_type": 1,
      "date_time": "2019-05-19T20:00:00Z",
      "download_url": "exampleurl.io",
      "duration": 18,
      "id": "d43520fc6b7e4b26bbeef58a8a80f235",
      "status": "read",
      "caller_account_code": "111",
      "callee_account_code": "222"
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Invalid user id. <br> **Error Code:** `400` <br> The next page token is invalid or expired. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `1001` <br> User does not exist: {userId}. <br> **Error Code:** `2001` <br> Account does not exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get account voicemails

  • Method: GET
  • Path: /phone/voice_mails
  • Tags: Voicemails

Gets a user's Zoom Phone voicemails.

Prerequisites

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:read:admin,phone_voicemail:read:admin

Granular Scopes: phone:read:list_voicemails:admin

Rate Limit Label: HEAVY

Responses

Status: 200 **HTTP Status Code:** `200` User object returned.
Content-Type: application/json
  • from

    string, format: date — The start time and date of the query.

  • next_page_token

    string — The next page token paginates through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • page_count

    integer — The total number of pages.

  • page_size

    integer — The size of each page.

  • to

    string, format: date — The end time and date of the query.

  • total_records

    integer — The total number of records.

  • voice_mails

    array — The voicemails.

    Items:

    • call_element_id

      string — The phone call element's unique ID.

    • call_id

      string — The phone call's unique ID.

    • call_log_id

      string — The phone call log's unique ID.

    • callee_account_code

      string — The callee's account code. To dial between accounts, use the format: [Account code] - [extension number].

    • callee_name

      string — The contact name of the callee

    • callee_number

      string — The phone number of the callee (the one receiving the call)

    • callee_number_type

      integer, possible values: 1, 2, 3 — The callee's number type: * `1` — Internal number. * `2` — External number. * `3` — Customized emergency number.

    • caller_account_code

      string — The caller's account code. To dial between accounts, use the format: [Account code] - [extension number].

    • caller_name

      string — The contact name of the caller.

    • caller_number

      string — The phone number of the caller.

    • caller_number_type

      integer, possible values: 1, 2 — The caller's number type: * `1` — Internal number. * `2` — External number.

    • date_time

      string, format: date-time — The start time and date of the voicemail.

    • days_left_auto_permantely_delete

      integer — The number of days left until voicemail is permanently deleted. If the voicemail never auto deletes, the value is '-1'. It exists only when voicemail is from trash.

    • deleted_time

      string, format: date-time — The time and date the voicemail was deleted. It exists only when voicemail is from trash.

    • download_url

      string — The download URL of the attachment. For security purposes, you must provide an OAuth access token in the auth header to download the voicemail file using this URL. Example request: ``` curl --request GET \ --url {download_url} \ --header 'authorization: Bearer {access_token}' \ --header 'content-type: application/json' ```

    • duration

      integer — The duration of the voicemail. The unit of time is seconds.

    • id

      string — The voicemail ID.

    • owner

      object — The owner of the voicemail.

      • extension_deleted_time

        string — The date time the extension was deleted. It exists only when extension_status is `deleted`.

      • extension_number

        integer, format: int64 — The extension number associated with the call number.

      • extension_status

        string, possible values: "inactive", "deleted" — This field indicates the status of extension. * `inactive` * `deleted`.

      • id

        string — The owner's ID.

      • name

        string — The name of the owner.

      • type

        string, possible values: "user", "callQueue", "sharedLineGroup", "autoReceptionist", "commonArea" — The owner's type, can be `user`, `callQueue`, `sharedLineGroup`, `autoReceptionist`, or `sharedOffice`(deprecated and to be replaced by `commonArea`. During the transition period, if `sharedOffice` is provided as the `owner_type` parameter, `sharedOffice` is returned as a response. Conversely, if `commonArea` is provided, `commonArea` will be returned. If `null` is provided, `sharedOffice` will be returned temporarily, but it will be replaced by `commonArea` after the transition period).

    • soft_deleted_type

      string, possible values: "Manual", "Data Retention" — This field indicates how the voicemail was deleted. It exists only when voicemail is from trash.

    • status

      string, possible values: "read", "unread" — The status of the voicemail: 'read' or 'unread'.

Example:

{
  "from": "2021-05-19",
  "next_page_token": "VcXBknJ0MQ7kuXun5WKmSjHC1hOBGS2bbr2",
  "page_count": 10,
  "page_size": 15,
  "to": "2021-06-19",
  "total_records": 150,
  "voice_mails": [
    {
      "call_id": "876634343743",
      "call_log_id": "46541323465",
      "call_element_id": "20210609-a297ae04-a875-4cfd-85ab-4adcead91edb",
      "callee_name": "Jane Doe",
      "callee_number": "34567889",
      "callee_number_type": 2,
      "caller_name": "John Doe",
      "caller_number": "12345678",
      "caller_number_type": 1,
      "date_time": "2021-05-19T20:00:00Z",
      "download_url": "exampleurl.io",
      "duration": 18,
      "id": "d43520fc6b7e4b26bbeef58a8a80f235",
      "status": "read",
      "owner": {
        "extension_number": 1000123476,
        "id": "NL3cEpSdRc-c2t8aLoZqiw",
        "name": "user@test.com",
        "type": "user",
        "extension_status": "deleted",
        "extension_deleted_time": "2022-10-14T22:10:54Z"
      },
      "deleted_time": "2023-04-18T22:10:49.907Z",
      "days_left_auto_permantely_delete": 30,
      "soft_deleted_type": "Manual",
      "caller_account_code": "111",
      "callee_account_code": "222"
    }
  ]
}
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `124` <br> Account does not exist: {accountId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Download a phone voicemail

  • Method: GET
  • Path: /phone/voice_mails/download/{fileId}
  • Tags: Voicemails

Downloads the Zoom phone voicemail.

Prerequisites:

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:read,phone:read:admin,phone_voicemail:read,phone_voicemail:read:admin

Granular Scopes: phone:read:voicemail:admin,phone:read:voicemail

Rate Limit Label: MEDIUM

Responses

Status: 200 **HTTP Status Code:** `200` **OK**
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `404` <br> File does not exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get voicemail details

  • Method: GET
  • Path: /phone/voice_mails/{voicemailId}
  • Tags: Voicemails

Returns the information about a voicemail message.

Prerequisites

  • Zoom Phone license

Scopes: phone:read,phone:read:admin,phone_voicemail:read:admin,phone_voicemail:read

Granular Scopes: phone:read:voicemail,phone:read:voicemail:admin

Rate Limit Label: LIGHT

Responses

Status: 200 The voicemail information.
Content-Type: application/json
  • call_element_id

    string — The phone call element's unique ID.

  • call_history_id

    string — The phone call history's unique ID.

  • call_id

    string — The phone call's unique ID.

  • call_log_id

    string — The phone call log's unique ID.

  • callee_account_code

    string — The callee's account code. To dial between accounts, use the format: [Account code] - [extension number].

  • callee_name

    string — The name of the callee.

  • callee_number

    string — The callee's phone number.

  • callee_number_type

    integer, possible values: 1, 2, 3 — The callee's number type: * `1` — Internal number * `2` — External number * `3` — Customized emergency number

  • caller_account_code

    string — The caller's account code. To dial between accounts, use the format: [Account code] - [extension number].

  • caller_name

    string — The name of the caller.

  • caller_number

    string — The caller's phone number.

  • caller_number_type

    integer, possible values: 1, 2 — The caller's number type: * `1` — Internal number * `2` — External number

  • date_time

    string — The creation date of the voicemail.

  • days_left_auto_permantely_delete

    integer — The number of days left until voicemail is permanently deleted. If the voicemail never auto deletes, the value is `-1`. It exists only when voicemail is from trash.

  • deleted_time

    string, format: date-time — The deletion time and date of the voicemail. It exists only when voicemail is from trash.

  • download_url

    string — The URL to download the voicemail. For security purposes, you must provide an OAuth access token in the auth header to download the voicemail file using this url. Example request: ``` curl --request GET \ --url {download_url} \ --header 'authorization: Bearer {access_token}' \ --header 'content-type: application/json' ```

  • duration

    integer — The duration of voicemail in seconds.

  • id

    string — The voicemail ID.

  • intent_detect_status

    string, possible values: "not_started", "processing", "success", "ai_detection_failed", "unknown_reason_failed" — The current intent detection state of the voicemail: * `not_started` &mdash; AI detect was not started. * `processing` &mdash; processing. * `success` &mdash; success. * `ai_detection_failed` &mdash; failed, AI detection failed. * `unknown_reason_failed` &mdash; failed, unknown reason.

  • intent_results

    array — The matched intents of the voicemail

    Items:

    • confidence_score

      number — The confidence score of the intent detected by the AI to this current voicemail

    • intent_id

      string — The intent ID.

  • soft_deleted_type

    string, possible values: "Manual", "Data Retention" — This field indicates how the voicemail was deleted. It exists only when voicemail is from trash.

  • status

    string, possible values: "read", "unread" — The status of the voicemail. It can be either **read** or **unread**.

  • transcription

    object — The voicemail transcript.

    • content

      string — The content of the voicemail transcript.

    • engine

      string — This field indicates the company that provides the transcription engine technology.

    • status

      integer, possible values: 0, 1, 2, 4, 5, 9, 11, 12, 13, 14, 409, 415, 422, 500, 601, 602, 603, 999 — The status of the voicemail transcript: * `0` — Transcript is not available. * `1` — Transcript is processing. * `2` — Transcript processed successfully. * `4` — Transcript is disabled. * `5` — Transcript is enabled. * `9` — Transcript web error. * `11` — Transcript download error. * `12` — Transcript upload error. * `13` — Transcript web database error. * `14` — Transcript BYOS (Bring Your Own Storage) upload error. * `409` — Transcript duplicate processing request error. * `415` — Transcript unsupported media error. * `422` — Transcript cannot be processed. * `500` — Transcript server error. * `601` — Transcript AISense after retry error. * `602` — Transcript AISense upload file error. * `603` — Transcript AISense download file error. * `999` — Transcript AISense error.

  • voice_mail_task

    object

    • content

      string — The voicemail task extracted from the voicemail transcription.

    • feedback

      string, possible values: "none", "thumbs_up", "thumbs_down" — This field provides feedback on the voicemail task.

    • status

      string, possible values: "processing", "success", "no_task", "failure" — This field indicates the processing status of extracting task from the voicemail transcription. * `processing`: Indicates that the task extraction process is still ongoing. * `success`: Indicates that the task is successfully extracted from the voicemail transcription. * `no_task`: Indicates that no recognizable task is found in the voicemail transcription. * `failure`: Indicates that an error occurred during the task extraction transcription.

Example:

{
  "call_id": "876634343743",
  "call_element_id": "20210609-a297ae04-a875-4cfd-85ab-4adcead91edb",
  "callee_name": "Jane Doe",
  "callee_number": "34567889",
  "callee_number_type": 2,
  "caller_name": "John Doe",
  "caller_number": "12345678",
  "caller_number_type": 1,
  "date_time": "2021-05-19T20:00:00Z",
  "download_url": "exampleurl.io",
  "duration": 18,
  "id": "d43520fc6b7e4b26bbeef58a8a80f235",
  "status": "read",
  "transcription": {
    "content": "some transcript content",
    "status": 2,
    "engine": "otter"
  },
  "deleted_time": "2023-04-18T22:10:49.907Z",
  "days_left_auto_permantely_delete": 30,
  "soft_deleted_type": "Manual",
  "intent_detect_status": "success",
  "intent_results": [
    {
      "intent_id": "",
      "confidence_score": 1
    }
  ],
  "voice_mail_task": {
    "status": "success",
    "content": "Call back the caller at +12091112222 tomorrow.",
    "feedback": "thumbs_up"
  },
  "caller_account_code": "111",
  "callee_account_code": "222"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Voice mail does not exist: {voicemailId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Delete a voicemail

  • Method: DELETE
  • Path: /phone/voice_mails/{voicemailId}
  • Tags: Voicemails

Deletes an account's voicemail message.

Prerequisites:

  • A Zoom Phone license

Scopes: phone:write:admin,phone:write,phone_voicemail:write,phone_voicemail:write:admin

Granular Scopes: phone:delete:voicemail,phone:delete:voicemail:admin

Rate Limit Label: LIGHT

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Voicemail deleted.
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `124` <br> Account does not exist: {accountId}. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update Voicemail Read Status

  • Method: PATCH
  • Path: /phone/voice_mails/{voicemailId}
  • Tags: Voicemails

Updates the status of voicemail message.

Prerequisites:

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:write:admin,phone:write,phone_voicemail:write,phone_voicemail:write:admin

Granular Scopes: phone:update:voicemail,phone:update:voicemail:admin

Rate Limit Label: LIGHT

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Voicemail status updated.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> The read status is invalid.<br>Request failed because "Mark Voicemail as Unread" feature has not been enabled for this account.<br> <br> **Error Code:** `404` <br> Voice mail does not exist: {0}. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List Zoom Rooms under Zoom Phone license

  • Method: GET
  • Path: /phone/rooms
  • Tags: Zoom Rooms

Retrieves a list of Zoom Rooms under the account that has the Zoom Phone license assigned.Prerequisites: * A Pro or higher account plan * A Zoom Phone license

Scopes: phone:read:admin

Granular Scopes: phone:read:list_rooms:admin

Rate Limit Label: MEDIUM

Responses

Status: 200 **HTTP Status Code:** `200` **OK** Zoom Rooms retrieved successfully.
Content-Type: application/json
  • next_page_token

    string — The next page token paginates through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.

  • page_size

    integer, default: 30 — The number of records returned from a single API call.

  • rooms

    array

    Items:

    • calling_plans

      array

      Items:

      • billing_account_id

        string — The billing account ID. it's displayed when the zoom room is located in India.

      • billing_account_name

        string — The billing account name. It's displayed when the Zoom Room is located in India.

      • billing_subscription_id

        string — The billing subscription ID. It displays when the account supports billing multiple subscriptions

      • billing_subscription_name

        string — The billing subscription name. It displays when the account supports billing multiple subscriptions.Can be edited via the Billing page

      • name

        string — Name of the calling plan that Zoom Room is enrolled in.

      • type

        integer — The type of calling plan of which the Zoom Room is enrolled.

    • extension_id

      string — The extension ID.

    • extension_number

      integer, format: int64 — The extension number assigned to the Zoom Room's Zoom phone number.

    • id

      string — The unique Identifier of the Zoom Room.

    • name

      string — The name of the Zoom Room.

    • phone_numbers

      array

      Items:

      • id

        string — The ID for phone number.

      • number

        string — The phone number in E164 format.

    • site

      object

  • total_records

    integer — The total records found for this query.

Example:

{
  "next_page_token": "BJLYC6PABbAHdjwSkGVQeeR6B1juwHqj3G2",
  "page_size": 30,
  "rooms": [
    {
      "calling_plans": [
        {
          "name": "AU/NZ Metered",
          "type": 100,
          "billing_account_id": "3WWAEiEjTj2IQuyDiKMd_A",
          "billing_account_name": "Delhi billing",
          "billing_subscription_id": "FT-SUBREF-21168178",
          "billing_subscription_name": "My Subscription"
        }
      ],
      "extension_id": "_zQiBLNDQumOuA_tOnBIrw",
      "extension_number": 10010,
      "id": "3JTPXDqTQCuzYJEwH6kN4g",
      "name": "test",
      "phone_numbers": [
        {
          "id": "CMOXjhb7RHeVeiH0zL0f9A",
          "number": "12058945544"
        }
      ],
      "site": {
        "id": "kLD4F3WBT-O9LYE31C0tRQ",
        "name": "API DZ SITE3"
      }
    }
  ],
  "total_records": 1
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `403` <br> You do not have permission. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2001` <br> Account does not exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Add a Zoom Room to a Zoom Phone

  • Method: POST
  • Path: /phone/rooms
  • Tags: Zoom Rooms

Associates a Zoom Room with a Zoom Phone license.

Prerequisites

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:write:admin

Granular Scopes: phone:write:room:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json

Example:

{
  "id": "_zQiBLNDQumOuA_tOnBIrw",
  "site_id": "kLD4F3WBT-O9LYE31C0tRQ",
  "calling_plans": [
    {
      "type": 100,
      "billing_subscription_id": "FT-SUBREF-21168178"
    }
  ]
}

Responses

Status: 201 **HTTP Status code:** `201` Zoom Room added successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `404` <br> Unknown or invalid calling plan: {type}.<br> <br> **Error Code:** `404` <br> Room does not exist:{roomId}. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2001` <br> Account does not exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List Zoom Rooms without Zoom Phone assignment

  • Method: GET
  • Path: /phone/rooms/unassigned
  • Tags: Zoom Rooms

Returns Zoom Rooms that are not assigned a Zoom Phone.Prerequisites: * A Pro or higher account plan * A Zoom Phone license

Scopes: phone:read:admin

Granular Scopes: phone:read:list_rooms:admin

Rate Limit Label: Medium

Responses

Status: 200 **HTTP Status Code:** `200` **OK** Available Zoom Rooms retrieved successfully.
Content-Type: application/json
  • rooms

    array

    Items:

    • cost_center

      string — The cost center the Zoom Room belongs to.

    • department

      string — The department the Zoom Room belongs to.

    • display_name

      string — Name of the Zoom Room.

    • id

      string — The Zoom Room ID.

    • location_id

      string — The Zoom Room location ID.

    • location_info

      string — The Zoom Room location information.

Example:

{
  "rooms": [
    {
      "id": "_zQiBLNDQumOuA_tOnBIrw",
      "display_name": "room_1",
      "location_id": "3zEOmHchRaWCb7hx9XwROg",
      "location_info": "San Jose City,California State,Unite States Country/Region",
      "department": "pbx department",
      "cost_center": "pbx cost center"
    }
  ]
}
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `2001` <br> Account does not exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Get a Zoom Room under Zoom Phone license

  • Method: GET
  • Path: /phone/rooms/{roomId}
  • Tags: Zoom Rooms

Specifies Zoom Room in an account with an assigned Zoom Phone license.

Prerequisites

  • A Pro or higher account plan
  • A Zoom Phone license

Scopes: phone:read:admin

Granular Scopes: phone:read:room:admin

Rate Limit Label: LIGHT

Responses

Status: 200 **HTTP Status Code:** `200` **OK** Zoom Room retrieved successfully.
Content-Type: application/json
  • calling_plans

    array

    Items:

    • billing_account_id

      string — Billing account ID. Displayed when the zoom room is located in India.

    • billing_account_name

      string — Billing account name. Displayed when the zoom room is located in India.

    • billing_subscription_id

      string — The billing subscription ID. It displays when the account supports billing multiple subscriptions

    • billing_subscription_name

      string — The billing subscription name. It displays when the account supports billing multiple subscriptions.Can be edited via the Billing page

    • name

      string — Name of the calling plan that Zoom Room is enrolled in.

    • type

      integer — Type of calling plan that Zoom Room is enrolled in.

  • emergency_address

    object — The emergency location's address information.

    • address_line1

      string — The emergency location address line 1.

    • address_line2

      string — The emergency location address line 2.

    • city

      string — The emergency location address's city.

    • country

      string — Two-lettered country code (Aplha-2 code in ISO-3166 format).

    • id

      string — The emergency location address ID.

    • state_code

      string — The emergency location address's state code.

    • zip

      string — The emergency address zip code.

  • extension_id

    string — Extension ID.

  • extension_number

    integer, format: int64 — The extension number of the Zoom Room.

  • id

    string — Unique Identifier of the Zoom Room.

  • name

    string — Name of the Zoom Room.

  • phone_numbers

    array

    Items:

    • id

      string — ID for phone number.

    • number

      string — Phone number in E164 format.

  • policy

    object

    • international_calling

      object

      • enable

        boolean — Allow current extension to place international calls outside of the calling plan.

      • locked_by

        string, possible values: "invalid", "account", "user_group", "site", "extension" — Which level of administrator prohibits modifying the current settings.

    • select_outbound_caller_id

      object

      • enable

        boolean — Allow current extension to change outbound caller ID when placing calls.

      • locked_by

        string, possible values: "invalid", "account", "user_group", "site", "extension" — Which level of administrator prohibits modifying the current settings.

  • site

    object

Example:

{
  "calling_plans": [
    {
      "name": "AU/NZ Metered",
      "type": 100,
      "billing_account_id": "3WWAEiEjTj2IQuyDiKMd_A",
      "billing_account_name": "Delhi billing",
      "billing_subscription_id": "FT-SUBREF-21168178",
      "billing_subscription_name": "My Subscription"
    }
  ],
  "emergency_address": {
    "address_line1": "122",
    "address_line2": "122",
    "city": "12",
    "country": "SG",
    "id": "fXEdhQmSQheGaNuLYbm8Wg",
    "state_code": "123",
    "zip": "50383"
  },
  "extension_id": "_zQiBLNDQumOuA_tOnBIrw",
  "extension_number": 1233012,
  "id": "3JTPXDqTQCuzYJEwH6kN4g",
  "name": "test",
  "phone_numbers": [
    {
      "id": "6fTPXDwT2CuzYrwwH6sN4g",
      "number": "12058945544"
    }
  ],
  "policy": {
    "international_calling": {
      "enable": false,
      "locked_by": "site"
    },
    "select_outbound_caller_id": {
      "enable": false,
      "locked_by": "account"
    }
  },
  "site": {
    "id": "kLD4F3WBT-O9LYE31C0tRQ",
    "name": "API DZ SITE3"
  }
}
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Remove a Zoom Room from a ZP account

  • Method: DELETE
  • Path: /phone/rooms/{roomId}
  • Tags: Zoom Rooms

Use this API to remove Zoom Room from a Zoom Phone account.

Prerequisites:

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:write:admin

Granular Scopes: phone:delete:room:admin

Rate Limit Label: Light

Responses

Status: 204 **HTTP Status Code:** `204` Zoom Room removed successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `404` <br> Room does not exist:{roomId}.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Update a Zoom Room under Zoom Phone license

  • Method: PATCH
  • Path: /phone/rooms/{roomId}
  • Tags: Zoom Rooms

Use this API to update a Zoom Room in an account that has the Zoom Phone license assigned.

Prerequisites:

  • A Pro or higher account plan
  • A Zoom Phone license

Scopes: phone:write:admin

Granular Scopes: phone:update:room:admin

Rate Limit Label: Light

Request Body

Content-Type: application/json
  • extension_number

    integer, format: int64 — The extension number of the Zoom Room. The number must be complete (i.e. site number + short extension).

  • policy

    object

    • international_calling

      object

      • enable

        boolean — Allow current extension to place international calls outside of the calling plan.

      • reset

        boolean — Using site setting.

    • select_outbound_caller_id

      object

      • enable

        boolean — Allow current extension to change outbound caller ID when placing calls.

      • reset

        boolean — Using site setting.

  • site_id

    string — Unique identifier of the [site](https://support.zoom.us/hc/en-us/articles/360020809672-Managing-Multiple-Sites).

Example:

{
  "extension_number": 123487,
  "policy": {
    "international_calling": {
      "enable": true,
      "reset": true
    },
    "select_outbound_caller_id": {
      "enable": true,
      "reset": true
    }
  },
  "site_id": "kLD4F3WBT-O9LYE31C0tRQ"
}

Responses

Status: 204 **HTTP Status Code:** `204` **No Content** Zoom Room updated successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Extension number error. **Error Code:** `400` <br> Policy locked: {policy_key}. **Error Code:** `404` <br> Room does not exist:{roomId} Site does not exist.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Assign calling plans to a Zoom Room

  • Method: POST
  • Path: /phone/rooms/{roomId}/calling_plans
  • Tags: Zoom Rooms

Assigns calling plans to a Zoom Room with a maximum of 200 numbers at a time.

Prerequisites

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:write:admin

Granular Scopes: phone:write:room_calling_plan:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json

Example:

{
  "calling_plans": [
    {
      "type": 100,
      "billing_account_id": "3WWAEiEjTj2IQuyDiKMd_A",
      "billing_subscription_id": "FT-SUBREF-21168178"
    }
  ]
}

Responses

Status: 201 **HTTP Status code:** `201` Calling plan assigned successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Plan invalid. <br> **Error Code:** `404` <br> Room does not exist:{roomId}. <br> **Error Code:** `429` <br> Room batch operation is limited to 5 per request. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Remove a calling plan from a Zoom Room

  • Method: DELETE
  • Path: /phone/rooms/{roomId}/calling_plans/{type}
  • Tags: Zoom Rooms

Use this API to unassign a calling plan from a Zoom Room.

Prerequisites:

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:write:admin

Granular Scopes: phone:delete:room_calling_plan:admin

Rate Limit Label: Light

Responses

Status: 204 **HTTP Status Code:** `204` Calling plan removed successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Plan invalid. **Error Code:** `404` <br> Room does not exist:{roomId}.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Assign phone numbers to a Zoom Room

  • Method: POST
  • Path: /phone/rooms/{roomId}/phone_numbers
  • Tags: Zoom Rooms

Assigns phone numbers to a Zoom Room. Up to 200 numbers at a time.

Prerequisites:

  • A Business or Enterprise account
  • A Zoom Phone license

Scopes: phone:write:admin

Granular Scopes: phone:write:room_phone_number:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • phone_numbers

    array

    Items:

    • id

      string — ID for phone number

    • number

      string — Phone number in E164 format.

Example:

{
  "phone_numbers": [
    {
      "id": "---M1padRvSUtw7YihN7sA",
      "number": "12058945616"
    }
  ]
}

Responses

Status: 201 **HTTP Status Code:** `201` Phone number assigned successfully.
Content-Type: application/json

Example:

{}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `404` <br> Room does not exist:{roomId}. Phone number does not exist. <br> **Error Code:** `409` <br> Phone number already in use. This function requires a Zoom Phone Metered, Unlimited, or Pro plan. <br> **Error Code:** `429` <br> Room batch operation is limited to 5 per request. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

Remove a phone number from a Zoom Room

  • Method: DELETE
  • Path: /phone/rooms/{roomId}/phone_numbers/{phoneNumberId}
  • Tags: Zoom Rooms

Use this API to unassign a phone number from a Zoom Room.

Prerequisites:

  • A Business or Enterprise account
  • A Zoom Phone license
  • The Zoom Room must have been previously assigned a Zoom Phone number

Scopes: phone:write:admin

Granular Scopes: phone:delete:room_phone_number:admin

Rate Limit Label: Light

Responses

Status: 204 **HTTP Status Code:** `204` The phone number has been removed successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `404` <br> Room does not exist:{roomId}. Phone number does not exist.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).