Zoom Phone Setting Templates API

The Setting Templates API from Zoom Phone — 2 operation(s) for setting templates.

Operations 4

GET /phone/setting_templates List setting templates #
POST /phone/setting_templates Add a setting template #
GET /phone/setting_templates/{templateId} Get setting template details #
PATCH /phone/setting_templates/{templateId} Update a setting template #

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-setting-templates-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-setting-templates-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Phone Setting Templates 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: Setting Templates
paths:
  /phone/setting_templates:
    get:
      tags:
      - Setting Templates
      summary: List setting templates
      description: "Gets a list of all the created phone template 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_setting_templates:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `Light`"
      operationId: listSettingTemplates
      parameters:
      - name: page_size
        in: query
        description: Number of records returns within a single API call.
        required: false
        schema:
          maximum: 300
          type: integer
          example: 30
          default: 30
      - name: next_page_token
        in: query
        description: The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.
        required: false
        schema:
          type: string
          example: nav48KOj42vYPSG4f0cCdT575bZ980did22
      - name: site_id
        in: query
        description: Unique identifier of the site. This field is required only if multiple sites have been enabled.  of the site. Required only when multiple sites are enabled. See [Managing multiple sites](https://support.zoom.us/hc/en-us/articles/360020809672-Managing-multiple-sites) for details. If this is not provided, the response lists the account level setting templates.
        required: false
        schema:
          type: string
          example: SQv52YtkRLC2dwrDdYtGsA
      responses:
        '200':
          description: '**HTTP Status Code:** `200`


            OK'
          content:
            application/json:
              schema:
                type: object
                properties:
                  next_page_token:
                    type: string
                    description: The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes
                    example: nav48KOj42vYPSG4f0cCdT575bZ980did22
                  page_size:
                    type: integer
                    description: The number of records returned within a single API call. The default is **30** and the maximum is **300**.
                    example: 30
                  templates:
                    type: array
                    items:
                      type: object
                      properties:
                        description:
                          type: string
                          description: Template description.
                          example: Main site user template
                        id:
                          type: string
                          description: Unique identifier of the template.
                          example: 2kFqiqSlS5udzWB5QqMiNg
                        name:
                          type: string
                          description: Template name.
                          example: user_template
                        type:
                          type: string
                          description: 'Template type.


                            The value of this field can be one of the following:


                            * `user`


                            * `group`


                            * `autReceptionist`


                            * `commonArea`


                            * `zr`


                            * `interop`

                            '
                          example: user
                          enum:
                          - user
                          - group
                          - autReceptionist
                          - commonArea
                          - zr
                          - interop
                  total_records:
                    type: integer
                    description: The total number of records returned.
                    example: 2
        '400':
          description: "**HTTP Status Code:** `400` <br>\n Bad Request\n\n**Error Code:** `300` <br>\nMultiple Sites option has been disabled. Enable it and try again.\n\n"
        '401':
          description: "**HTTP Status Code:** `401` <br>\n Unauthorized\n\n**Error Code:** `124` <br>\nAccount does not exist: {accountId}.\n\n"
        '404':
          description: "**HTTP Status Code:** `404` <br>\n Not Found\n\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:list_setting_templates:admin
        openapi_authorization: []
      x-extensions:
        x-macro-scopes:
        - phone:read:admin
        x-granular-scopes:
        - phone:read:list_setting_templates:admin
    post:
      tags:
      - Setting Templates
      summary: Add a setting template
      description: "Creates a Zoom Phone setting template for an account. After creating a phone template, the defined settings will become the default settings for an account.\n\n**Prerequisites:** \n* A Business or enterprise Zoom 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:write:setting_template:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `Light`"
      operationId: addSettingTemplate
      requestBody:
        content:
          application/json:
            schema:
              required:
              - name
              - type
              type: object
              properties:
                description:
                  type: string
                  description: A description of the template.
                  example: Main site user template
                name:
                  type: string
                  description: The name of the template.
                  example: user template
                site_id:
                  type: string
                  description: The unique identifier of the site. It's required only when multiple sites are enabled. See [Managing multiple sites](https://support.zoom.us/hc/en-us/articles/360020809672-Managing-multiple-sites) for details.
                  example: SQv52YtkRLC2dwrDdYtGsA
                type:
                  type: string
                  description: The type of template. Values include `user`.
                  example: user
      responses:
        '201':
          description: "**HTTP Status Code:** `201`  \n \nCreated Successfully."
          content:
            application/json:
              schema:
                type: object
                properties:
                  description:
                    type: string
                    description: The template description.
                    example: Main site user template
                  id:
                    type: string
                    description: The template ID.
                    example: 2kFqiqSlS5udzWB5QqMiNg
                  name:
                    type: string
                    description: The template name.
                    example: user template
                  type:
                    type: string
                    description: 'The type of template. Values include `user`. '
                    example: user
        '400':
          description: "**HTTP Status Code:** `400` <br>\n Bad Request \n\n **Error Code:** `300` <br>\n Validation failed. You provided an incorrect value for the template type. Provide a valid value and try again. <br>\n"
        '401':
          description: "**HTTP Status Code:** `401` <br>\n Unauthorized \n\n **Error Code:** `124` <br>\n Account does not exist: {accountId}. <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:write:setting_template:admin
        openapi_authorization: []
      x-extensions:
        x-macro-scopes:
        - phone:write:admin
        x-granular-scopes:
        - phone:write:setting_template:admin
  /phone/setting_templates/{templateId}:
    get:
      tags:
      - Setting Templates
      summary: Get setting template details
      description: "Returns information about an account's phone template.\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:setting_template:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`"
      operationId: getSettingTemplate
      parameters:
      - name: templateId
        in: path
        description: The unique identifier of the template.
        required: true
        schema:
          type: string
          example: SQv52YtkRLC2dwrDdYtGsA
      - name: custom_query_fields
        in: query
        description: 'This field provides the name of the field to use to filter the response. For example, if you provide &quot;description&quot; as the value of the field, you will get a response similar to the following: {&ldquo;description&rdquo;: &ldquo;template description&rdquo;}.'
        required: false
        schema:
          type: string
          example: voicemail
      responses:
        '200':
          description: '**HTTP Status Code:** `200`


            OK'
          content:
            application/json:
              schema:
                type: object
                properties:
                  description:
                    type: string
                    description: The description of the template.
                    example: Main site user template
                  id:
                    type: string
                    description: This field specifies the template ID.
                    example: 2kFqiqSlS5udzWB5QqMiNg
                  name:
                    type: string
                    description: This field specifies the name of the template.
                    example: user template
                  policy:
                    type: object
                    properties:
                      ad_hoc_call_recording:
                        type: object
                        properties:
                          enable:
                            type: boolean
                            description: Whether to allow current extension to record and save calls in the cloud.
                            example: true
                          recording_start_prompt:
                            type: boolean
                            description: Whether to play a prompt to call participants when the recording has started.
                            example: true
                          recording_transcription:
                            type: boolean
                            description: Whether to allow call recording transcription.
                            example: true
                      auto_call_recording:
                        type: object
                        properties:
                          enable:
                            type: boolean
                            description: Whether to enable automatic call recording.
                            example: true
                          recording_calls:
                            type: string
                            description: 'Values: inbound, outbound, both.'
                            example: inbound
                          recording_start_prompt:
                            type: boolean
                            description: "Whether to play a prompt 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_transcription:
                            type: boolean
                            description: Whether to allow call recording transcription.
                            example: true
                          inbound_audio_notification:
                            type: object
                            properties:
                              recording_start_prompt:
                                type: boolean
                                description: "Whether to play a prompt 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
                          outbound_audio_notification:
                            type: object
                            properties:
                              recording_start_prompt:
                                type: boolean
                                description: "Whether to play a prompt 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 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
                      sms:
                        type: object
                        properties:
                          enable:
                            type: boolean
                            description: Whether to allow the user to send and receive messages.
                            example: true
                          international_sms:
                            type: boolean
                            example: true
                      voicemail:
                        type: object
                        properties:
                          allow_transcription:
                            type: boolean
                            description: Whether to allow the voicemail transcription.
                            example: true
                          enable:
                            type: boolean
                            description: Whether to allow the current extension to access, receive, or share voicemail.
                            example: true
                      call_forwarding:
                        type: object
                        properties:
                          enable:
                            type: boolean
                            description: Whether to allow users to forward their calls to other numbers.
                            example: true
                          call_forwarding_type:
                            type: integer
                            description: "`1` - Low restriction (external numbers not allowed)\n`2` - Medium restriction (external numbers and external contacts not allowed)\n `3` - High restriction (external numbers, external contacts and internal extensions without inbound automatic call recording not allowed)\n`4` - No restriction"
                            example: 1
                            enum:
                            - 1
                            - 2
                            - 3
                            - 4
                      call_overflow:
                        type: object
                        properties:
                          enable:
                            type: boolean
                            description: Whether to allow users to forward their calls to other numbers when a call is not answered.
                            example: true
                          call_overflow_type:
                            type: integer
                            description: "`1` - Low restriction (external numbers not allowed)\n`2` - Medium restriction (external numbers and external contacts not allowed)\n `3` - High restriction (external numbers, external contacts and internal extensions without inbound automatic call recording not allowed)\n`4` - No restriction"
                            example: 1
                            enum:
                            - 1
                            - 2
                            - 3
                            - 4
                  profile:
                    type: object
                    properties:
                      area_code:
                        type: string
                        description: The area code from which the phone account was created.
                        example: '1'
                      country:
                        type: string
                        description: The name of the country where the template was created.
                        example: US
                  type:
                    type: string
                    description: 'The type of template being queried. Values: `user`, `group`, `auto receptionist` `common area`,`zr`, `interop`.'
                    example: user
                    enum:
                    - user
                    - group
                    - autoReceptionist
                    - commonArea
                    - zr
                    - interop
                  user_settings:
                    type: object
                    properties:
                      audio_prompt_language:
                        type: string
                        description: "The audio prompt language code.\n American English: `en-US`\n\nBritish English: `en-GB`\n\nEspa&ntilde;ol americano: `es-US`\n\nFran&ccedil;ais canadien: `fr-CA`\n\nDansk: `da-DK`\n\nDeutsch: `de-DE`\n\nEspa&ntilde;ol: `es-ES`\n\nFran&ccedil;ais: `fr-FR`\n\nItaliano: `it-IT`\n\nNederlands: `nl-NL`\n\nPortugues portugal: `pt-PT`\n\nJapanese: `ja-JP`\n\nKorean: `ko-KO`\n\nPortugues brasil: `pt-BR`\n\nChinese: `zh-CN`\n\nTaiwanese: `zh-TW`\n"
                        example: en-US
                      block_calls_without_caller_id:
                        type: boolean
                        description: The block calls without caller ID.
                        example: false
                      call_handling:
                        type: object
                        properties:
                          business_hours:
                            type: object
                            properties:
                              business_hour_action:
                                type: integer
                                description: "When a call is not answered:  \n \n0-Forward to a voicemail;  \n \n1-Play a message, then disconnect;   \n \n9-Disconnect;   \n \n11-Forward to an external number;   \n \n26-Forward to External Contacts;   \n \n50-Forward to another extension"
                                example: 50
                                enum:
                                - 0
                                - 1
                                - 9
                                - 11
                                - 26
                                - 50
                              connect_to_operator:
                                type: object
                                properties:
                                  enable:
                                    type: boolean
                                    description: Whether to enable connect to operator.
                                    example: true
                                  id:
                                    type: string
                                    description: The phone extension ID of the user, zoomRoom, commonArea, autoReceptionist, callQueue or sharedLineGroup.
                                    example: fWOgOALdT1ei4vjXK-QYsA
                                  type:
                                    type: string
                                    description: "Values:  \n \n1-user,  \n \n2-callQueue,   \n \n3-autoReceptionist,  \n \n4-commonArea,  \n \n5-zoomRoom,   \n \n7-sharedLineGroup"
                                    example: user
                                    enum:
                                    - user
                                    - zoomRoom
                                    - commonArea
                                    - autoReceptionist
                                    - callQueue
                                    - sharedLineGroup
                                  external_number:
                                    type: object
                                    properties:
                                      number:
                                        type: string
                                        description: The phone number in E164 format.
                                        example: '+12055433924'
                                      description:
                                        type: string
                                        description: The description for the phone number.
                                        example: API test forwarding to number
                                    description: The forwarding external number when a call is not answered. Make available only when the `business_hour_action` is `11`.
                                  play_callee_voicemail_greeting:
                                    type: boolean
                                    description: Whether to play the callee's voicemail greeting when the caller reaches the end of forwarding sequence. Make available only when the `business_hour_action` is `0` or `50`.
                                    example: true
                                  require_press_1_before_connecting:
                                    type: boolean
                                    description: Whether to require pressing 1 before connecting the call. Make available only when the `business_hour_action` is `11` or '26'.
                                    example: true
                                  allow_caller_check_voicemail:
                                    type: boolean
                                    description: Whether to allow callers to check their voicemail. Make available only when the `business_hour_action` is `0`.
                                    example: true
                                description: Whether to allow callers to press zero to reach an operator, press one to leave a message, or allow neither of these options.
                              busy_action:
                                type: integer
                                description: "When the user is busy on another call:  \n \n0-Forward to a voicemail;  \n \n1-Play a message, then disconnect;   \n \n11-Forward to an external number;   \n \n12-Call waiting;   \n \n13-Play a busy signal;   \n \n26-Forward to External Contacts;   \n \n50-Forward to another extension."
                                example: 50
                                enum:
                                - 0
                                - 1
                                - 11
                                - 12
                                - 13
                                - 26
                                - 50
                              busy_connect_operator:
                                type: object
                                properties:
                                  enable:
                                    type: boolean
                                    description: Whether to enable connect to operator.
                                    example: true
                                  id:
                                    type: string
                                    description: The phone extension ID of the user, zoomRoom, commonAreaPhone, autoReceptionist, callQueue, or sharedLineGroup.
                                    example: fWOgOALdT1ei4vjXK-QYsA
                                  type:
                                    type: string
                                    description: "Values:\n\n1-user,\n\n2-callQueue, \n\n3-autoReceptionist,\n\n4-commonAreaPhone,\n\n5-zoomRoom, \n\n7-sharedLineGroup"
                                    example: user
                                    enum:
                                    - user
                                    - zoomRoom
                                    - commonAreaPhone
                                    - autoReceptionist
                                    - callQueue
                                    - sharedLineGroup
                                  external_number:
                                    type: object
                                    properties:
                                      number:
                                        type: string
                                        description: The phone number in E164 format.
                                        example: '+12055433924'
                                      description:
                                        type: string
                                        description: The description for the phone number.
                                        example: API test forwarding to number
                                    description: The forwarding external number when a call is not answered. Make available only when the `busy_action` is `11`.
                                  play_callee_voicemail_greeting:
                                    type: boolean
                                    description: Whether to play the callee's voicemail greeting when the caller reaches the end of forwarding sequence. It's available only when the `busy_action` is `0` or `50`.
                                    example: true
                                  require_press_1_before_connecting:
                                    type: boolean
                                    description: Whether to require pressing 1 before connecting the call. Make available only when the `busy_action` is `11` or '26'.
                                    example: true
                                  allow_caller_check_voicemail:
                                    type: boolean
                                    description: Whether to allow callers to check their voicemail. Make available only when the `busy_action` is `0`.
                                    example: true
                                description: Whether to allow callers to press 0 to reach an operator or press 1 to leave a message, or allow neither of these options.
                              custom_hours:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    from:
                                      type: string
                                      description: "Values:\n \nhh:mm"
                                      format: time
                                      example: 09:00
                                    to:
                                      type: string
                                      description: "Values:\n \nhh:mm"
                                      format: time
                                      example: '18:00'
                                    type:
                                      type: integer
                                      description: 'Values:


                                        1-24 Hours,


                                        2-customized hours'
                                      example: 2
                                      enum:
                                      - 1
                                      - 2
                                    weekday:
                                      type: integer
                                      description: 'Values: 1-7 Sun-Sat'
                                      example: 2
                                      enum:
                                      - 1
                                      - 2
                                      - 3
                                      - 4
                                      - 5
                                      - 6
                                      - 7
                              ring_type:
                                type: string
                                description: "The call handling ring mode:  \n \n0-Simultaneous,  \n \n1-Sequential"
                                example: simultaneous
                              ringing_duration:
                                type: string
                                description: "Ringing duration for each device in seconds. Values:  \n \n10,15,20,25,30,35,40,45,50,55,60"
                                example: '15'
                                enum:
                                - '10'
                                - '15'
                                - '20'
                                - '25'
                                - '30'
                                - '35'
                                - '40'
                                - '45'
                                - '50'
                                - '55'
                                - '60'
                    

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