Zoom Phone Groups API

The Groups API from Zoom Phone — 2 operation(s) for groups.

Operations 3

GET /phone/groups/{groupId}/policies/{policyType} Get group policy details #
PATCH /phone/groups/{groupId}/policies/{policyType} Update group policy #
GET /phone/groups/{groupId}/settings Get group phone settings #

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-groups-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-groups-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Phone Groups 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: Groups
paths:
  /phone/groups/{groupId}/policies/{policyType}:
    get:
      tags:
      - Groups
      summary: Get group policy details
      description: 'Returns the group policy details.


        **Prerequisites**

        Pro or higher account plan with Zoom phone license


        **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `phone:read:admin`


        **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `phone:read:group_policy:admin`


        **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`'
      operationId: GetGroupPolicyDetails
      parameters:
      - name: groupId
        in: path
        description: The user group ID.
        required: true
        schema:
          type: string
          example: ga7oLPx7ScWqGoAUxIFeOg
      - name: policyType
        in: path
        description: 'This field specifies the policy type to retrieve or modify. See the documentation for detailed behavior of each policy type.


          Supported values:

          - `allow_emergency_calls`: Controls whether emergency calls are allowed.'
        required: true
        schema:
          type: string
          example: allow_emergency_calls
          enum:
          - allow_emergency_calls
      responses:
        '200':
          description: '**HTTP Status Code:** `200` **OK**


            Get group policy details successfully.'
          content:
            application/json:
              schema:
                oneOf:
                - title: Allow Emergency Calls
                  type: object
                  properties:
                    allow_emergency_calls:
                      type: object
                      properties:
                        enable:
                          type: boolean
                          description: Whether users in this user group are allowed to make emergency calls.
                          example: true
                        locked:
                          type: boolean
                          description: Whether this setting is locked by the account administrator and cannot be overridden at lower levels (extension).
                          example: true
                        locked_by:
                          type: string
                          description: This field specifies the configuration level that has enforced the lock. This indicates where the setting was originally locked and cannot be overridden.
                          example: account
                          enum:
                          - invalid
                          - account
                          - user_group
                        modified:
                          type: boolean
                          description: 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: true
                        allow_emergency_calls_from_clients:
                          type: boolean
                          description: Whether users are allowed to make emergency calls from Zoom clients.
                          example: true
                        allow_emergency_calls_from_deskphones:
                          type: boolean
                          description: Whether users are allowed to make emergency calls from desk phones.
                          example: true
                      description: The group-level settings for whether emergency calls are allowed for users and from specific device types.
                  description: This field is returned only when `policyType` is `allow_emergency_calls`.
        '400':
          description: "**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `400` <br>\n Invalid value for parameter 'policyType'. <br>\n"
        '404':
          description: "**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `2040` <br>\n User group does not exist: {groupId}. <br>\n**Error Code:** `2001` <br>\n Account does not exist. <br>\n"
        '429':
          description: "**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "
      security:
      - openapi_oauth:
        - phone:read:admin
        - phone:read:group_policy:admin
        openapi_authorization: []
      x-extensions:
        x-permissions: []
        x-macro-scopes:
        - phone:read:admin
        x-granular-scopes:
        - phone:read:group_policy:admin
    patch:
      tags:
      - Groups
      summary: Update group policy
      description: "Updates the group policy.\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:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `phone:update:group_policy:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `HEAVY`"
      operationId: updateGroupPolicy
      parameters:
      - name: groupId
        in: path
        description: The user group ID.
        required: true
        schema:
          type: string
          example: ga7oLPx7ScWqGoAUxIFeOg
      - name: policyType
        in: path
        description: 'This field specifies the policy type to retrieve or modify. See the documentation for detailed behavior of each policy type.


          Supported values:

          - `allow_emergency_calls`: Controls whether emergency calls are allowed.'
        required: true
        schema:
          type: string
          example: allow_emergency_calls
          enum:
          - allow_emergency_calls
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
              - title: Allow Emergency Calls
                type: object
                properties:
                  allow_emergency_calls:
                    type: object
                    properties:
                      enable:
                        type: boolean
                        description: Whether users in this user group are allowed to make emergency calls.
                        example: true
                      locked:
                        type: boolean
                        description: Whether this setting is locked by the account administrator and cannot be overridden at lower levels (extension).
                        example: true
                      reset:
                        type: boolean
                        description: Whether the current settings should be reset to inherit from higher-level configurations. Only applicable when the new policy framework is in use.
                        example: true
                      allow_emergency_calls_from_clients:
                        type: boolean
                        description: Whether users are allowed to make emergency calls from Zoom clients.
                        example: true
                      allow_emergency_calls_from_deskphones:
                        type: boolean
                        description: Whether users are allowed to make emergency calls from desk phones.
                        example: true
                    description: The group-level settings for whether emergency calls are allowed for users and from specific device types.
                description: This field is supported only when `policyType` is `allow_emergency_calls`.
      responses:
        '204':
          description: "**HTTP Status Code:** `204`  \n \nSite policy updated."
        '400':
          description: "**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `400` <br>\n Invalid value for parameter 'policyType'. <br>\n**Error Code:** `400` <br>\n Lock and reset operations cannot be performed simultaneously. <br>\n**Error Code:** `400` <br>\n Reset cannot be combined with other operations. <br>\n"
        '404':
          description: "**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `2040` <br>\n User group does not exist: {groupId}. <br>\n**Error Code:** `2001` <br>\n Account does not exist. <br>\n"
        '429':
          description: "**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "
      security:
      - openapi_oauth:
        - phone:write:admin
        - phone:update:group_policy:admin
        openapi_authorization: []
      x-extensions:
        x-permissions: []
        x-macro-scopes:
        - phone:write:admin
        x-granular-scopes:
        - phone:update:group_policy:admin
  /phone/groups/{groupId}/settings:
    get:
      tags:
      - Groups
      summary: Get group phone settings
      description: "Returns group phone settings.\n\n**Prerequisites**\n Account must have a Pro or a higher plan with 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:group_setting:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`"
      operationId: getGroupPhoneSettings
      parameters:
      - name: groupId
        in: path
        description: "The group ID. \n\nIt can be retrieved from the [List groups](/docs/api/rest/reference/zoom-api/methods/#operation/groups) API."
        required: true
        schema:
          type: string
          example: ga7oLPx7ScWqGoAUxIFeOg
      - name: setting_types
        in: query
        description: "This setting corresponds to the setting item you want to modify. \n\nComma separated. \n\n**Allowed values**\n* `call_live_transcription`\n* `local_survivability_mode`\n* `select_outbound_caller_id`\n* `personal_audio_library`\n* `voicemail`\n* `voicemail_transcription`\n* `voicemail_notification_by_email`\n* `shared_voicemail_notification_by_email`\n* `restricted_call_hours`\n* `allowed_call_locations`\n* `check_voicemails_over_phone`, `connect_to_operator`\n* `auto_call_recording`\n* `ad_hoc_call_recording`\n* `outbound_calling`\n* `outbound_sms`\n* `international_calling`\n* `sms`\n* `zoom_phone_on_mobile`\n* `zoom_phone_on_pwa`\n* `sms_etiquette_tool`\n* `e2e_encryption`\n* `call_handling_forwarding`\n* `call_overflow`\n* `call_transferring`\n* `elevate_to_meeting`\n* `call_park`\n* `hand_off_to_room`\n* `mobile_switch_to_carrier`\n* `delegation`\n* `audio_intercom`\n* `block_list_for_inbound_calls_and_messaging`\n* `block_calls_without_caller_id`\n* `block_external_calls`\n* `peer_to_peer_media`\n* `advanced_encryption`\n* `display_call_feedback_survey`\n* `allow_emergency_calls`."
        required: false
        schema:
          type: string
          example: call_live_transcription,voicemail
      responses:
        '200':
          description: "**HTTP Status Code:** `200`  \n \nGroup settings retrieved successfully."
          content:
            application/json:
              schema:
                type: object
                properties:
                  call_live_transcription:
                    type: object
                    properties:
                      enable:
                        type: boolean
                        example: true
                      locked:
                        type: boolean
                        description: Whether the senior administrator allows users to modify the current settings.
                        example: true
                      locked_by:
                        type: string
                        description: Which level of administrator prohibits the modification of the current settings.
                        example: user_group
                        enum:
                        - invalid
                        - account
                        - user_group
                      modified:
                        type: boolean
                        description: Whether the current settings have been modified.
                        example: true
                      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 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.
                            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.
                    description: Whether to let users turn on live transcriptions for a call.
                  local_survivability_mode:
                    type: object
                    properties:
                      enable:
                        type: boolean
                        example: true
                      locked:
                        type: boolean
                        description: Whether the senior administrator allows users to modify the current settings.
                        example: true
                      locked_by:
                        type: string
                        description: Which level of administrator prohibits the modification of the current settings.
                        example: user_group
                        enum:
                        - invalid
                        - account
                        - user_group
                      modified:
                        type: boolean
                        description: Whether the current settings have been modified.
                        example: true
                    description: Whether to allow user or extension to have core phone services in the event of an outage.
                  select_outbound_caller_id:
                    type: object
                    properties:
                      enable:
                        type: boolean
                        description: Whether to allow extensions to change outbound caller ID when placing calls.
                        example: true
                      locked:
                        type: boolean
                        description: Whether the senior administrator allows users to modify the current settings.
                        example: true
                      locked_by:
                        type: string
                        description: Which level of administrator prohibits the modification of the current settings.
                        example: user_group
                        enum:
                        - invalid
                        - account
                        - user_group
                      modified:
                        type: boolean
                        description: Whether the current settings have been modified.
                        example: true
                      allow_hide_outbound_caller_id:
                        type: boolean
                        description: Whether to allow the current extension to hide outbound caller id. Settings is only available with client version 5.13.5 or later.
                        example: true
                  personal_audio_library:
                    type: object
                    properties:
                      enable:
                        type: boolean
                        description: Whether to allow users to change their own audio library.
                        example: true
                      locked:
                        type: boolean
                        description: Whether the senior administrator allows users to modify the current settings.
                        example: true
                      locked_by:
                        type: string
                        description: Which level of administrator prohibits the modification of the current settings.
                        example: user_group
                        enum:
                        - invalid
                        - account
                        - user_group
                      modified:
                        type: boolean
                        description: Whether the current settings have been modified.
                        example: true
                      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
                    properties:
                      enable:
                        type: boolean
                        description: Whether to allow users to access, receive or share voicemail and video mail.
                        example: true
                      locked:
                        type: boolean
                        description: Whether the senior administrator allows users to modify the current settings.
                        example: true
                      locked_by:
                        type: string
                        description: Which level of administrator prohibits the modification of the current settings.
                        example: user_group
                        enum:
                        - invalid
                        - account
                        - user_group
                      modified:
                        type: boolean
                        description: Whether the current settings have been modified.
                        example: true
                      allow_delete:
                        type: boolean
                        description: Whether to allow users to delete their own voicemail.
                        example: true
                      allow_download:
                        type: boolean
                        description: Whether to allow users to download their own voicemail.
                        example: false
                      allow_videomail:
                        type: boolean
                        description: Whether to allow users to access, share, download or delete video mail.
                        example: true
                      allow_share:
                        type: boolean
                        description: Whether to allow user to share their own voicemail.
                        example: false
                      allow_virtual_background:
                        type: boolean
                        description: Whether to allow virtual background for videomail or video greeting.
                        example: false
                  voicemail_transcription:
                    type: object
                    properties:
                      enable:
                        type: boolean
                        description: Whether to enable voicemail or videomail transcription feature for user, auto receptionist, call queue, and shared line groups.
                        example: true
                      locked:
                        type: boolean
                        description: Whether the senior administrator allows users to modify the current settings.
                        example: true
                      locked_by:
                        type: string
                        description: Which level of administrator prohibits the modification of the current settings.
                        example: user_group
                        enum:
                        - invalid
                        - account
                        - user_group
                      modified:
                        type: boolean
                        description: Whether the current settings have been modified.
                        example: true
                  voicemail_notification_by_email:
                    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
                      enable:
                        type: boolean
                        example: true
                      locked:
                        type: boolean
                        description: Whether the senior administrator allows users to modify the current settings.
                        example: true
                      locked_by:
                        type: string
                        description: Which level of administrator prohibits the modification of the current settings.
                        example: user_group
                        enum:
                        - invalid
                        - account
                        - user_group
                      modified:
                        type: boolean
                        description: Whether the current settings have been modified. If modified, they can be reset (displayed when using the new policy framework).
                        example: true
                    description: 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.
                  shared_voicemail_notification_by_email:
                    type: object
                    properties:
                      enable:
                        type: boolean
                        example: true
                      locked:
                        type: boolean
                        description: Whether the senior administrator allows users to modify the current settings.
                        example: true
                      locked_by:
                        type: string
                        description: Which level of administrator prohibits the modification of the current settings.
                        example: user_group
                        enum:
                        - invalid
                        - account
                        - user_group
                      modified:
                        type: boolean
                        description: "Whether the current settings have been modified. \n\nIf modified, they can be reset (displayed when using the new policy framework)."
                        example: true
                    description: "Once enabled, users receive email notification when there is a new shared voicemail or videomail. \n\nIf the extension that shares the voicemail or videomail has disabled the voicemail or videomail notification by email policy, then users do not receive notifications."
                  restricted_call_hours:
                    type: object
                    properties:
                      enable:
                        type: boolean
                        description: 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.
                        example: true
                      locked:
                        type: boolean
                        description: Whether the senior administrator allows users to modify the current settings.
                        example: true
                      locked_by:
                        type: string
                        description: Which level of administrator prohibits modifying the current settings.
                        example: user_group
                        enum:
                        - invalid
                        - account
                        - user_group
                      modified:
                        type: boolean
                        description: Whether the current settings have been modified. If modified, they can be reset (displayed when using the new policy framework).
                        example: true
                      time_zone:
                        type: object
                        properties:
                          id:
                            type: string
                            description: The [time zone list](https://marketplace.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: Sets either time zone `id` or `set_by_extension`.
                      restricted_hours_applied:
                        type: boolean
                        description: Whether restricted hours has been applied.
                        example: false
                      restricted_holiday_hours_applied:
                        type: boolean
                        description: Whether restricted holiday hours has been applied.
                        example: false
                      allow_internal_calls:
                        type: boolean
                        description: Whether to allow internal calls/SMS during restricted hours.
                        example: true
                  allowed_call_locations:
                    type: object
                    properties:
                      enable:
                        type: boolean
                        description: '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.'
                        example: true
                      locked:
                        type: boolean
                        description: Whether the senior administrator allows users to modify the current settings.
                        example: true
                      locked_by:
                        type: string
                        description: Which level of administrator prohibits modifying the current settings.
                        example: user_group
                        enum:
                        - invalid
                        - account
                        - user_group
                      modified:
                        type: boolean
                        description: Whether the current settings have been modified. If modified, they can be reset (displayed when using the new policy framework).
                        example: true
                      locations_applied:
                        type: boolean
                        description: Whether locations has been applied.
                        example: false
                      allow_internal_calls:
                        type: boolean
                        description: Whether to allow internal calls when outside of allowed locations.
                        example: true
                  check_voicemails_over_phone:
                    type: object
                    properties:
                      enable:
                        type: boolean
                        example: true
                      locked:
                        type: boolean
                        description: Whether the senior administrator allows users to modify the current settings.
                        example: true
                      locked_by:
                        type: string
                        description: Which level of administrator prohibits the modification of the current settings.
                        example: user_group
                        enum:
                        - invalid
                        - account
                        - user_group
                      modified:
                        type: boolean
                        description: Whether the current settings have been modified. If modified, they can be reset (displayed when using the new policy framework).
                        example: true
                    description: Once enabled, users can check voicemails over phone using a PIN code.
                  auto_call_recording:
                    type: object
                    properties:
                      enable:
                        type: boolean
                        description: Whether automatic call recording is enabled.
                        example: true
                      locked:
                        type: boolean
                        description: Whether the senior administrator allows users to modify the current settings.
                        example: true
                      locked_by:
                        type: string
                        description: Which level of administrator prohibits the modification of the current settings.
                        example: user_group
                        enum:
                        - invalid
                        - account
                        - user_group
                      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

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