Zoom Phone Audio Library API

The Audio Library API from Zoom Phone — 3 operation(s) for audio library.

Operations 6

GET /phone/audios/{audioId} Get an audio item #
DELETE /phone/audios/{audioId} Delete an audio item #
PATCH /phone/audios/{audioId} Update an audio item #
GET /phone/users/{userId}/audios List audio items #
POST /phone/users/{userId}/audios Add an audio item for text-to-speech conversion #
POST /phone/users/{userId}/audios/batch Add audio items #

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-audio-library-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-audio-library-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Phone Audio Library 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: Audio Library
paths:
  /phone/audios/{audioId}:
    get:
      tags:
      - Audio Library
      summary: Get an audio item
      description: "Returns an audio item. Only the admin or user can access your audio.\n\n**Prerequisites:**\n* Business or Education account\n* Zoom Phone license \n\n\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `phone:read`,`phone:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `phone:read:audio`,`phone:read:audio:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`"
      operationId: GetAudioItem
      parameters:
      - name: audioId
        in: path
        description: The unique identifier of the audio item.
        required: true
        schema:
          type: string
          example: yCT14TwySDGVUypVlKNEyA
      responses:
        '200':
          description: '**HTTP Status Code:** `200` **OK**Successfully listed an audio item.'
          content:
            application/json:
              schema:
                type: object
                properties:
                  audio_id:
                    type: string
                    description: The unique identifier of the audio item.
                    example: yCT14TwySDGVUypVlKNEyA
                  name:
                    type: string
                    description: The name of the audio item.
                    example: hello.mp3
                  play_url:
                    type: string
                    description: The URL of the audio file. (The URL is valid for 6 hours.)
                    example: 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:
                    type: string
                    description: The message to play. The maximum message length is 3000.
                    example: hello
                  voice_language:
                    type: string
                    description: 'The audio voice language. The language and its code mappings, such as:  `American English`-`en-US`, or  `British English`-`en-GB`.'
                    example: en-US
                    enum:
                    - 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
                  voice_accent:
                    type: string
                    description: The accent of the audio file, such as `Joanna-Female` or `Joey-Male`.
                    example: Joanna-Female
        '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
        - phone:read:admin
        - phone:read:audio
        - phone:read:audio:admin
        openapi_authorization: []
      x-extensions:
        x-permissions: []
        x-macro-scopes:
        - phone:read
        - phone:read:admin
        x-granular-scopes:
        - phone:read:audio
        - phone:read:audio:admin
    delete:
      tags:
      - Audio Library
      summary: Delete an audio item
      description: "Deletes an audio item. Only the admin or user can delete your audio.\n\n**Prerequisites:**\n* Business, or Education account\n* Zoom Phone license \n\n\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `phone:write`,`phone:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `phone:delete:audio`,`phone:delete:audio:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`"
      operationId: DeleteAudioItem
      parameters:
      - name: audioId
        in: path
        description: Unique identifier of the audio item.
        required: true
        schema:
          type: string
          example: yCT14TwySDGVUypVlKNEyA
      responses:
        '204':
          description: '**HTTP Status Code:** `204` **No Content**



            Successfully deleted an audio item'
        '400':
          description: "**HTTP Status Code:** `400` <br>\n Bad Request \n\n **Error Code:** `300` <br>\n  <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
        - phone:write:admin
        - phone:delete:audio
        - phone:delete:audio:admin
        openapi_authorization: []
      x-extensions:
        x-permissions: []
        x-macro-scopes:
        - phone:write
        - phone:write:admin
        x-granular-scopes:
        - phone:delete:audio
        - phone:delete:audio:admin
    patch:
      tags:
      - Audio Library
      summary: Update an audio item
      description: "Updates an audio item. Only the admin or user can update your audio.\n\n**Prerequisites:**\n* Business or Education account\n* Zoom Phone license \n\n\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `phone:write`,`phone:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `phone:update:audio`,`phone:update:audio:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`"
      operationId: UpdateAudioItem
      parameters:
      - name: audioId
        in: path
        description: Unique identifier of the audio item.
        required: true
        schema:
          type: string
          example: yCT14TwySDGVUypVlKNEyA
      requestBody:
        content:
          application/json:
            schema:
              required:
              - name
              type: object
              properties:
                name:
                  type: string
                  description: The name of the audio item.
                  example: hello.mp3
      responses:
        '204':
          description: '**HTTP Status Code:** `204` **No Content**



            Successfully updated an audio item'
        '400':
          description: "**HTTP Status Code:** `400` <br>\n Bad Request \n\n **Error Code:** `300` <br>\n  <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
        - phone:write:admin
        - phone:update:audio
        - phone:update:audio:admin
        openapi_authorization: []
      x-extensions:
        x-permissions: []
        x-macro-scopes:
        - phone:write
        - phone:write:admin
        x-granular-scopes:
        - phone:update:audio
        - phone:update:audio:admin
  /phone/users/{userId}/audios:
    get:
      tags:
      - Audio Library
      summary: List audio items
      description: "Returns personal audios. \n\nOnly the admin or user can query your audios and directly pass the `me` value instead of the `userId` parameter.\n\n**Prerequisites:**\n* Business or Education account\n* Zoom Phone license \n\n\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `phone:read`,`phone:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `phone:read:list_audios`,`phone:read:list_audios:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`"
      operationId: ListAudioItems
      parameters:
      - name: userId
        in: path
        required: true
        schema:
          type: string
          example: DnEopNmXQEGU2uvvzjgojw
      responses:
        '200':
          description: '**HTTP Status Code:** `200` **OK**


            Successfully listed the audio items.'
          content:
            application/json:
              schema:
                type: object
                properties:
                  audios:
                    maxItems: 100
                    type: array
                    description: The audio item list.
                    items:
                      type: object
                      properties:
                        audio_id:
                          type: string
                          description: The unique identifier of the audio item.
                          example: fPOSdWWqRVqhohLYs7TW9Q
                        name:
                          type: string
                          description: The name of the audio item.
                          example: hello.mp3
        '400':
          description: "**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n Invalid user id. <br>\n"
        '404':
          description: "**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `2001` <br>\n Account does not exist. <br>\n**Error Code:** `1001` <br>\n User does not exist: {userId}. <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
        - phone:read:admin
        - phone:read:list_audios
        - phone:read:list_audios:admin
        openapi_authorization: []
      x-extensions:
        x-permissions: []
        x-macro-scopes:
        - phone:read
        - phone:read:admin
        x-granular-scopes:
        - phone:read:list_audios
        - phone:read:list_audios:admin
    post:
      tags:
      - Audio Library
      summary: Add an audio item for text-to-speech conversion
      description: "Adds an audio item for [text-to-speech conversion](https://support.zoom.us/hc/en-us/articles/4402414203533-Using-the-audio-library-to-customize-audio#h_01F8B0D2ZJBKEDH10DFZ7J2CM7). Only the admin or user can add your audio and directly pass the `me` value instead of the `userId` parameter.\n\n**Prerequisites:**\n* Business or Education account\n* Zoom Phone license \n\n\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `phone:write`,`phone:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `phone:write:audio`,`phone:write:audio:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`"
      operationId: AddAnAudio
      parameters:
      - name: userId
        in: path
        required: true
        schema:
          type: string
          example: fPOSdWWqRVqhohLYs7TW9Q
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                audio_name:
                  type: string
                  description: The name of the audio item.
                  example: hello.mp3
                text:
                  type: string
                  description: The message to play. The maximum message length is 3000
                  example: hello
                voice_language:
                  type: string
                  description: Language `en-US` or `en-GB` for example.
                  example: en-US
                voice_accent:
                  type: string
                  description: The accent of the audio file, `Joanna-Female` or `Joey-Male` for example.
                  example: Joanna-Female
      responses:
        '201':
          description: '**HTTP Status Code:** `201` **Created**



            Added an audio item successfully.'
          content:
            application/json:
              schema:
                type: object
                properties:
                  audio_id:
                    type: string
                    description: Unique identifier of the audio item
                    example: fPOSdWWqRVqhohLYs7TW9Q
                  name:
                    type: string
                    description: Name of the audio item
                    example: hello.mp3
        '400':
          description: "**HTTP Status Code:** `400` <br>\n Bad Request \n\n **Error Code:** `300` <br>\n Invalid user ID.<br>\nUser does not exist.<br>\nThe language is not supported.<br>\nThe voice accent is not supported.<br>\nThe text is empty.<br>\nMaximum text length has been exceeded. <br>\n"
        '404':
          description: "**HTTP Status Code:** `404` <br>\n Not Found \n\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
        - phone:write:admin
        - phone:write:audio
        - phone:write:audio:admin
        openapi_authorization: []
      x-extensions:
        x-permissions: []
        x-macro-scopes:
        - phone:write
        - phone:write:admin
        x-granular-scopes:
        - phone:write:audio
        - phone:write:audio:admin
  /phone/users/{userId}/audios/batch:
    post:
      tags:
      - Audio Library
      summary: Add audio items
      description: "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.\n\n**Prerequisites:**\n* Business or Education account\n* Zoom Phone license \n\n**Size and quantity limits for audio attachments:**\n* Up to 5 attachments\n* Each file size should be no more than 1MB\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `phone:write`,`phone:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `phone:write:batch_audios`,`phone:write:batch_audios:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `HEAVY`"
      operationId: AddAudioItem
      parameters:
      - name: userId
        in: path
        required: true
        schema:
          type: string
          example: DnEopNmXQEGU2uvvzjgojw
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                attachments:
                  maxItems: 5
                  type: array
                  items:
                    type: object
                    properties:
                      audio_type:
                        type: string
                        description: 'The format of the attachments. Supported formats: audio/mpeg, audio/wav'
                        example: audio/mpeg, audio/wav
                      base64_encoding:
                        type: string
                        description: The ASCII string to send [Base64 encoded](https://en.wikipedia.org/wiki/Base64) attachments as text.
                        example: 'TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlz

                          IHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2Yg

                          dGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZG='
                      name:
                        type: string
                        description: The audio file name.
                        example: hello.mp3
      responses:
        '201':
          description: '**HTTP Status Code:** `201` **Created**



            Audio items successfully added.'
          content:
            application/json:
              schema:
                type: object
                properties:
                  audios:
                    maxItems: 5
                    type: array
                    description: The audio item list.
                    items:
                      type: object
                      properties:
                        audio_id:
                          type: string
                          description: The unique identifier of the audio item.
                          example: fPOSdWWqRVqhohLYs7TW9Q
                        name:
                          type: string
                          description: The name of the audio item.
                          example: hello.mp3
        '400':
          description: "**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `400` <br>\n The type of audio is invalid, audio name: {0}.\nThe size of audio exceeds limit, audio name: {0}. <br>\n"
        '404':
          description: "**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `2001` <br>\n Account does not exist. <br>\n**Error Code:** `1001` <br>\n User does not exist: {userId}. <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
        - phone:write:admin
        - phone:write:batch_audios
        - phone:write:batch_audios:admin
        openapi_authorization: []
      x-extensions:
        x-permissions: []
        x-macro-scopes:
        - phone:write
        - phone:write:admin
        x-granular-scopes:
        - phone:write:batch_audios
        - phone:write:batch_audios:admin
components:
  securitySchemes:
    openapi_authorization:
      type: apiKey
      name: Authorization
      in: header
    openapi_oauth:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: /
          tokenUrl: ''
          refreshUrl: ''
          scopes:
            phone:read:admin: phone:read:admin
            phone:read:list_account_settings:admin: phone:read:list_account_settings:admin
            phone:write:admin: phone:write:admin
            phone:write:customized_number:admin: phone:write:customized_number:admin
            phone:read:list_customized_number:admin: phone:read:list_customized_number:admin
            phone:delete:customized_number:admin: phone:delete:customized_number:admin
            phone:write:alert_setting:admin: phone:write:alert_setting:admin
            phone:read:list_alert_settings:admin: phone:read:list_alert_settings:admin
            phone:read:alert_setting:admin: phone:read:alert_setting:admin
            phone:patch:alert_setting:admin: phone:patch:alert_setting:admin
            phone:delete:alert_setting:admin: phone:delete:alert_setting:admin
            phone:read: phone:read
            phone:read:audio: phone:read:audio
            phone:read:audio:admin: phone:read:audio:admin
            phone:write: phone:write
            phone:delete:audio: phone:delete:audio
            phone:delete:audio:admin: phone:delete:audio:admin
            phone:update:audio: phone:update:audio
            phone:update:audio:admin: phone:update:audio:admin
            phone:read:list_audios: phone:read:list_audios
            phone:read:list_audios:admin: phone:read:list_audios:admin
            phone:write:audio: phone:write:audio
            phone:write:audio:admin: phone:write:audio:admin
            phone:write:batch_audios: phone:write:batch_audios
            phone:write:batch_audios:admin: phone:write:batch_audios:admin
            phone:read:list_auto_receptionists:admin: phone:read:list_auto_receptionists:admin
            phone:write:auto_receptionist:admin: phone:write:auto_receptionist:admin
            phone:delete:auto_receptionist:admin: phone:delete:auto_receptionist:admin
            phone:update:auto_receptionist:admin: phone:update:auto_receptionist:admin
            phone:read:auto_receptionist:admin: phone:read:auto_receptionist:admin
            phone:read:auto_receptionist_call_handling_setting:admin: phone:read:auto_receptionist_call_handling_setting:admin
            phone:update:auto_receptionist_call_handling_setting:admin: phone:update:auto_receptionist_call_handling_setting:admin
            phone:delete:auto_receptionist_number:admin: phone:delete:auto_receptionist_number:admin
            phone:write:auto_receptionist_number:admin: phone:write:auto_receptionist_number:admin
            phone:update:auto_receptionist_policy:admin: phone:update:auto_receptionist_policy:admin
            phone:read:auto_receptionist_policy:admin: phone:read:auto_receptionist_policy:admin
            phone:delete:auto_receptionist_policy:admin: phone:delete:auto_receptionist_policy:admin
            phone:write:auto_receptionist_policy:admin: phone:write:auto_receptionist_policy:admin
            phone:read:auto_receptionist_setting:admin: phone:read:auto_receptionist_setting:admin
            phone:write:auto_receptionist_setting:admin: phone:write:auto_receptionist_setting:admin
            phone:update:auto_receptionist_setting:admin: phone:update:auto_receptionist_setting:admin
            phone:delete:auto_receptionist_setting:admin: phone:delete:auto_receptionist_setting:admin
            phone:read:list_billing_accounts:admin: phone:read:list_billing_accounts:admin
            phone:read:billing_account:admin: phone:read:billing_account:admin
            phone:write:blocked_list:admin: phone:write:blocked_list:admin
            phone:read:list_blocked_lists:admin: phone:read:list_blocked_lists:admin
            phone:delete:blocked_list:admin: phone:delete:blocked_list:admin
            phone:read:blocked_list:admin: phone:read:blocked_list:admin
            phone:update:blocked_list:admin: phone:update:blocked_list:admin
            phone:read:list_call_handling_settings:admin: phone:read:list_call_handling_settings:admin
            phone:update:call_handling_setting:admin: phone:update:call_handling_setting:admin
            phone:delete:call_handling_setting:admin: phone:delete:call_handling_setting:admin
            phone:write:call_handling_setting:admin: phone:write:call_handling_setting:admin
            phone_call_log:read: phone_call_log:read
            phone_call_log:read:admin: phone_call_log:read:admin
            phone:read:call_log:admin: phone:read:call_log:admin
            phone:read:list_call_logs:admin: phone:read:list_call_logs:admin
            phone:update:call_log:admin: phone:update:call_log:admin
            phone:read:ai_call_summary: phone:read:ai_call_summary
            phone:read:ai_call_summary:admin: phone:read:ai_call_summary:admin
            phone:read:list_call_logs: phone:read:list_call_logs
            phone_call_log:write: phone_call_log:write
            phone_call_log:write:admin: phone_call_log:write:admin
            phone:delete:call_log: phone:delete:call_log
            phone:delete:call_log:admin: phone:delete:call_log:admin
            phone:read:list_call_queues:admin: phone:read:list_call_queues:admin
            phone:write:call_queue:admin: phone:write:call_queue:admin
            phone:delete:call_queue:admin: phone:delete:call_queue:admin
            phone:update:call_queue:admin: phone:update:call_queue:admin
            phone:read:call_queue:admin: phone:read:call_queue:admin
            phone:read:call_queue_call_handling_setting:admin: phone:read:call_queue_call_handling_setting:admin
            phone:update:call_queue_call_handling_setting:admin: phone:update:call_queue_call_handling_setting:admin
            phone:read:call_queue_custom_group:admin: phone:read:call_queue_custom_group:admin
            phone:write:call_queue_custom_group:admin: phone:write:call_queue_custom_group:admin
            phone:update:call_queue_custom_group:admin: phone:update:call_queue_custom_group:admin
            phone:delete:call_queue_custom_group:admin: phone:delete:call_queue_custom_group:admin
            phone:delete:call_queue_custom_group:master: phone:delete:call_queue_custom_group:master
            phone:master: phone:master
            phone:read:call_queue_custom_group:master: phone:read:call_queue_custom_group:master
            phone:write:call_queue_custom_group_member:admin: phone:write:call_queue_custom_group_member:admin
            phone:delete:call_queue_custom_group_member:admin: phone:delete:call_queue_custom_group_member:admin
            phone:write:call_queue_member:admin: phone:write:call_queue_member:admin
            phone:delete:call_queue_member:admin: phone:delete:call_queue_member:admin
            phone:read:list_call_queue_members:admin: phone:read:list_call_queue_members:admin
            phone:write:call_queue_number:admin: phone:write:call_queue_number:admin
            phone:delete:call_queue_number:admin: phone:delete:call_queue_number:admin
            phone:read:call_queue_policy:admin: phone:read:call_queue_policy:admin
            phone:update:call_queue_policy:admin: phone:update:call_queue_policy:admin
            phone:write:call_queue_policy:admin: phone:write:call_queue_policy:admin
            phone:delete:call_queue_policy:admin: phone:delete:call_queue_policy:admin
            phone:read:list_call_queue_recordings:admin: phone:read:list_call_queue_recordings:admin
            phone:read:call_queue_setting:admin: phone:read:call_queue_setting:admin
            phone:write:call_queue_setting:admin: phone:write:call_queue_setting:admin
            phone:delete:call_queue_setting:admin: phone:delete:call_queue_setting:admin
            phone:update:call_queue_setting:admin: phone:update:call_queue_setting:admin
            phone:update:carrier_number:admin: phone:update:carrier_number:admin
            phone:write:carrier_number:admin: phone:write:carrier_number:admin
            phone:read:list_carrier_numbers:admin: phone:read:list_carrier_numbers:admin
            phone:delete:carrier_number:admin: phone:delete:carrier_number:admin
            phone:write:common_area:admin: phone:write:common_area:admin
            phone:read:common_area:admin: phone:read:common_area:admin
            phone:read:list_common_area_activation_codes:admin: phone:read:list_common_area_activation_codes:admin
            phone:write:apply_template_to_common_areas:admin: phone:write:apply_template_to_common_areas:admin
            phone:delete:common_area:admin: phone:delete:common_area:admin
            phone:update:common_area:admin: phone:update:common_area:admin
            phone:read:common_area_call_handling_setting:admin: phone:read:common_area_call_handling_setting:admin
            phone:update:common_area_call_handling_setting:admin: phone:update:common_area_call_handling_setting:admin
            phone:write:common_area_calling_plan:admin: phone:write:common_area_calling_plan:admin
            phone:delete:common_area_calling_plan:admin: phone:delete:common_area_calling_plan:admin
            phone:write:common_area_number:admin: phone:write:common_area_number:admin
            phone:delete:common_area_number:admin: phone:delete:common_area_number:admin
            phone:read:list_common_area_settings:admin: phone:read:list_common_area_settings:admin
            phone:update:common_area_setting:admin: phone:update:common_area_setting:admin
            phone:delete:common_area_setting:admin: phone:delete:common_area_setting:admin
            phone:write:common_area_setting:admin: phone:write:common_area_setting:admin
            phone:read:call_qos:admin: phone:read:call_qos:admin
            phone:read:default_emergency_address:admin: phone:read:default_emergency_address:admin
            phone:read:detectable_personal_location:admin: phone:read:detectable_personal_location:admin
            phone:read:location_sharing_permission:admin: phone:read:location_sharing_permission:admin
            phone:read:nomadic_emergency_services:admin: phone:read:nomadic_emergency_services:admin
            phone:read:realtime_location_devices:admin: phone:read:realtime_location_devices:admin
            phone:read:realtime_location_users:admin: phone:read:realtime_location_users:admin
            phone:read:list_tracked_locations:admin: phone:read:list_tracked_locations:admin
            phone:update:device_line_keys: phone:update:device_line_keys
            phone:update:device_line_keys:admin: phone:update:device_line_keys:admin
            phone:read:device_line_keys: phone:read:device_line_keys
            phone:read:device_line_keys:admin: phone:read:device_line_keys:admin
            phone:delete:directory:admin: phone:delete:directory:admin
            phone:read:directory:admin: phone:read:directory:admin
            phone:write:directory:admin: phone:write:directory:admin
            phone:write:emergency_address:admin: phone:write:emergency_address:admin
            phone:read:list_emergency_addresses:admin: phone:read:list_emergency_addresses:admin
            phone:read:emergency_address:admin: phone:read:emergency_address:admin
            phone:delete:emergency_address:admin: phone:delete:emergency_address:admin
            phone:update:emergency_address:admin: phone:update:emergency_address:admin
            phone:write:batch_emergency_locations:admin: phone:write:batch_emergency_locations:admin
            phone:read:list_emergency_locations:admin: phone:read:list_emergency_locations:admin
            phone:write:emergency_location:admin: phone:write:emergency_location:admin
            phone:read:emergency_location:admin: phone:read:emergency_location:admin
            phone:update:emergency_location:admin: phone:update:emergency_location:admin
            phone:delete:emergency_location:admin: phone:delete:emergency_location:admin
            phone:write:external_contact:admin: phone:write:external_contact:admin
            phone:read:list_external_contacts:admin: phone:read:list_external_contacts:admin
            phone:delete:external_contact:admin: phone:delete:external_contact:admin
            phone:read:external_contact:admin: phone:read:external_contact:admin
            phone:update:external_contact:admin: phone:update:external_contact:admin
            phone:write:send_fax: phone:write:send_fax
            phone:write:send_fax:admin: phone:write:send_fax:admin
            phone:read:list_fax_log: phone:read:list_fax_log
            phone:read:list_fax_log:admin: phone:read:list_fax_log:admin
            phone:read:fax_log:admin: phone:read:fax_log:admin
            phone:read:fax_log: phone:read:fax_log
            phone:delete:fax_log: phone:delete:fax_log
            phone:delete:fax_log:admin: phone:delete:fax_log:admin
            phone:read:list_firmware_update_rules:admin: phone:r

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