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: 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 "description" as the value of the field, you will get a response similar to the following: {“description”: “template description”}.'
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ñol americano: `es-US`\n\nFrançais canadien: `fr-CA`\n\nDansk: `da-DK`\n\nDeutsch: `de-DE`\n\nEspañol: `es-ES`\n\nFranç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