Zoom Phone Accounts API

The Accounts API from Zoom Phone — 2 operation(s) for accounts.

Operations 4

GET /phone/account_settings List an account's Zoom Phone settings #
GET /phone/outbound_caller_id/customized_numbers List an account's customized outbound caller ID phone numbers #
POST /phone/outbound_caller_id/customized_numbers Add phone numbers for an account's customized outbound caller ID #
DELETE /phone/outbound_caller_id/customized_numbers Delete phone numbers for an account's customized outbound caller ID #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/zoom-phone-accounts-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

zoom-phone-accounts-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Phone Accounts API
  description: "You can access information from Zoom with Zoom Phone APIs to build private services or public applications on the [Zoom App Marketplace](https://marketplace.zoom.us/).\n\n  To learn how to get your credentials and create private or public applications, see Zoom APIs use [OAuth 2.0 authorization](https://developers.zoom.us/docs/integrations/oauth/). \n\n  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."
  termsOfService: https://zoom.us/docs/en-us/zoom_api_license_and_tou.html
  contact:
    name: Zoom Developers
    url: https://developer.zoom.us/
  version: '2'
servers:
- url: https://api.zoom.us/v2
tags:
- name: Accounts
paths:
  /phone/account_settings:
    get:
      tags:
      - Accounts
      summary: List an account's Zoom Phone settings
      description: "Returns an account's Zoom Phone settings.\n\n**Prerequisites:**\n* A Business or Enterprise account \n* A Zoom Phone license\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `phone:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `phone:read:list_account_settings:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`"
      operationId: listZoomPhoneAccountSettings
      parameters:
      - name: setting_types
        in: query
        description: 'The comma separated list of the setting items you want to fetch. Allowed values: `call_live_transcription`,`local_survivability_mode`,`external_calling_on_zoom_room_common_area`, `select_outbound_caller_id`, `personal_audio_library`, `voicemail`, `voicemail_transcription`, `voicemail_notification_by_email`, `shared_voicemail_notification_by_email`, `restricted_call_hours`, `allowed_call_locations`, `check_voicemails_over_phone`, `auto_call_recording`, `ad_hoc_call_recording`, `international_calling`, `outbound_calling`, `outbound_sms`, `sms`, `sms_etiquette_tool`, `zoom_phone_on_mobile`, `zoom_phone_on_pwa`, `e2e_encryption`, `call_handling_forwarding_to_other_users`, `call_overflow`, `call_transferring`, `elevate_to_meeting`, `call_park`, `hand_off_to_room`, `mobile_switch_to_carrier`, `delegation`, `audio_intercom`, `block_calls_without_caller_id`, `block_external_calls`,`call_queue_opt_out_reason`,`auto_delete_data_after_retention_duration`,`auto_call_from_third_party_apps`, `override_default_port`,`peer_to_peer_media`,`advanced_encryption`,`display_call_feedback_survey`,`block_list_for_inbound_calls_and_messaging`,`block_calls_as_threat`,`manage_call_routing_for_unassigned_numbers`.'
        required: false
        schema:
          type: string
          example: call_live_transcription
      responses:
        '200':
          description: "**HTTP Status Code:** `200`  \n \nAccount settings retrieved successfully."
          content:
            application/json:
              schema:
                type: object
                properties:
                  call_live_transcription:
                    type: object
                    description: Whether to let users turn on live transcriptions for a call.
                    allOf:
                    - type: object
                      properties:
                        enable:
                          type: boolean
                          example: true
                        locked:
                          type: boolean
                          description: Whether the senior administrator allows users to modify the current settings.
                          example: false
                        locked_by:
                          type: string
                          description: Which level of administrator prohibits the modification of the current settings.
                          example: account
                          enum:
                          - invalid
                          - account
                    - type: object
                      properties:
                        transcription_start_prompt:
                          type: object
                          properties:
                            enable:
                              type: boolean
                              example: true
                            audio_id:
                              type: string
                              description: The audio prompt file ID. If the audio was removed from the user's audio library, it is 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://developers.zoom.us/docs/api-reference/phone/methods#tag/Audio-Library/operation/GetAudioItem) API.
                              example: yCT14TwySDGVUypVlKNEyA
                            audio_name:
                              type: string
                              description: The audio prompt file name.
                              example: example.mp3
                          description: Whether to play a prompt to call participants when the transcription has started.
                  local_survivability_mode:
                    type: object
                    description: Whether to allow user or extension to have core phone services in the event of an outage.
                    allOf:
                    - type: object
                      properties:
                        enable:
                          type: boolean
                          example: true
                        locked:
                          type: boolean
                          description: Whether the senior administrator allows users to modify the current settings.
                          example: false
                        locked_by:
                          type: string
                          description: Which level of administrator prohibits the modification of the current settings.
                          example: account
                          enum:
                          - invalid
                          - account
                  external_calling_on_zoom_room_common_area:
                    type: object
                    description: Whether to allow Zoom Rooms to call external phone numbers based on the calling plans and other Zoom Phone policies.
                    allOf:
                    - type: object
                      properties:
                        enable:
                          type: boolean
                          example: true
                        locked:
                          type: boolean
                          description: Whether the senior administrator allows users to modify the current settings.
                          example: false
                        locked_by:
                          type: string
                          description: Which level of administrator prohibits the modification of the current settings.
                          example: account
                          enum:
                          - invalid
                          - account
                  select_outbound_caller_id:
                    type: object
                    description: Whether to allow extensions to change outbound caller ID when placing calls.
                    allOf:
                    - type: object
                      properties:
                        enable:
                          type: boolean
                          example: true
                        locked:
                          type: boolean
                          description: Whether the senior administrator allows users to modify the current settings.
                          example: false
                        locked_by:
                          type: string
                          description: Which level of administrator prohibits the modification of the current settings.
                          example: account
                          enum:
                          - invalid
                          - account
                    - type: object
                      properties:
                        allow_hide_outbound_caller_id:
                          type: boolean
                          description: Whether to allow extensions to hide outbound caller ID.
                          example: true
                  personal_audio_library:
                    type: object
                    allOf:
                    - type: object
                      properties:
                        enable:
                          type: boolean
                          example: true
                        locked:
                          type: boolean
                          description: Whether the senior administrator allows users to modify the current settings.
                          example: false
                        locked_by:
                          type: string
                          description: Which level of administrator prohibits the modification of the current settings.
                          example: account
                          enum:
                          - invalid
                          - account
                    - type: object
                      properties:
                        allow_music_on_hold_customization:
                          type: boolean
                          description: Whether to allow music on hold customization.
                          example: true
                        allow_voicemail_and_message_greeting_customization:
                          type: boolean
                          description: Whether to allow voicemail and message greeting customization.
                          example: true
                  voicemail:
                    type: object
                    allOf:
                    - type: object
                      properties:
                        enable:
                          type: boolean
                          example: true
                        locked:
                          type: boolean
                          description: Whether the senior administrator allows users to modify the current settings.
                          example: false
                        locked_by:
                          type: string
                          description: Which level of administrator prohibits the modification of the current settings.
                          example: account
                          enum:
                          - invalid
                          - account
                    - type: object
                      properties:
                        allow_videomail:
                          type: boolean
                          description: This field allows videomail
                          example: true
                        allow_download:
                          type: boolean
                          description: This field allows users to download their own voicemail or videomail.
                          example: false
                        allow_delete:
                          type: boolean
                          description: This field allows users to delete their own voicemail or videomail.
                          example: true
                        allow_share:
                          type: boolean
                          description: This field allows users to share their own voicemail.
                          example: true
                        allow_virtual_background:
                          type: boolean
                          description: This field allows virtual background for voicemail or videomail greeting
                          example: true
                  voicemail_transcription:
                    type: object
                    description: Whether to enable voicemail/videomail transcription feature for User, Auto Receptionist, Call Queue, and Shared Line Groups.
                    allOf:
                    - type: object
                      properties:
                        enable:
                          type: boolean
                          example: true
                        locked:
                          type: boolean
                          description: Whether the senior administrator allows users to modify the current settings.
                          example: false
                        locked_by:
                          type: string
                          description: Which level of administrator prohibits the modification of the current settings.
                          example: account
                          enum:
                          - invalid
                          - account
                  voicemail_notification_by_email:
                    type: object
                    description: Whether to enable voicemail or videomail transcription feature for User, Auto Receptionist, Call Queue, and Shared Line Groups.
                    allOf:
                    - type: object
                      properties:
                        enable:
                          type: boolean
                          example: true
                        locked:
                          type: boolean
                          description: Whether the senior administrator allows users to modify the current settings.
                          example: false
                        locked_by:
                          type: string
                          description: Which level of administrator prohibits the modification of the current settings.
                          example: account
                          enum:
                          - invalid
                          - account
                    - type: object
                      properties:
                        include_voicemail_file:
                          type: boolean
                          description: Whether to include the voicemail file.
                          example: true
                        include_voicemail_transcription:
                          type: boolean
                          description: Whether to include the voicemail transcription.
                          example: false
                        forward_voicemail_to_email:
                          type: boolean
                          description: Whether to forward the voicemail to email.
                          example: true
                  shared_voicemail_notification_by_email:
                    type: object
                    description: 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.
                    allOf:
                    - type: object
                      properties:
                        enable:
                          type: boolean
                          example: true
                        locked:
                          type: boolean
                          description: Whether the senior administrator allows users to modify the current settings.
                          example: false
                        locked_by:
                          type: string
                          description: Which level of administrator prohibits the modification of the current settings.
                          example: account
                          enum:
                          - invalid
                          - account
                  restricted_call_hours:
                    type: object
                    description: Once enabled, define when the extension or user cannot make or accept calls and send SMS.
                    allOf:
                    - type: object
                      properties:
                        enable:
                          type: boolean
                          example: true
                        locked:
                          type: boolean
                          description: Whether the senior administrator allows users to modify the current settings.
                          example: false
                        locked_by:
                          type: string
                          description: Which level of administrator prohibits the modification of the current settings.
                          example: account
                          enum:
                          - invalid
                          - account
                    - type: object
                      properties:
                        time_zone:
                          type: object
                          properties:
                            id:
                              type: string
                              description: The [time zone list](https://developer.zoom.us/docs/api-reference/other-references/abbreviation-lists/#timezones) for supported time zones and their formats.
                              example: America/Adak
                            name:
                              type: string
                              description: The time zone name. If time zone id is empty, it shows as `setByExtension`.
                              example: (GMT-9:00) Adak
                          description: This field sets either time zone `id` or `set_by_extension`.
                        restricted_hours_applied:
                          type: boolean
                          description: Whether restricted hours have been applied.
                          example: false
                        restricted_holiday_hours_applied:
                          type: boolean
                          description: Whether restricted holiday hours have been applied.
                          example: false
                        allow_internal_calls:
                          type: boolean
                          description: Whether to allow internal calls or SMS during restricted hours.
                          example: true
                  allowed_call_locations:
                    type: object
                    description: Once enabled, it defines where the extension or user can make and accept calls and send SMS.
                    allOf:
                    - type: object
                      properties:
                        enable:
                          type: boolean
                          example: true
                        locked:
                          type: boolean
                          description: Whether the senior administrator allows users to modify the current settings.
                          example: false
                        locked_by:
                          type: string
                          description: Which level of administrator prohibits the modification of the current settings.
                          example: account
                          enum:
                          - invalid
                          - account
                    - type: object
                      properties:
                        locations_applied:
                          type: boolean
                          description: Whether locations have been applied.
                          example: false
                        allow_internal_calls:
                          type: boolean
                          description: Whether to allow internal calls when outside of the allowed locations
                          example: true
                  check_voicemails_over_phone:
                    type: object
                    description: 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.
                    allOf:
                    - type: object
                      properties:
                        enable:
                          type: boolean
                          example: true
                        locked:
                          type: boolean
                          description: Whether the senior administrator allows users to modify the current settings.
                          example: false
                        locked_by:
                          type: string
                          description: Which level of administrator prohibits the modification of the current settings.
                          example: account
                          enum:
                          - invalid
                          - account
                  auto_call_recording:
                    type: object
                    description: Whether to allow automatic recording of all inbound and outbound calls.
                    allOf:
                    - type: object
                      properties:
                        enable:
                          type: boolean
                          example: true
                        locked:
                          type: boolean
                          description: Whether the senior administrator allows users to modify the current settings.
                          example: false
                        locked_by:
                          type: string
                          description: Which level of administrator prohibits the modification of the current settings.
                          example: account
                          enum:
                          - invalid
                          - account
                    - type: object
                      properties:
                        recording_calls:
                          type: string
                          description: "The type of calls automatically recorded: \n* `inbound` \n* `outbound` \n* `both`"
                          example: inbound
                          enum:
                          - inbound
                          - outbound
                          - both
                        recording_transcription:
                          type: boolean
                          description: Whether the call recording transcription is enabled.
                          example: true
                        recording_start_prompt:
                          type: boolean
                          description: "Whether a prompt plays to call participants when the recording has started.\n\n<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.\n\n<b>Note:</b> \n* 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.\n* 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."
                          example: true
                          deprecated: true
                        recording_start_prompt_audio_id:
                          type: string
                          description: "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.\n\n<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.\n\n<b>Note:</b> \n* 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.\n* 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."
                          example: ySMexBgBQsioV8KKCUybTA
                          deprecated: true
                        recording_explicit_consent:
                          type: boolean
                          description: "Whether the **Press 1** option that provides recording consent is enabled.\n\n<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.\n\n<b>Note:</b> \n* 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.\n* 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."
                          example: true
                          deprecated: true
                        allow_stop_resume_recording:
                          type: boolean
                          description: Whether the stop and resume of automatic call recording is enabled.
                          example: true
                        disconnect_on_recording_failure:
                          type: boolean
                          description: 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.
                          example: true
                        play_recording_beep_tone:
                          type: object
                          properties:
                            enable:
                              type: boolean
                              description: Whether to play a side tone beep for recorded users while recording.
                              example: true
                            play_beep_member:
                              type: string
                              description: 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.
                              example: allMembers
                              enum:
                              - allMembers
                              - recordingUser
                            play_beep_volume:
                              type: integer
                              description: The volume of the side tone beep. It displays only when `enable` is set to `true`.
                              example: 60
                              enum:
                              - 0
                              - 20
                              - 40
                              - 60
                              - 80
                              - 100
                            play_beep_time_interval:
                              type: integer
                              description: The beep time interval in seconds. It displays only when `enable` is true.
                              example: 15
                              enum:
                              - 5
                              - 10
                              - 15
                              - 20
                              - 25
                              - 30
                              - 60
                              - 120
                        inbound_audio_notification:
                          type: object
                          properties:
                            recording_start_prompt:
                              type: boolean
                              description: "Whether a prompt plays to call participants when the recording has started for inbound call is enabled.\n\n<b>Note:</b> \n* 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.\n* 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."
                              example: true
                            recording_start_prompt_audio_id:
                              type: string
                              description: "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.\n\n<b>Note:</b> \n* 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.\n* 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."
                              example: ySMexBgBQsioV8KKCUybTA
                            recording_explicit_consent:
                              type: boolean
                              description: "Whether the **Press 1** option that provides recording consent for inbound call is enabled.\n\n<b>Note:</b> \n* 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.\n* 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."
                              example: true
                        outbound_audio_notification:
                          type: object
                          properties:
                            recording_start_prompt:
                              type: boolean
                              description: "Whether a prompt plays to call participants when the recording has started for outbound call is enabled.\n\n<b>Note:</b> \n* 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.\n* If cus

# --- truncated at 32 KB (161 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/zoom-phone/refs/heads/main/openapi/zoom-phone-accounts-api-openapi.yml