Number Management
- OpenAPI Version:
3.1.1 - API Version:
2
Number Management APIs are part of Zoom's API suite. They let developers manage and provision phone numbers in a Zoom Phone, Contact Center, or Meetings account programmatically. They also help businesses and service providers automate phone number operations at scale.
Servers
- URL:
https://api.zoom.us/v2
Operations
List peering phone numbers for provider
- Method:
GET - Path:
/accounts/{accountId}/number_management/carrier/peering_numbers - Tags: Cloud Peering Provider Exchange
Returns phone numbers the carrier pushes to different customers.
Prerequisites
- Enable Number Management
- Developer is a provider exchange partner, with the cloud peering infrastructure established with Zoom.
- Zoom account needs to have a Zoom Phone license or a Zoom Contact Center license.
Scopes: number_management_numbers:read:master
Granular Scopes: number_management:read:list_carrier_peering_numbers:master
Rate Limit Label: LIGHT
Responses
Status: 200 **HTTP Status Code:** `200` **OK** Cloud peering numbers successfully returned.
Content-Type: application/json
-
next_page_tokenstring— The next page token paginates through a large set of results. A next page token is returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes. -
numbersarray— The information about the phone numbers pushed by the carrier to different customers.Items:
-
assigned(required)boolean— Whether the phone number is assigned: * `false` — Unassigned. * `true` — Assigned. -
phone_number(required)string— The phone number the partner provides in [E.164](https://en.wikipedia.org/wiki/E.164) format. -
sip_trunk_name(required)string— This field is a unique name that Zoom assigns for a group of trunks established with the partner during the cloud peering infrastructure setup. A partner with global presence may have one or more SIP trunks to handle calls for phone numbers in different regions.Partner needs to specify the name of the SIP trunk associated with the specified phone number. All calls originating from this number will be routed through the specified SIP Trunk, and Zoom will expect to receive inbound calls through the same trunk.During failure scenarios, calls will be routed via alternate trunks within the same trunk group identified by the `sip_trunk_name`. -
status(required)boolean— Providers can set the status to indicate whether the phone number is active (true) or inactive (false). Providers can use inactive (false) state to provision phone numbers that are still in the process of being ported in, and update the status to active (true) when the porting is complete. -
allocated_productstring, possible values:"UNALLOCATED", "ZOOM_PHONE", "ZOOM_CONTACT_CENTER"— Partners can allocate phone numbers for exclusive use by a specific Zoom Product (ZOOM_PHONE or ZOOM_CONTACT_CENTER). Partners can also make the Phone Numbers not specific to any product (UNALLOCATED), allowing Zoom customers to freely assign the numbers to any Zoom Product. -
billing_ref_idstring— Partners can specify their billing reference ID, with the maximum length of 36 characters. * Zoom will send back the specified billing_ref_id in the SIP Header X-TO-CARRIER-ACCOUNT for the outbound calls to the provider. -
customer_account_namestring— The customer's account name. -
customer_account_numberstring— The customer's account number. -
message_capabilitystring, possible values:"NOT_APPLICABLE", "SUPPORTED", "NOT_SUPPORTED"— This number can be used for SMS/MMS. This setting is configurable for mobile numbers but automatically determined by the system for non-mobile numbers. Applicable only if the carrier is integrated for messaging services. 1. If messaging is not integrated, or if it's a non-mobile number, the value is **NOT_APPLICABLE**, meaning this function is not applicable. 2. If messaging is integrated and it's a mobile number, the value is **Supported** or Not **Supported**. -
outbound_cli_share_not_supportedboolean— This field allows this number to be used as a Caller ID across all products. Requires Multiple capacity setting and Outbound capability. 1. **false** means allowed. -
outbound_dialer_not_supportedboolean— This field allows this number to be assigned to an Outbound dialer use case. Requires Multiple capacity setting and Outbound capability. Not available with single voice and messaging capacity. 1. **false** means allowed. -
service_infostring— Free form descriptive text of the service associated with the number. This description will be surfaced to Zoom customer viewing the phone number. Partners can include description highlighting the capabilities or limitations associated with the number. The maximum is 255 characters. -
voice_directionstring, possible values:"INBOUND_AND_OUTBOUND", "INBOUND_ONLY", "OUTBOUND_ONLY", "NOT_SUPPORTED", default:"INBOUND_AND_OUTBOUND"— This field allows this number to be configured for Inbound, Outbound, or Two-Way voice calling. -
voice_msg_capacitystring, possible values:"ZOOM_PHONE_USER_ONLY", "MULTI_USE", default:"MULTI_USE"— This field allows this number to be restricted to a single user or enabled for any of the shared workflows. 1. **Zoom Phone user only**: The number can only be assigned to Zoom Phone users. 2. **Multi-use**: The number can be used in any of the shared workflows.
-
-
total_recordsinteger, format:int32— The total number of records returned for this API call.
Example:
{
"next_page_token": "8X8xSdRVKHsabD6Im4tIPODq6GzDOvV5fO1",
"numbers": [
{
"customer_account_name": "Some customer's account name",
"customer_account_number": "Some customer's account number",
"assigned": true,
"billing_ref_id": "Some billing referenceId",
"phone_number": "+18108001001",
"allocated_product": "ZOOM_PHONE",
"service_info": "Some service info",
"sip_trunk_name": "test-carrier-sip-trunk",
"status": true,
"voice_msg_capacity": "MULTI_USE",
"voice_direction": "INBOUND_AND_OUTBOUND",
"outbound_dialer_not_supported": false,
"outbound_cli_share_not_supported": false,
"message_capability": "NOT_APPLICABLE"
}
],
"total_records": 20
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `1001` <br> Carrier not found <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized
Status: 403 **HTTP Status Code:** `403` <br> Forbidden You do not have permission.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).
List peering phone numbers
- Method:
GET - Path:
/accounts/{accountId}/number_management/peering_numbers - Tags: Cloud Peering Reseller
Returns the details associated with a specific phone number, or all the phone numbers the partner previously provisioned for the Zoom customer account.
Prerequisites:
- Enable Number Management
- Developer is a provider exchange partner, with the cloud peering infrastructure established with Zoom.
- Zoom account needs to have a Zoom Phone license or a Zoom Contact Center license.
Scopes: number_management_numbers:read:master
Granular Scopes: number_management:read:list_peering_numbers:master
Rate Limit Label: LIGHT
Responses
Status: 200 **HTTP Status Code:** `200` **OK**<br>Carrier peering numbers successfully returned.
Content-Type: application/json
-
next_page_tokenstring— The next page token paginates through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes. -
numbersarray— The information about the carrier's phone numbers.Items:
-
allocated_product(required)string, possible values:"UNALLOCATED", "ZOOM_PHONE", "ZOOM_CONTACT_CENTER"— Partners can allocate phone numbers for exclusive use by a specific Zoom Product (ZOOM_PHONE or ZOOM_CONTACT_CENTER). Partners can also make the Phone Numbers not specific to any product (UNALLOCATED), allowing Zoom customers to freely assign the numbers to any Zoom Product. -
assigned(required)boolean— Whether the phone number is assigned:* `false` — Unassigned.* `true` — Assigned. -
phone_number(required)string— The phone number the partner provides in [E.164](https://en.wikipedia.org/wiki/E.164 ) format. -
sip_trunk_name(required)string— This field is a unique name that Zoom assigns for a group of trunks established with the partner during the cloud peering infrastructure setup. A partner with global presence may have one or more SIP trunks to handle calls for phone numbers in different regions. Partner needs to specify the name of the SIP trunk associated with the specified phone number. All calls originating from this number will be routed through the specified SIP Trunk, and Zoom will expect to receive inbound calls through the same trunk. During failure scenarios, calls will be routed via alternate trunks within the same trunk group identified by the `sip_trunk_name`. -
status(required)boolean— Providers can set the status to indicate whether the phone number is active (true) or inactive (false). Providers can use inactive (false) state to provision phone numbers that are still in the process of being ported in, and update the status to active (true) when the porting is complete. -
billing_ref_idstring— Partners can specify their billing reference ID, with the maximum length of 36 characters. * Zoom will send back the specified billing_ref_id in the SIP Header X-TO-CARRIER-ACCOUNT for the outbound calls to the provider. -
message_capabilitystring, possible values:"NOT_APPLICABLE", "SUPPORTED", "NOT_SUPPORTED"— This number can be used for SMS/MMS. This setting is configurable for mobile numbers but automatically determined by the system for non-mobile numbers. Applicable only if the carrier is integrated for messaging services. 1. If messaging is not integrated, or if it's a non-mobile number, the value is **NOT_APPLICABLE**, meaning this function is not applicable. 2. If messaging is integrated and it's a mobile number, the value is **Supported** or Not **Supported**. -
outbound_cli_share_not_supportedboolean— This field allows this number to be used as a Caller ID across all products. Requires Multiple capacity setting and Outbound capability. 1. **false** means allowed. -
outbound_dialer_not_supportedboolean— This field allows this number to be assigned to an Outbound dialer use case. Requires Multiple capacity setting and Outbound capability. Not available with single voice and messaging capacity. 1. **false** means allowed. -
service_infostring— Free form descriptive text of the service associated with the number. This description will be surfaced to Zoom customer viewing the phone number. Partners can include description highlighting the capabilities or limitations associated with the number. The maximum is 255 characters. -
voice_directionstring, possible values:"INBOUND_AND_OUTBOUND", "INBOUND_ONLY", "OUTBOUND_ONLY", "NOT_SUPPORTED", default:"INBOUND_AND_OUTBOUND"— This field allows this number to be configured for Inbound, Outbound, or Two-Way voice calling. -
voice_msg_capacitystring, possible values:"ZOOM_PHONE_USER_ONLY", "MULTI_USE", default:"MULTI_USE"— This field allows this number to be restricted to a single user or enabled for any of the shared workflows. 1. **Zoom Phone user only**: The number can only be assigned to Zoom Phone users. 2. **Multi-use**: The number can be used in any of the shared workflows.
-
-
total_recordsinteger, format:int64— The total number of records returned for this API call.
Example:
{
"next_page_token": "8X8xSdRVKHsabD6Im4tIPODq6GzDOvV5fO1",
"numbers": [
{
"assigned": true,
"billing_ref_id": "Some billing referenceId",
"allocated_product": "ZOOM_PHONE",
"phone_number": "+18108001001",
"service_info": "Inbound only number' or 'Metered charges apply",
"sip_trunk_name": "test-carrier-sip-trunk",
"status": true,
"voice_msg_capacity": "MULTI_USE",
"voice_direction": "INBOUND_AND_OUTBOUND",
"outbound_dialer_not_supported": false,
"outbound_cli_share_not_supported": false,
"message_capability": "NOT_APPLICABLE"
}
],
"total_records": 20
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `1001` <br> Carrier not found <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized
Status: 403 **HTTP Status Code:** `403` <br> Forbidden You do not have permission.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).
Add peering phone numbers
- Method:
POST - Path:
/accounts/{accountId}/number_management/peering_numbers - Tags: Cloud Peering Reseller
Enables provider exchange partners to add phone numbers to a Zoom account.
Prerequisites
- Enable Number Management
- Developer is a provider exchange partner, with the cloud peering infrastructure established with Zoom.
- Zoom account needs to have a Zoom Phone license or a Zoom Contact Center license.
Scopes: number_management_numbers:write:master
Granular Scopes: number_management:write:peering_number:master
Rate Limit Label: LIGHT
Request Body
Content-Type: application/json
-
phone_numbers(required)array— The information about the added phone numbers. The maximum value is 200.Items:
-
phone_number(required)string— The phone number the partner provides in [E.164](https://en.wikipedia.org/wiki/E.164) format. -
sip_trunk_name(required)string— A unique name that Zoom assigns for a group of trunks established with the partner during the cloud peering infrastructure setup. A partner with global presence may have one or more SIP trunks to handle calls for phone numbers in different regions. Partner needs to specify the name of the SIP trunk associated with the specified phone number. All calls originating from this number will be routed through the specified SIP trunk, and Zoom will expect to receive inbound calls through the same trunk. During failure scenarios, calls will be routed through alternate trunks within the same trunk group identified by the `sip_trunk_name`. -
status(required)boolean— Providers can set the status to indicate whether the phone number is active (true) or inactive (false). Providers can use inactive (false) state to provision phone numbers that are still in the process of being ported in, and update the status to active (true) when the porting is complete. -
billing_ref_idstring— Partners can specify their billing reference ID, with the maximum length of 36 characters. * Zoom will send back the specified billing_ref_id in the SIP Header X-TO-CARRIER-ACCOUNT for outbound calls to the provider. -
message_capabilitystring, possible values:"NOT_APPLICABLE", "SUPPORTED", "NOT_SUPPORTED"— This number can be used for SMS/MMS. This setting is configurable for mobile numbers but automatically determined by the system for non-mobile numbers. Applicable only if the carrier is integrated for messaging services. 1. If messaging is not integrated, or if it's a non-mobile number, the value is **NOT_APPLICABLE**, meaning this function is not applicable. 2. If messaging is integrated and it's a mobile number, the value is **Supported** or Not **Supported**. -
number_typestring, possible values:"Mobile", "Toll", "TollFree", "VirtualService"— If you're certain the number is Toll/VirtualService/TollFree/Mobile, specify it. Otherwise, Zoom will automatically calculate the number type. * If allocated_product is ZOOM_PHONE/UNALLOCATED, the number_type can be Toll/TollFree/Mobile. * If allocated_product is ZOOM_CONTACT_CENTER, the number_type can be VirtualService/TollFree/Mobile. -
outbound_cli_share_not_supportedboolean— This field allows this number to be used as a Caller ID across all products. Requires Multiple capacity setting and Outbound capability. 1. **false** means allowed. -
outbound_dialer_not_supportedboolean— This field allows this number to be assigned to an Outbound dialer use case. Requires Multiple capacity setting and Outbound capability. Not available with single voice and messaging capacity. 1. **false** means allowed. -
service_infostring— The free form descriptive text of the service associated with the number. This description surfaces to the Zoom customer viewing the phone number. Partners can include description highlighting the capabilities or limitations associated with the number. The maximum is 255 characters. -
voice_directionstring, possible values:"INBOUND_AND_OUTBOUND", "INBOUND_ONLY", "OUTBOUND_ONLY", "NOT_SUPPORTED", default:"INBOUND_AND_OUTBOUND"— This field allows this number to be configured for Inbound, Outbound, or Two-Way voice calling. -
voice_msg_capacitystring, possible values:"ZOOM_PHONE_USER_ONLY", "MULTI_USE", default:"MULTI_USE"— This field allows this number to be restricted to a single user or enabled for any of the shared workflows. 1. **Zoom Phone user only**: The number can only be assigned to Zoom Phone users. 2. **Multi-use**: The number can be used in any of the shared workflows.
-
-
allocated_productstring, possible values:"UNALLOCATED", "ZOOM_PHONE", "ZOOM_CONTACT_CENTER"— Partners can allocate phone numbers for exclusive use by a specific Zoom product (ZOOM_PHONE or ZOOM_CONTACT_CENTER). Partners can also make the phone numbers not specific to any product (UNALLOCATED), allowing Zoom customers to freely assign the numbers to any Zoom product. -
carrier_codeinteger, format:int32— A unique code that Zoom provides to the partner at the time of establishing cloud peering infrastructure. This unique code is also tied to the developer `client ID` included as part of the token. This parameter is **required** if you do **not** use an OAuth token or the OAuth token does not contain the `clientId`.
Example:
{
"carrier_code": 3456,
"allocated_product": "ZOOM_PHONE",
"phone_numbers": [
{
"billing_ref_id": "Some billing referenceId",
"phone_number": "+12097654882",
"number_type": "Mobile",
"service_info": "'Inbound only number' or 'Metered charges apply'",
"sip_trunk_name": "first-markert-carrier-trunk",
"status": true,
"voice_msg_capacity": "MULTI_USE",
"voice_direction": "INBOUND_AND_OUTBOUND",
"outbound_dialer_not_supported": false,
"outbound_cli_share_not_supported": false,
"message_capability": "NOT_APPLICABLE"
}
]
}
Responses
Status: 201 **HTTP Status Code:** `201` **Created** Peering phone numbers successfully added.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request some data failed **Error Code:** `1000` <br> Some data failed.for example: [ {"phoneNumber":"+12098888111","reason":"Invalid Sip Trunk"}, {"phoneNumber":"+12090000011","reason":"Invalid number"} ] <br> **Error Code:** `1001` <br> Carrier not found <br> **Error Code:** `1002` <br> Request data cannot be empty <br> **Error Code:** `1003` <br> Too many numbers, should less than 200 <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized
Status: 403 **HTTP Status Code:** `403` <br> Forbidden You do not have permission.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).
Remove peering phone numbers
- Method:
DELETE - Path:
/accounts/{accountId}/number_management/peering_numbers - Tags: Cloud Peering Reseller
Removes the phone number from the Zoom customer account.
Partners can remove only the phone numbers they have previously added to Zoom account.
Prerequisites:
- Enable Number Management
- Developer is a provider exchange partner, with the cloud peering infrastructure established with Zoom.
- Zoom account needs to have a Zoom Phone license or a Zoom Contact Center license.
Scopes: number_management_numbers:write:master
Granular Scopes: number_management:delete:peering_number:master
Rate Limit Label: LIGHT
Responses
Status: 200 **HTTP Status Code:** `200` **Created** Phone number successfully deleted.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request request failed **Error Code:** `1000` <br> Some data failed. for example: [ {"phoneNumber":"+12098888111","reason":"Phone number does not exist"}, {"phoneNumber":"+12090000011","reason":"Invalid number"} ] <br> **Error Code:** `1001` <br> Carrier not found <br> **Error Code:** `1002` <br> Request data cannot be empty <br> **Error Code:** `1003` <br> Too many numbers, should less than 200 <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized
Status: 403 **HTTP Status Code:** `403` <br> Forbidden You do not have permission.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).
Update peering phone numbers
- Method:
PATCH - Path:
/accounts/{accountId}/number_management/peering_numbers - Tags: Cloud Peering Reseller
Allows partners to update the status or details associated with the phone numbers.
Prerequisites
- Enable Number Management
- Developer is a provider exchange partner, with the cloud peering infrastructure established with Zoom.
- Zoom account needs to have a Zoom Phone license or a Zoom Contact Center license.
Scopes: number_management_numbers:write:master
Granular Scopes: number_management:update:peering_number:master
Rate Limit Label: LIGHT
Request Body
Content-Type: application/json
-
phone_numbers(required)array— The list of phone numbers and the corresponding details that need to be updated. The maximum value is 200.Items:
-
phone_number(required)string— The phone number the partner provides in [E.164](https://en.wikipedia.org/wiki/E.164 ) format. -
billing_ref_idstring— Partners can specify their billing reference ID. The maximum length is 36 characters. * Zoom will send back the specified billing_ref_id in the SIP Header X-TO-CARRIER-ACCOUNT for the outbound calls to the provider. -
message_capabilitystring, possible values:"NOT_APPLICABLE", "SUPPORTED", "NOT_SUPPORTED"— This number can be used for SMS/MMS. This setting is configurable for mobile numbers but automatically determined by the system for non-mobile numbers. Applicable only if the carrier is integrated for messaging services. 1. If messaging is not integrated, or if it's a non-mobile number, the value is **NOT_APPLICABLE**, meaning this function is not applicable. 2. If messaging is integrated and it's a mobile number, the value is **Supported** or Not **Supported**. -
outbound_cli_share_not_supportedboolean— This field allows this number to be used as a Caller ID across all products. Requires Multiple capacity setting and Outbound capability 1. **false** means allowed. -
outbound_dialer_not_supportedboolean— This field allows this number to be assigned to an Outbound dialer use case. Requires Multiple capacity setting and Outbound capability. Not available with single voice and messaging capacity. 1. **false** means allowed. -
service_infostring— Free form descriptive text of the service associated with the number. This description will be surfaced to Zoom customer viewing the phone number. Partners can include description highlighting the capabilities or limitations associated with the number. The maximum is 255 characters. -
sip_trunk_namestring— A unique name that Zoom assigns for a group of trunks established with the partner during the cloud peering infrastructure setup. A partner with global presence may have one or more SIP trunks to handle calls for phone numbers in different regions. Partner needs to specify the name of the SIP trunk associated with the specified phone number. All calls originating from this number will be routed through the specified SIP Trunk, and Zoom will expect to receive inbound calls through the same trunk. During failure scenarios, calls will be routed via alternate trunks within the same trunk group identified by the `sip_trunk_name`. -
statusboolean— Providers can set the status to indicate whether the phone number is active (true) or inactive (false). Providers can use inactive (false) state to provision phone numbers that are still in the process of being ported in, and update the status to active (true) when the porting is complete. -
voice_directionstring, possible values:"INBOUND_AND_OUTBOUND", "INBOUND_ONLY", "OUTBOUND_ONLY", "NOT_SUPPORTED", default:"INBOUND_AND_OUTBOUND"— This field allows this number to be configured for Inbound, Outbound, or Two-Way voice calling. -
voice_msg_capacitystring, possible values:"ZOOM_PHONE_USER_ONLY", "MULTI_USE", default:"MULTI_USE"— This field allows this number to be restricted to a single user or enabled for any of the shared workflows. 1. **Zoom Phone user only**: The number can only be assigned to Zoom Phone users. 2. **Multi-use**: The number can be used in any of the shared workflows.
-
-
allocated_productstring, possible values:"UNALLOCATED", "ZOOM_PHONE", "ZOOM_CONTACT_CENTER"— `allocated_product` can only be updated for numbers that were previously set to 'UNALLOCATED'. To change `allocated_product` value for phone numbers previously allocated to ZOOM_PHONE or ZOOM_CONTACT_CENTER, partners need to remove and reinsert the numbers. -
carrier_codeinteger, format:int32— A unique code that Zoom provides to the partner at the time of establishing cloud peering infrastructure. This unique code is also tied to the developer `client ID` included as part of the token This parameter is **required** if you do **not** use an OAuth token or the OAuth token does not contain the `clientId`.
Example:
{
"carrier_code": 3456,
"allocated_product": "ZOOM_PHONE",
"phone_numbers": [
{
"phone_number": "+12097654882",
"billing_ref_id": "Some billing referenceId",
"service_info": "Inbound only number' or 'Metered charges apply",
"sip_trunk_name": "first-markert-carrier-trunk",
"status": true,
"voice_msg_capacity": "MULTI_USE",
"voice_direction": "INBOUND_AND_OUTBOUND",
"outbound_dialer_not_supported": false,
"outbound_cli_share_not_supported": false,
"message_capability": "NOT_APPLICABLE"
}
]
}
Responses
Status: 204 **HTTP Status Code:** `200` **OK**Phone number successfully updated.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request request failed **Error Code:** `1000` <br> Some data failed.for example: [ {"phoneNumber":"+12098888111","reason":"Invalid Sip Trunk"}, {"phoneNumber":"+12090000011","reason":"Invalid number"} ] <br> **Error Code:** `1001` <br> Carrier not found <br> **Error Code:** `1002` <br> Request data cannot be empty <br> **Error Code:** `1003` <br> Too many numbers, should less than 200 <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized
Status: 403 **HTTP Status Code:** `403` <br> Forbidden You do not have permission.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).
Allocate/Unallocate phone numbers
- Method:
PATCH - Path:
/accounts/{accountId}/number_management/allocation - Tags: Phone Numbers
Allocates or unallocates phone numbers for those with CPL routing.
Note: When allocating phone numbers, if there are any native numbers, they must belong to the same country or region, and have the same number plan.
Scopes: number_management_numbers:write:master
Granular Scopes: number_management:write:numbers:master
Rate Limit Label: HEAVY
Request Body
Content-Type: application/json
-
allocated_product(required)string, possible values:"ZOOM_PHONE", "ZOOM_CONTACT_CENTER", "UNALLOCATED"— The phone number's allocated product. Use the value UNALLOCATED to unallocate phone numbers. -
numbers(required)array— A list of phone numbers.Items:
string— The phone number ID. -
site_idstring— The site the numbers will be allocated for Zoom Phone.
Example:
{
"numbers": [
"8nObzGKRTGxoNDZ5JIEHQ"
],
"allocated_product": "ZOOM_PHONE",
"site_id": "8nObzGKRTGxoNDZ5JIEHQ"
}
Responses
Status: 204 The phone numbers have been allocated succeefully
Status: 400 **HTTP Status Code:** `400` <br> Bad Request Invalid parameter or operation **Error Code:** `100002` <br> Phone number not found <br> **Error Code:** `200002` <br> Unable to switch products for the number <br> **Error Code:** `1002010` <br> The site does not exist <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized Lack of valid authentication
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).
Add BYOC phone numbers
- Method:
POST - Path:
/accounts/{accountId}/number_management/byoc_numbers - Tags: Phone Numbers
Adds BYOC (Bring Your Own Carrier) phone numbers to Zoom Phone.
Prerequisites:
- A Business or Enterprise plan
- A Zoom Phone license
Scopes: number_management_numbers:write:master
Granular Scopes: number_management:write:byoc_numbers:master
Rate Limit Label: MEDIUM
Request Body
Content-Type: application/json
-
allocated_product(required)string, possible values:"ZOOM_PHONE", "ZOOM_CONTACT_CENTER"— The partners can allocate phone numbers for exclusive use by a specific Zoom Product (ZOOM_PHONE or ZOOM_CONTACT_CENTER). -
phone_numbers(required)array— Whether a input local number or E164 number.Items:
string -
country_isostring— The two-lettered country code (Alpha-2 code in ISO-3166 format). - When the input number is a local number, country_iso is required. - When the input number is a E164 number, `country_iso` is optional. -
enable_pci_palboolean— - If you add a Zoom phone number and want to enable `enable_pci_pal`, you first need to enable Enable Compliance APIs in the Zoom Phone OP. - If you add a Zoom Contact Center number and want to enable `enable_pci_pal`, you first need to enable PCI SIP Integration in the Zoom Contact Center OP. -
sip_group_idstring— The SIP group ID. - If adding a Zoom Phone number, and BYOC SIP Group is optional, `sip_group_id` is required. It can input ZOOM_PHONE or COMMON `sip_group_id` - If adding a Zoom Contact Center number, `sip_group_id` is required, and can input ZOOM_CONTACT_CENTER or COMMON `sip_group_id`. -
site_idstring— The unique identifier of the site. This field is only required if you have enabled multiple sites in the account. See [Managing multiple sites](https://support.zoom.us/hc/en-us/articles/360020809672-Managing-multiple-sites) or [Adding a site](https://support.zoom.us/hc/en-us/articles/360020809672-Managing-multiple-sites#h_05c88e35-1593-491f-b1a8-b7139a75dc15) for details. - If add a zoom phone number, and multiple sites is enabled, `site_id` is required
Example:
{
"allocated_product": "ZOOM_PHONE",
"country_iso": "US",
"site_id": "8f71O6rWT8KFUGQmJIFAdQ",
"phone_numbers": [
"+8618251885564"
],
"sip_group_id": "FLofRFDxSNiSd68iRZrZmg",
"enable_pci_pal": true
}
Responses
Status: 201 **HTTP Status Code:** `201` **Created** BYOC phone numbers successfully added.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `1000` <br> Some data failed.for example: [ {"phoneNumber":"+12098888111","reason":"Phone Number format invalid"}, {"phoneNumber":"+12090000011","reason":"Phone Number already exists"} ] <br> **Error Code:** `1004` <br> BYOC Phone Numbers are not enabled for this account <br> **Error Code:** `1003_001` <br> Too many numbers, should less than 100,contact zoom support team for more numbers <br> **Error Code:** `100_001` <br> Sip Group not found <br> **Error Code:** `200_005` <br> Current sip group don't support PCIPal <br> **Error Code:** `1002_003` <br> Site cannot be empty in zoom phone <br> **Error Code:** `1002_010` <br> The site does not exist <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden You do not have permission.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).
List phone numbers
- Method:
GET - Path:
/accounts/{accountId}/number_management/numbers - Tags: Phone Numbers
Returns a list of phone numbers in an account. See section Information in the phone number table of Using Number Management for managing phone numbers for more details.
Scopes: number_management_numbers:read:master
Granular Scopes: number_management:read:list_numbers:master
Rate Limit Label: LIGHT
Responses
Status: 200 The list of phone numbers.
Content-Type: application/json
-
next_page_tokenstring— The next page token paginates through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes. -
numbersarrayItems:
-
address_update_requiredboolean— The true value indicates the number's address need to be updated for BYOC Premise numbers. -
allocated_productstring, possible values:"UNALLOCATED", "ZOOM_PHONE", "ZOOM_CONTACT_CENTER"— The product assigned to the phone number. -
assigned_listarrayItems:
-
assgined_to_namestring— The name of the user assigned with the number, emergency number pool, and company location. -
assigned_to_idstring— In Zoom Phone, this value can represent the ID of the user, emergency number pool (where the ID is either `siteId` if multiple sites are enabled, or `accountId` if not), or company location, depending on the `assigned_to_type `field. In Contact Center, this field also has different meanings 2: number assigned to Dial-in to Video Engagements 3: number assigned to Default System Outgoing SMS 4: number assigned to Default Caller ID 8: number assigned to Default Agent Outgoing SMS Other: number assigned for specific use case , such as flow, queue and so on. -
assigned_to_typestring, possible values:"User", "CallQueue", "AutoReceptionist", "CiscoPolycomRoom", "SharedLineGroup", "GroupCallPickup", "CommonArea", "EmergencyNumberPool", "CompanyLocation", "PersonalLocation", "MeetingService", "LocalSurvivability", "LocalSurvivabilityEmergencyNumberPool", "MicrosoftTeamsResourceAccount", "DistributionGroup"— This field indicates to whom the phone number belongs. -
extension_numberstring— The extension number of an extension (e.g., user) for Zoom Phone -
source_channelstring, possible values:"Voice", "SMS"— The channel of number that is only for Contact Center.
-
-
caller_id_namestring— The caller ID name for a Contact Center number. -
capabilityarray— The capability of the phone number. The value can be Incoming, Outgoing, Messaging, PCIPal, and `EmergencyCalls` or any combination of them.Items:
string, possible values:"Incoming", "Outgoing", "Messaging", "PCIPal", "EmergencyCalls"— The capability of the phone number -
carrierobject— The carrier information for the Provider Exchange number.-
codeinteger— The carrier code. -
namestring— The name of the carrier.
-
-
display_namestring— The display name for the phone number in Zoom Phone. -
emergency_addressobject— The emergency address to bind to the phone number.-
address_line1string— The house number and street name. -
address_line2string— The information about the building, floor, unit, and so on. -
citystring— The city in the address. -
countrystring— The two-lettered country code (Alpha-2 code in ISO-3166 format). -
countystring— The county of the address for the Ireland address. -
state_codestring— The state ISO code of the address. -
zipstring— The zip or postal code.
-
-
emergency_address_update_timestring— The updated timestamp of the number's address, in the format 'yyyy-MM-ddTHH:mm:ssZ'. It's used for Phone BYOC-Premises numbers. -
idstring— The unique identifier of the phone number. -
locationobject— The phone number's area.-
citystring— The phone number of the city location. -
countrystring— The name of the country. -
statestring— The state or province's name.
-
-
numberstring— The phone number in E.164 format. -
number_typestring, possible values:"Toll", "TollFree", "VirtualService", "Mobile", "SharedCost", "National", "ITFS"— The type of phone number. -
sip_groupobject-
idstring— The SIP group's ID. -
namestring— The ID of the SIP group. See the **Creating SIP groups** section in [Creating a shared directory of external contacts](https://support.zoom.us/hc/en-us/articles/360037050092-Creating-a-shared-directory-of-external-contacts) for details.
-
-
siteobject— The site associated with the phone number.-
namestring— The site name. -
site_idstring— The site ID.
-
-
sourcestring, possible values:"Zoom", "ZoomPorted", "ZoomReserved", "ThirdPartyNumber", "BYOCCloud", "BYOCPremises"— The source of phone number. -
statusstring, possible values:"Normal", "Pending"— The status of the number.
-
-
page_sizeinteger— The page size in use.
Example:
{
"next_page_token": "xuWXDDeGFkx0dyRtuwQR3M9NWIoMVD9e0a2",
"page_size": 100,
"numbers": [
{
"id": "iHE1MQAET2iV85MbfaQmwg",
"number": "+1203030333",
"allocated_product": "ZOOM_CONTACT_CENTER",
"number_type": "Toll",
"display_name": "Alice",
"caller_id_name": "Bob Company",
"carrier": {
"code": 2,
"name": "Bandwidth"
},
"capability": [
"Incoming"
],
"source": "Zoom",
"status": "Pending",
"emergency_address": {
"address_line1": "53 Rav Road",
"address_line2": "Floor 1",
"city": "San Jose",
"county": "CO. Cork",
"state_code": "CA",
"country": "US",
"zip": "95113"
},
"address_update_required": true,
"emergency_address_update_time": "2024-10-29T14:18:28Z",
"site": {
"site_id": "8f71O6rWT8KFUGQmJIFAdQ",
"name": "Main Site"
},
"assigned_list": [
{
"assigned_to_id": "rYgfsrduSXWCxr94poMN5g",
"assgined_to_name": "Alice Bob",
"assigned_to_type": "User",
"source_channel": "Voice",
"extension_number": "6503"
}
],
"sip_group": {
"id": "vZWksdNbRkKTdzOth09skw",
"name": "SIP 01"
},
"location": {
"country": "United States",
"city": "San Jose",
"state": "California"
}
}
]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `999` <br> Invalid value (e.g., allocated_product, number_type, number_soruce) <br> **Error Code:** `1002010` <br> The site does not exist <br> **Error Code:** `1003100` <br> The next page token is either invalid or has expired <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized Lack of valid authentication
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).
Delete phone numbers
- Method:
DELETE - Path:
/accounts/{accountId}/number_management/numbers - Tags: Phone Numbers
Deletes phone numbers.
Scopes: number_management_numbers:write:master
Granular Scopes: number_management:delete:numbers:master
Rate Limit Label: MEDIUM
Responses
Status: 204 The phone numbers have been deleted successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request Invalid parameter **Error Code:** `100002` <br> Phone number not found <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized Lack of valid authentication
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).
Get a phone number
- Method:
GET - Path:
/accounts/{accountId}/number_management/numbers/{phoneNumberId} - Tags: Phone Numbers
Returns information about an account's phone number.
For more details, see the section Information in the phone number table in Using Number Management for managing phone numbers.
Scopes: number_management_numbers:read:master
Granular Scopes: number_management:read:numbers:master
Rate Limit Label: LIGHT
Responses
Status: 200 The phone number details.
Content-Type: application/json
-
address_update_requiredboolean— The true value indicates the number's address need to be updated, applicable for BYOC Premise numbers. -
allocated_productstring, possible values:"UNALLOCATED", "ZOOM_PHONE", "ZOOM_CONTACT_CENTER"— The product assigned to the phone number. -
assigned_listarrayItems:
-
assgined_to_namestring— The name of the user to whom the number, emergency number pool, and company location are assigned. -
assigned_to_idstring— In Zoom Phone, this value can represent the ID of the user, emergency number pool (where the ID is either `siteId` if multiple sites are enabled, or `accountId` if not), or company location, depending on the `assigned_to_type` field. In Contact Center, this field also has different meanings. 2: Number assigned to Dial-in to Video Engagements 3: number assigned to Default System Outgoing SMS 4: number assigned to Default Caller ID 8: number assigned to Default Agent Outgoing SMS Other: number assigned for specific use case , such as flow, queue. -
assigned_to_typestring, possible values:"User", "CallQueue", "AutoReceptionist", "CiscoPolycomRoom", "SharedLineGroup", "GroupCallPickup", "CommonArea", "EmergencyNumberPool", "CompanyLocation", "PersonalLocation", "MeetingService", "LocalSurvivability", "LocalSurvivabilityEmergencyNumberPool", "MicrosoftTeamsResourceAccount", "DistributionGroup"— This field indicates to whom the phone number belongs. -
display_numberstring— The displayed phone number in meeting invitations and emails for the meeting service. -
extension_numberstring— The extension number of an extension. (e.g., user). This field is applicable for Zoom Phone. -
greetingobject— This field applicable for meeting service.-
idstring— 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 use this audio ID to get the audio information in the [Get an audio item](https://marketplace.zoom.us/docs/api-reference/phone/methods#tag/Audio-Library/operation/GetAudioItem) API. -
namestring— The audio file name of the greeting prompt.
-
-
labelstring— This label appends to the number in parentheses, and appears in meeting invitations and the Zoom client for the meeting service. -
meeting_idstring— The meeting ID for Phone meeting service. -
on_hold_musicobject— This field applicable for the meeting service.-
idstring— The audio prompt file ID. If the audio is no longer in the user's audio library, it will be marked with a prefix, `removed_vWby3OZaQlS1nAdmEAqgwA` for example. You can use this audio ID to get the audio information in the [Get an audio item](https://marketplace.zoom.us/docs/api-reference/phone/methods#tag/Audio-Library/operation/GetAudioItem) API. -
namestring— The audio file name of the on hold music prompt.
-
-
source_channelstring, possible values:"Voice", "SMS"— The channel of number. (Only for Contact Center)
-
-
caller_id_namestring— The caller ID name for the Contact Center numbers. -
capabilityarray— The capability of the phone number. The value can be Incoming, Outgoing, Messaging, PCIPal and Emergency Calls or any combination of them.Items:
string, possible values:"Incoming", "Outgoing", "Messaging", "PCIPal", "EmergencyCalls"— The capability of the phone number. -
carrierobject— The carrier information for Provider Exchange numbers.-
codeinteger— The carrier code. -
namestring— The name of the carrier.
-
-
display_namestring— The display name of the phone number for Zoom Phone numbers. -
emergency_addressobject— The emergency address bind to the phone number.-
address_line1string— The house number and street name. -
address_line2string— The field lists the building, floor, unit, and so on. -
citystring— The city of the address. -
countrystring— The two-lettered country code (Alpha-2 code in ISO-3166 format) -
countystring— The county of the address, applicable for an Ireland address -
state_codestring— The state ISO code of the address. -
zipstring— The zip or postal code.
-
-
emergency_address_update_timestring— The updated timestamp of the number's address, in the format 'yyyy-MM-ddTHH:mm:ssZ'. It's used for Phone BYOC-Premises numbers. -
idstring— The unique identifier of the phone number. -
locationobject— The phone number area.-
citystring— The phone number's city location. -
countrystring— The name of the country. -
statestring— The state or province name.
-
-
numberstring— The phone number in E.164 format. -
number_typestring, possible values:"Toll", "TollFree", "VirtualService", "Mobile", "SharedCost", "National", "ITFS"— The type of the phone number. -
sip_groupobject-
idstring— The ID of the SIP group. For details, see the **Creating SIP groups** section in [Creating a shared directory of external contacts](https://support.zoom.us/hc/en-us/articles/360037050092-Creating-a-shared-directory-of-external-contacts). -
namestring— The SIP group display name
-
-
siteobject— The site associated with the phone number.-
namestring— The name of the site. -
site_idstring— The site ID.
-
-
sourcestring, possible values:"Zoom", "ZoomPorted", "ZoomReserved", "ThirdPartyNumber", "BYOCCloud", "BYOCPremises"— The source of phone number. -
statusstring, possible values:"Normal", "Pending"— The status of the number.
Example:
{
"id": "iHE1MQAET2iV85MbfaQmwg",
"number": "+1203030333",
"allocated_product": "ZOOM_CONTACT_CENTER",
"number_type": "Toll",
"display_name": "Alice",
"caller_id_name": "Bob Company",
"carrier": {
"code": 2,
"name": "Bandwidth"
},
"capability": [
"Incoming"
],
"source": "Zoom",
"status": "Pending",
"emergency_address": {
"address_line1": "53 Rav Road",
"address_line2": "Floor 1",
"city": "San Jose",
"county": "CO. Cork",
"state_code": "CA",
"country": "US",
"zip": "95113"
},
"address_update_required": true,
"emergency_address_update_time": "2024-10-29T14:18:28Z",
"site": {
"site_id": "8f71O6rWT8KFUGQmJIFAdQ",
"name": "Main Site"
},
"assigned_list": [
{
"assigned_to_id": "rYgfsrduSXWCxr94poMN5g",
"assgined_to_name": "Alice Bob",
"assigned_to_type": "User",
"source_channel": "Voice",
"extension_number": "6503",
"meeting_id": "964 3020 9491",
"greeting": {
"id": "vWby3OZaQlS1nAdmEAqgwA",
"name": "hotspot.wav"
},
"on_hold_music": {
"id": "vWby3OZaQlS1nAdmEAqgwA",
"name": "music.wav"
},
"display_number": "+1 360 209 5623",
"label": "xxx"
}
],
"sip_group": {
"id": "vZWksdNbRkKTdzOth09skw",
"name": "Sip 01"
},
"location": {
"country": "United States",
"city": "San Jose",
"state": "California"
}
}
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized Lack of valid authentication
Status: 404 **HTTP Status Code:** `404` <br> Not Found The phone number not found
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).
Update a phone number
- Method:
PATCH - Path:
/accounts/{accountId}/number_management/numbers/{phoneNumberId} - Tags: Phone Numbers
Updates a phone number's information.
Scopes: number_management_numbers:write:master
Granular Scopes: number_management:update:numbers:master
Rate Limit Label: LIGHT
Request Body
Content-Type: application/json
-
caller_id_namestring— The caller ID name has 15 characters or fewer, and should have at least one alpha character. The Contact Center supports only US/CA Virtual Service numbers. -
capabilityobject— Applicable for Zoom Phone numbers.-
incomingboolean— A value of true enables the capability. A value of false disables it. -
outgoingboolean— A value of true enables the capability. A value of false disables it.
-
-
confirm_address_updateboolean— Whether to confirm the emergency address update for Zoom Phone BYOC Premises numbers. -
display_namestring— Zoom Phone numbers use a phone number display name with a limit of 32 characters or fewer. -
sip_group_idstring— This field retrieves the SIP group ID from the List Sip Group API for use with BYOC Premise phone numbers.
Example:
{
"display_name": "Bob",
"caller_id_name": "Alice",
"confirm_address_update": true,
"sip_group_id": "ybFTE3KXRIC7vJ8kOdmjWg",
"capability": {
"incoming": true,
"outgoing": false
}
}
Responses
Status: 204 Succeed to update the phone number
Status: 400 **HTTP Status Code:** `400` <br> Bad Request Invalid parameter or operation **Error Code:** `999` <br> Invalid Field <br> **Error Code:** `100001` <br> Sip Group not found <br> **Error Code:** `200001` <br> The capability cannot be updated <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized Lack of valid authentication
Status: 404 **HTTP Status Code:** `404` <br> Not Found Phone number not found
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).
List phone number plan information
- Method:
GET - Path:
/accounts/{accountId}/number_management/plan - Tags: Phone Plan
Retrieves an account's phone number plan information, phone number usage, and availability.
Scopes: number_management_numbers:read:master
Granular Scopes: number_management:read:numbers_plan:master
Rate Limit Label: LIGHT
Responses
Status: 200 The phone number plan usage information.
Content-Type: application/json
-
next_page_tokenstring— The next page token paginates through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes. -
page_sizeinteger— The page size in use. -
plansarrayItems:
-
assignedinteger— The total number of phone number plans. -
availableinteger— The remaining number of phone number plans to assign. -
is_unlimitedboolean— If the plan is unlimited, the value is true; any other value indicates a limited plan. -
namestring— The name of the phone number plan. -
subscribedinteger— The total number of phone number plan subscriptions bought.
-
Example:
{
"next_page_token": "zi4JE9iWsGMZ92F9xhnlcZRxl2Fh47qio02",
"page_size": 100,
"plans": [
{
"assigned": 10,
"available": 10,
"subscribed": 20,
"name": "US/CA Included Phone Numbers",
"is_unlimited": true
}
]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `999` <br> Invalid param (product) <br> **Error Code:** `1002006` <br> product cannot be empty <br> **Error Code:** `1003100` <br> The next page token is either invalid or has expired <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized Lack of valid authentication
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).
List SMS campaigns
- Method:
GET - Path:
/accounts/{accountId}/number_management/sms_campaigns - Tags: SMS Campaigns
Returns a list of all SMS campaigns in a Zoom account.
Scopes: number_management_numbers:read:master
Granular Scopes: number_management:read:list_sms_campaigns:master
Rate Limit Label: LIGHT
Responses
Status: 200 **HTTP Status Code:** `200` **OK** SMS campaign listed successfully.
Content-Type: application/json
-
next_page_tokenstring— The next page token paginates through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes. -
page_sizeinteger— The number of records returned within a single API call. -
sms_campaignsarrayItems:
-
brandobject— The business information from Zoom account.-
brand_idstring— The brand's ID. -
namestring— The brand's name.
-
-
display_namestring— The display name for the SMS campaign. -
sms_campaign_idstring— The campaign's ID. -
statusstring, possible values:"active", "expired", "pending", "declined"— The status of the SMS campaign.
-
-
total_recordsinteger— The total number of records returned.
Example:
{
"next_page_token": "bkOcmnm6mn6ioYAi10BcgRiEL38WzAo6jP2",
"page_size": 30,
"sms_campaigns": [
{
"sms_campaign_id": "C-BlVwSdjvS3WXk5gzfIQFfQ",
"display_name": "Test SMS Campaign",
"status": "active",
"brand": {
"brand_id": "B-c3AN66d_Q4mrQFNUaW-G2w",
"name": "Test Campaign"
}
}
],
"total_records": 1
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized
Status: 403 **HTTP Status Code:** `403` <br> Forbidden You do not have permission.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).
Get an SMS campaign
- Method:
GET - Path:
/accounts/{accountId}/number_management/sms_campaigns/{smsCampaignId} - Tags: SMS Campaigns
Returns a specific SMS campaign.
Prerequisites
- A Pro or higher account plan
- A Zoom Phone license
Scopes: number_management_numbers:read:master
Granular Scopes: number_management:read:sms_campaign:master
Rate Limit Label: LIGHT
Responses
Status: 200 **HTTP Status Code:** `200` **OK** SMS campaign details retrieved successfully.
Content-Type: application/json
-
brandobject— The business information from Zoom account.-
brand_idstring— The brand's ID. -
namestring— The brand's name.
-
-
display_namestring— The display name for the SMS campaign. -
phone_numbersarray— The assigned phone numbers.Items:
-
numberstring— The phone number that is assigned to the SMS campaign. -
phone_number_idstring— The phone number's ID.
-
-
response_to_helpstring— Automatic reply text message after receiving help message. -
response_to_opt_instring— Automatic reply text message after receiving opt in message. -
response_to_opt_outstring— Automatic reply text message after receiving opt out message. -
service_typestring, possible values:"zoomPhone", "contactCenter"— Which service the campaign supports. -
sms_campaign_idstring— The campaign's ID. -
statusstring, possible values:"active", "expired", "pending", "declined"— The status of the SMS campaign. Returns `--` if the campaign is in an exception status.
Example:
{
"sms_campaign_id": "C-BlVwSdjvS3WXk5gzfIQFfQ",
"display_name": "Test SMS Campaign",
"status": "active",
"service_type": "zoomPhone",
"brand": {
"brand_id": "B-c3AN66d_Q4mrQFNUaW-G2w",
"name": "Test Campaign"
},
"phone_numbers": [
{
"phone_number_id": "iHE1MQAET2iV85MbfaQmwg",
"number": "+18887193005"
}
],
"response_to_opt_in": "ZOOM: Thank you for opting in for our texting notifications. Message frequency may vary. Message and Data Rates may apply. To end messaging from us, Reply with STOP. Reply with HELP for more information.",
"response_to_opt_out": "You are unsubscribed to texts from ZOOM. No more messages will be sent.",
"response_to_help": "ZOOM: You can get more assistance by visiting https://zoom.us/. Text STOP to stop receiving messages from us. You can also text START to start receiving messages from us again. You can also refer to our privacy policy on our website."
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized
Status: 403 **HTTP Status Code:** `403` <br> Forbidden You do not have permission.
Status: 404 **HTTP Status Code:** `404` <br> Not Found Invalid campaign ID.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).
Assign a phone number to SMS campaign
- Method:
POST - Path:
/accounts/{accountId}/number_management/sms_campaigns/{smsCampaignId}/phone_numbers - Tags: SMS Campaigns
Assigns a phone number to the SMS campaign.
Prerequisites
- A Business or Enterprise account
- A Zoom Phone license
Scopes: number_management_numbers:write:master
Granular Scopes: number_management:update:numbers:master
Rate Limit Label: LIGHT
Request Body
Content-Type: application/json
-
contact_number(required)string— The contact phone number of the employee issuing the letter of authorization required to port in SMS capabilities on the numbers. -
loa_authorizing_person(required)string— The name of the employee issuing the letter of authorization required to port in SMS capabilities on the numbers. -
phone_number_ids(required)array— The maximum value is 200.Items:
string -
title(required)string— The job title of the person authorizing and signing the leave of absence. -
contact_emailsstring— The contact email of the employee issuing the letter of authorization required to port in SMS capabilities on the numbers.
Example:
{
"phone_number_ids": [
"0kB2qDoSRMqzJti7VmNTIA"
],
"loa_authorizing_person": "Alex Carter",
"contact_number": "+12090000000",
"title": "Zoom Engineer",
"contact_emails": "alex.carter@zoom.us"
}
Responses
Status: 204 **HTTP Status Code:** `201` Phone numbers assigned successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `1003004` <br> Insufficient campaign capacity. <br> **Error Code:** `1003` <br> Too many numbers, should less than 200 <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized
Status: 403 **HTTP Status Code:** `403` <br> Forbidden You do not have permission.
Status: 404 **HTTP Status Code:** `404` <br> Not Found Invalid campaign ID.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).
Unassign phone number from SMS campaign
- Method:
DELETE - Path:
/accounts/{accountId}/number_management/sms_campaigns/{smsCampaignId}/phone_numbers - Tags: SMS Campaigns
Unassigns a phone number from an SMS campaign.
Prerequisites:
- A Business or Enterprise account
- A Zoom Phone license
- The campaign must have been previously assigned a Zoom Phone number
Scopes: number_management_numbers:write:master
Granular Scopes: number_management:update:numbers:master
Rate Limit Label: LIGHT
Responses
Status: 204 **HTTP Status Code:** `204` The phone number has been unassigned successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `1003` <br> Too many numbers, should less than 200 <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized
Status: 403 **HTTP Status Code:** `403` <br> Forbidden You do not have permission.
Status: 404 **HTTP Status Code:** `404` <br> Not Found Invalid campaign ID.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).
List SMS consent policies
- Method:
GET - Path:
/accounts/{accountId}/number_management/sms_consent - Tags: SMS Consent
Returns a paginated list of SMS consent policies for the account.
Scopes: number_management_numbers:read:master
Granular Scopes: number_management:read:sms_consent:master
Rate Limit Label: MEDIUM
Responses
Status: 200 **HTTP Status Code:** `200` **OK** SMS consent policies retrieved successfully.
Content-Type: application/json
-
next_page_tokenstring— 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. -
page_sizeinteger— The number of records returned within a single API call. -
sms_consentarray— List of SMS consent policies.Items:
-
account_idstring— The account ID that owns the consent policy. -
consent_idstring— The consent policy's ID. -
consent_namestring— The name of the SMS consent policy. -
create_timestring, format:date-time— The time when the consent policy was created. -
descriptionstring— The description of the SMS consent policy. -
in_out_boundobject— The message configuration for opt-in, opt-out, help, and disclaimer messages.-
disclaimerobject— The message configuration for disclaimer-
enableboolean— Whether the disclaimer is enabled. -
messagestring— The disclaimer message text.
-
-
help_messageobject— The message configuration for help-
keywordsarray— The keywords that trigger the help message.Items:
string -
messagestring— The help message sent to users when they request help.
-
-
opt_in_messageobject— The message configuration for opt-in-
confirmation_messagestring— The confirmation message sent after a successful opt-in. -
keywordsarray— The keywords that trigger the opt-in action.Items:
string -
promptstring— The prompt message sent to users to opt-in for SMS messages.
-
-
opt_out_messageobject— The message configuration for opt-out-
keywordsarray— The keywords that trigger the opt-out action.Items:
string -
messagestring— The message sent to users when they opt-out.
-
-
-
modify_timestring, format:date-time— The time when the consent policy was last modified. -
statusboolean— The status of the consent policy. `true` indicates active, `false` indicates inactive. -
used_numberinteger, format:int64— The number of phone numbers currently assigned to this consent policy.
-
-
total_recordsinteger, format:int64— The total number of records found.
Example:
{
"page_size": 30,
"total_records": 33,
"next_page_token": "bkOcmnm6mn6ioYAi10BcgRiEL38WzAo6jP2",
"sms_consent": [
{
"consent_id": "C-91H30r6xTCCpt8nNFSuhWA",
"consent_name": "ZPconsent",
"description": "This consent will be used by our employees to schedule events, provide reminders and support to our customers.",
"account_id": "KGzOF3hCTamb_Xx-bXbgqA",
"in_out_bound": {
"opt_in_message": {
"prompt": "Text START to receive text messages from ZOOM. Message frequency may vary. Message and Data Rates may apply. To end messaging from us, reply with STOP. Reply with HELP for more information.",
"keywords": [
"START",
"keyword"
],
"confirmation_message": "You're subscribed!"
},
"opt_out_message": {
"message": "You are unsubscribed to texts from ZOOM. No more messages will be sent.",
"keywords": [
"Stop",
"keyword"
]
},
"help_message": {
"message": "ZOOM: You can get more assistance by visiting https://zoom.us. Text STOP to stop receiving messages from us. You can also text START to start receiving messages from us again. You can also refer to our privacy policy on our website.",
"keywords": [
"HELP",
"keyword"
]
},
"disclaimer": {
"message": "disclaimer",
"enable": true
}
},
"status": true,
"create_time": "2024-06-01T08:55:38Z",
"modify_time": "2025-09-19T11:20:59Z",
"used_number": 48
}
]
}
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized
Status: 403 **HTTP Status Code:** `403` <br> Forbidden You do not have permission.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).
Create an SMS consent policy
- Method:
POST - Path:
/accounts/{accountId}/number_management/sms_consent - Tags: SMS Consent
Creates a new SMS consent management policy to define opt-in, opt-out, and help message configurations for SMS communications.
Scopes: number_management_numbers:write:master
Granular Scopes: number_management:write:sms_consent:master
Rate Limit Label: LIGHT
Request Body
Content-Type: application/json
-
consent_name(required)string— The SMS consent policy's name. -
in_out_bound(required)object— The message configuration for opt-in, opt-out, help, and disclaimer messages.-
disclaimer(required)object— The disclaimer message configuration.-
enable(required)boolean— Whether the disclaimer is enabled. -
message(required)string— The disclaimer message text.
-
-
help_message(required)object— The help message configuration.-
keywords(required)array— The keywords that trigger the help message.Items:
string -
message(required)string— The help message sent to users when they request help.
-
-
opt_in_message(required)object— The opt-in message configuration.-
confirmation_message(required)string— The confirmation message sent after a successful opt-in. -
keywords(required)array— The keywords that trigger the opt-in action.Items:
string -
prompt(required)string— The prompt message sent to users to opt-in for SMS messages.
-
-
opt_out_message(required)object— The opt out message configuration.-
keywords(required)array— The keywords that trigger the opt out action.Items:
string -
message(required)string— The message sent to users when they opt out.
-
-
-
status(required)boolean— The status of the consent policy. `true` indicates active, `false` indicates inactive. -
descriptionstring— The SMS consent policy's description.
Example:
{
"consent_name": "ZPconsent",
"description": "This consent will be used by our employees to schedule events, and provide reminders and support to our customers.",
"in_out_bound": {
"opt_in_message": {
"prompt": "Text START to receive text messages from ZOOM. Message frequency may vary. Message and Data Rates may apply. To end messaging from us, reply with STOP. Reply with HELP for more information.",
"keywords": [
"START",
"keyword"
],
"confirmation_message": "You're subscribed!"
},
"opt_out_message": {
"message": "You are unsubscribed to texts from ZOOM. No more messages will be sent.",
"keywords": [
"Stop",
"keyword"
]
},
"help_message": {
"message": "ZOOM: You can get more assistance by visiting https://zoom.us. Text STOP to stop receiving messages from us. You can also text START to start receiving messages from us again. You can also refer to our privacy policy on our website.",
"keywords": [
"HELP",
"keyword"
]
},
"disclaimer": {
"message": "disclaimer",
"enable": true
}
},
"status": true
}
Responses
Status: 201 **HTTP Status Code:** `201` **Created** SMS consent policy created successfully.
Content-Type: application/json
-
account_idstring— The account ID that owns the consent policy. -
capacityinteger, format:int64— The maximum number of phone numbers that can be assigned to this consent policy. -
consent_idstring— The consent policy's ID. -
consent_namestring— The SMS consent policy's name. -
create_timestring, format:date-time— The time when the consent policy was created. -
descriptionstring— The SMS consent policy's description. -
in_out_boundobject— The message configuration for opt-in, opt-out, help, and disclaimer messages.-
disclaimerobject-
enableboolean— Whether the disclaimer is enabled. -
messagestring— The disclaimer message text.
-
-
help_messageobject-
keywordsarray— The keywords that trigger the help message.Items:
string -
messagestring— The help message sent to users when they request help.
-
-
opt_in_messageobject-
confirmation_messagestring— The confirmation message sent after a successful opt in. -
keywordsarray— The keywords that trigger the opt in action.Items:
string -
promptstring— The prompt message sent to users to opt in for SMS messages.
-
-
opt_out_messageobject-
keywordsarray— The keywords that trigger the opt-out action.Items:
string -
messagestring— The message sent to users when they opt out.
-
-
-
modify_timestring, format:date-time— The time when the consent policy was last modified. -
statusboolean— The consent policy's status. `true` indicates active, `false` indicates inactive. -
used_numberinteger, format:int64— The number of phone numbers currently assigned to this consent policy. -
user_idstring— The ID of the user who created the consent policy.
Example:
{
"consent_id": "C-91H30r6xTCCpt8nNFSuhWA",
"consent_name": "ZPconsent",
"description": "This consent will be used by our employees to schedule events, provide reminders and support to our customers.",
"user_id": "0GVPDRXiSAaDb73-e2tW0A",
"account_id": "KGzOF3hCTamb_Xx-bXbgqA",
"in_out_bound": {
"opt_in_message": {
"prompt": "Text START to receive text messages from ZOOM. Message frequency may vary. Message and Data Rates may apply. To end messaging from us, reply with STOP. Reply with HELP for more information.",
"keywords": [
"START",
"keyword"
],
"confirmation_message": "You're subscribed!"
},
"opt_out_message": {
"message": "You are unsubscribed to texts from ZOOM. No more messages will be sent.",
"keywords": [
"Stop",
"keyword"
]
},
"help_message": {
"message": "ZOOM: You can get more assistance by visiting https://zoom.us. Text STOP to stop receiving messages from us. You can also text START to start receiving messages from us again. You can also refer to our privacy policy on our website.",
"keywords": [
"HELP",
"keyword"
]
},
"disclaimer": {
"message": "disclaimer",
"enable": true
}
},
"status": true,
"capacity": 999,
"create_time": "2024-06-01T08:55:38Z",
"modify_time": "2025-09-19T11:20:59Z",
"used_number": 0
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `999` <br> Invalid field. <br> **Error Code:** `1002` <br> The request body format does not match, please refer to the document <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized
Status: 403 **HTTP Status Code:** `403` <br> Forbidden You do not have permission.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).
Delete SMS consent policies
- Method:
DELETE - Path:
/accounts/{accountId}/number_management/sms_consent - Tags: SMS Consent
Deletes one or more SMS consent policies.
Scopes: number_management_numbers:write:master
Granular Scopes: number_management:delete:sms_consent:master
Rate Limit Label: MEDIUM
Request Body
Content-Type: application/json
-
consent_ids(required)array— The list of consent policy IDs to delete.Items:
string
Example:
{
"consent_ids": [
"-6QPOIFtSU-wjt2Kl2TUng",
"-72t1AufQ5mqjg44xzfcCQ"
]
}
Responses
Status: 204 **HTTP Status Code:** `204` **No Content** SMS consent policies deleted successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `999` <br> Invalid field. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized
Status: 403 **HTTP Status Code:** `403` <br> Forbidden You do not have permission.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).
Get an SMS consent policy
- Method:
GET - Path:
/accounts/{accountId}/number_management/sms_consent/{consentId} - Tags: SMS Consent
Returns a specific SMS consent policy by ID.
Scopes: number_management_numbers:read:master
Granular Scopes: number_management:read:sms_consent:master
Rate Limit Label: LIGHT
Responses
Status: 200 **HTTP Status Code:** `200` **OK** SMS consent policy details retrieved successfully.
Content-Type: application/json
-
account_idstring— The account ID that owns the consent policy. -
capacityinteger, format:int64— The maximum number of phone numbers that can be assigned to this consent policy. -
consent_idstring— The consent policy's ID. -
consent_namestring— The name of the SMS consent policy. -
create_timestring, format:date-time— The time when the consent policy was created. -
descriptionstring— The description of the SMS consent policy. -
in_out_boundobject— The message configuration for opt-in, opt-out, help, and disclaimer messages.-
disclaimerobject— The message configuration for disclaimer-
enableboolean— Whether the disclaimer is enabled. -
messagestring— The disclaimer message text.
-
-
help_messageobject— The message configuration for help-
keywordsarray— The keywords that trigger the help message.Items:
string -
messagestring— The help message sent to users when they request help.
-
-
opt_in_messageobject— The message configuration for opt-in-
confirmation_messagestring— The confirmation message sent after a successful opt-in. -
keywordsarray— The keywords that trigger the opt-in action.Items:
string -
promptstring— The prompt message sent to users to opt-in for SMS messages.
-
-
opt_out_messageobject— The message configuration for opt-out-
keywordsarray— The keywords that trigger the opt-out action.Items:
string -
messagestring— The message sent to users when they opt-out.
-
-
-
modify_timestring, format:date-time— The time when the consent policy was last modified. -
statusboolean— The status of the consent policy. `true` indicates active, `false` indicates inactive. -
used_numberinteger, format:int64— The number of phone numbers currently assigned to this consent policy. -
user_idstring— The ID of the user who created the consent policy.
Example:
{
"consent_id": "C-91H30r6xTCCpt8nNFSuhWA",
"consent_name": "ZPconsent",
"description": "This consent will be used by our employees to schedule events, provide reminders and support to our customers.",
"user_id": "0GVPDRXiSAaDb73-e2tW0A",
"account_id": "KGzOF3hCTamb_Xx-bXbgqA",
"in_out_bound": {
"opt_in_message": {
"prompt": "Text START to receive text messages from ZOOM. Message frequency may vary. Message and Data Rates may apply. To end messaging from us, reply with STOP. Reply with HELP for more information.",
"keywords": [
"START",
"keyword"
],
"confirmation_message": "You're subscribed!"
},
"opt_out_message": {
"message": "You are unsubscribed to texts from ZOOM. No more messages will be sent.",
"keywords": [
"Stop",
"keyword"
]
},
"help_message": {
"message": "ZOOM: You can get more assistance by visiting https://zoom.us. Text STOP to stop receiving messages from us. You can also text START to start receiving messages from us again. You can also refer to our privacy policy on our website.",
"keywords": [
"HELP",
"keyword"
]
},
"disclaimer": {
"message": "disclaimer",
"enable": true
}
},
"status": true,
"capacity": 999,
"create_time": "2024-06-01T08:55:38Z",
"modify_time": "2025-09-19T11:20:59Z",
"used_number": 0
}
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized
Status: 403 **HTTP Status Code:** `403` <br> Forbidden You do not have permission.
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `1002013` <br> The consent does not exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).
Update an SMS consent policy
- Method:
PATCH - Path:
/accounts/{accountId}/number_management/sms_consent/{consentId} - Tags: SMS Consent
Updates an existing SMS consent policy. Only provided fields will be updated.
Scopes: number_management_numbers:write:master
Granular Scopes: number_management:update:sms_consent:master
Rate Limit Label: LIGHT
Request Body
Content-Type: application/json
-
consent_namestring— The SMS consent policy's name. -
descriptionstring— The SMS consent policy's description. -
in_out_boundobject— The message configuration for opt-in, opt-out, help, and disclaimer messages.-
disclaimerobject— The disclaimer message configuration.-
enableboolean— Whether the disclaimer is enabled. -
messagestring— The disclaimer message text.
-
-
help_messageobject— The help message configuration.-
keywordsarray— The keywords that trigger the help message.Items:
string -
messagestring— The help message sent to users when they request help.
-
-
opt_in_messageobject— The opt-in message configuration.-
confirmation_messagestring— The confirmation message sent after a successful opt-in. -
keywordsarray— The keywords that trigger the opt-in action.Items:
string -
promptstring— The prompt message sent to users to opt-in for SMS messages.
-
-
opt_out_messageobject— The opt out message configuration.-
keywordsarray— The keywords that trigger the opt out action.Items:
string -
messagestring— The message sent to users when they opt out.
-
-
-
statusboolean— The consent policy's status. `true` indicates active, `false` indicates inactive.
Example:
{
"consent_name": "ZPconsent Updated",
"description": "Updated description for the consent policy.",
"in_out_bound": {
"opt_in_message": {
"prompt": "Text START to receive text messages from ZOOM. Message frequency may vary. Message and Data Rates may apply. To end messaging from us, reply with STOP. Reply with HELP for more information.",
"keywords": [
"START",
"keyword"
],
"confirmation_message": "You're subscribed!"
},
"opt_out_message": {
"message": "You are unsubscribed to texts from ZOOM. No more messages will be sent.",
"keywords": [
"Stop",
"keyword"
]
},
"help_message": {
"message": "ZOOM: You can get more assistance by visiting https://zoom.us. Text STOP to stop receiving messages from us. You can also text START to start receiving messages from us again. You can also refer to our privacy policy on our website.",
"keywords": [
"HELP",
"keyword"
]
},
"disclaimer": {
"message": "disclaimer",
"enable": true
}
},
"status": true
}
Responses
Status: 204 **HTTP Status Code:** `204` **No Content** SMS consent policy updated successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `999` <br> Invalid field. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized
Status: 403 **HTTP Status Code:** `403` <br> Forbidden You do not have permission.
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `1002013` <br> The consent does not exist. <br>
List phone numbers assigned to SMS consent policy
- Method:
GET - Path:
/accounts/{accountId}/number_management/sms_consent/{consentId}/phone_numbers - Tags: SMS Consent
Returns a paginated list of phone numbers assigned to a specific SMS consent policy.
Scopes: number_management_numbers:read:master
Granular Scopes: number_management:read:sms_consent:master
Rate Limit Label: MEDIUM
Responses
Status: 200 **HTTP Status Code:** `200` **OK** Phone numbers retrieved successfully.
Content-Type: application/json
-
next_page_tokenstring— Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes. -
page_sizeinteger— The number of records returned within a single API call. -
sms_consent_numberarray— List of phone numbers assigned to the consent policy.Items:
-
account_idstring— The account ID that owns the phone number. -
phone_numberstring— The phone number assigned to the consent policy. -
phone_number_idstring— The phone number's ID.
-
-
total_recordsinteger, format:int64— The total number of records found.
Example:
{
"page_size": 30,
"total_records": 33,
"next_page_token": "bkOcmnm6mn6ioYAi10BcgRiEL38WzAo6jP2",
"sms_consent_number": [
{
"phone_number_id": "-6QPOIFtSU-wjt2Kl2TUng",
"phone_number": "+12095805275",
"account_id": "KGzOF3hCTamb_Xx-bXbgqA"
}
]
}
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized
Status: 403 **HTTP Status Code:** `403` <br> Forbidden You do not have permission.
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `1002013` <br> The consent does not exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).
Assign phone numbers to SMS consent policy
- Method:
POST - Path:
/accounts/{accountId}/number_management/sms_consent/{consentId}/phone_numbers - Tags: SMS Consent
Assigns one or more phone numbers to an SMS consent policy.
Scopes: number_management_numbers:write:master
Granular Scopes: number_management:write:numbers:master
Rate Limit Label: MEDIUM
Request Body
Content-Type: application/json
-
phone_number_ids(required)array— The list of phone number IDs to assign to the consent policy.Items:
string
Example:
{
"phone_number_ids": [
"-6QPOIFtSU-wjt2Kl2TUng",
"-72t1AufQ5mqjg44xzfcCQ"
]
}
Responses
Status: 201 **HTTP Status Code:** `201` **Created** Phone numbers assigned successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `1003` <br> Too many numbers, should less than 200 <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized
Status: 403 **HTTP Status Code:** `403` <br> Forbidden You do not have permission.
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `1002013` <br> The consent does not exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).
Unassign phone numbers from SMS consent policy
- Method:
DELETE - Path:
/accounts/{accountId}/number_management/sms_consent/{consentId}/phone_numbers - Tags: SMS Consent
Unassigns one or more phone numbers from an SMS consent policy.
Scopes: number_management_numbers:write:master
Granular Scopes: number_management:delete:numbers:master
Rate Limit Label: MEDIUM
Request Body
Content-Type: application/json
-
phone_number_ids(required)array— The list of phone number IDs to unassign from the consent policy.Items:
string
Example:
{
"phone_number_ids": [
"-6QPOIFtSU-wjt2Kl2TUng",
"-72t1AufQ5mqjg44xzfcCQ"
]
}
Responses
Status: 204 **HTTP Status Code:** `204` **No Content** Phone numbers unassigned successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `1003` <br> Too many numbers, should less than 200 <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized
Status: 403 **HTTP Status Code:** `403` <br> Forbidden You do not have permission.
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `1002013` <br> The consent does not exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).
List ported numbers
- Method:
GET - Path:
/accounts/{accountId}/number_management/ported_numbers/orders - Tags: Setting
Returns a list of ported numbers in a Zoom account.
Scopes: number_management_numbers:read:master
Granular Scopes: number_management:read:list_ported_numbers:master
Rate Limit Label: LIGHT
Responses
Status: 200 **HTTP Status Code:** `200` **OK** Ported Phone numbers listed successfully.
Content-Type: application/json
-
next_page_tokenstring— The next page token paginates through large result sets. A next page token returns whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes. -
page_sizeinteger— The number of records returned within a single API call. -
ported_numbersarrayItems:
-
numbersarray— The ported numbers.Items:
string -
order_idstring— The ported numbers' order ID. -
replacing_numbersarray— The ported numbers' replacement numbers.Items:
-
source_numberstring— The source number. -
target_numberstring— The replaced number.
-
-
statusstring, possible values:"Not_Submitted", "Waiting", "Processing", "Successfully", "Rejected", "Canceled", "FOC"— The ported numbers' status. -
submission_date_timestring— The time ported numbers were submitted (format: 'yyyy-MM-ddThh:dd:ssZ').
-
-
total_recordsinteger— The total number of records returned.
Example:
{
"next_page_token": "R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42",
"page_size": 30,
"ported_numbers": [
{
"numbers": [
"+12058945752"
],
"order_id": "2021080307332974349",
"replacing_numbers": [
{
"source_number": "+12058945752",
"target_number": "+12058945755"
}
],
"status": "Canceled",
"submission_date_time": "2021-08-03T07:33:29Z"
}
],
"total_records": 2
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized
Status: 403 **HTTP Status Code:** `403` <br> Forbidden You do not have permission
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).
Get ported numbers details
- Method:
GET - Path:
/accounts/{accountId}/number_management/ported_numbers/orders/{orderId} - Tags: Setting
Returns the details on the ported numbers by specifying order_id.
Prerequisites
- A Pro or higher account plan
- A Zoom phone license
Scopes: number_management_numbers:read:master
Granular Scopes: number_management:read:ported_number:master
Rate Limit Label: LIGHT
Responses
Status: 200 **HTTP Status Code:** `200` **OK** Ported numbers details retrieved successfully.
Content-Type: application/json
-
contact_emailsstring— The contact emails of transferring numbers. -
contact_numberstring— The contact numbers for transferring numbers. -
ispstring— The ported numbers' ISP. -
numbersarray— The ported numbers.Items:
string -
order_idstring— The ported numbers' order ID. -
original_billing_infoobject— The ported numbers' original billing info.-
account_numberstring -
addressobject-
citystring -
countrystring -
house_numberstring -
state_codestring -
street_namestring -
zipstring
-
-
authorizing_personstring -
billing_telephone_numberstring -
companystring -
customer_requested_datestring -
pinstring
-
-
printed_namestring— The printed names on transferring numbers. -
replacing_numbersarray— The ported numbers' replacement numbers.Items:
-
source_numberstring— The source number. -
target_numberstring— The replaced number.
-
-
statusstring, possible values:"Not_Submitted", "Waiting", "Processing", "Successfully", "Rejected", "Canceled", "FOC"— The ported numbers' status. -
submission_date_timestring— The time ported numbers were submitted (format: 'yyyy-MM-ddThh:dd:ssZ').
Example:
{
"contact_emails": "example@163.com",
"contact_number": "2058945753",
"isp": "Twilio International",
"numbers": [
"+12058945752"
],
"order_id": "2021080307332974349",
"original_billing_info": {
"account_number": "111223",
"address": {
"city": "San Jose",
"country": "US",
"house_number": "55",
"state_code": "CA",
"street_name": "ALMADEN BLVD",
"zip": "95113"
},
"authorizing_person": "zz",
"billing_telephone_number": "2058945751",
"company": "zm",
"customer_requested_date": "2021-08-06",
"pin": "111223"
},
"printed_name": "Jiang",
"replacing_numbers": [
{
"source_number": "+12058945752",
"target_number": "+12058945755"
}
],
"status": "Canceled",
"submission_date_time": "2021-08-03T07:33:29Z"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Port in order does not exist <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized
Status: 403 **HTTP Status Code:** `403` <br> Forbidden You do not have permission
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).
List SIP groups
- Method:
GET - Path:
/accounts/{accountId}/number_management/sip_groups - Tags: Setting
Returns a list of SIP (Session Initiation Protocol) groups.
Prerequisites
- Pro or a higher account with Zoom Phone license
- Account owner or admin permissions
Scopes: number_management_numbers:read:master
Granular Scopes: number_management:read:list_sip_groups:master
Rate Limit Label: LIGHT
Responses
Status: 200 **HTTP Status Code:** `200` SIP groups successfully listed.
Content-Type: application/json
-
next_page_tokenstring— The next page token paginates through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes. -
sip_groupsarray— The SIP group information.Items:
-
display_name(required)string— The SIP group's display name. -
sip_group_id(required)string— The SIP group's ID. -
descriptionstring— The SIP group's description. -
send_sip_group_nameboolean— Whether the SIP group's name is sent in the SIP header. -
sip_trunkobject— The SIP trunk group.-
name(required)string— The SIP trunk group's name. -
sip_trunk_id(required)string— The SIP trunk's ID. -
typestring, possible values:"BYOC", "BYOP"— The types of SIP trunks
-
-
source_systemstring, possible values:"ZOOM_PHONE", "ZOOM_CONTACT_CENTER", "COMMON"— The source of BYOC SIP group.
-
-
total_recordsinteger— The number of records returned with a single API call.
Example:
{
"next_page_token": "IXIhcpJWscHfISSKTcdl2QpSMLyRE38zH92",
"total_records": 88,
"sip_groups": [
{
"description": "test SIP group",
"display_name": "RRRR",
"sip_group_id": "8MhK7ea4Q4ihIQ4TD_g0kw",
"send_sip_group_name": false,
"sip_trunk": {
"sip_trunk_id": "VWQU-veBQnm08EtBkUGnbw",
"name": "TESTAPI01",
"type": "BYOC"
},
"source_system": "ZOOM_PHONE"
}
]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `1002_006` <br> product cannot be empty <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized
Status: 403 **HTTP Status Code:** `403` <br> Forbidden You do not have permission.
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).
List BYOC SIP trunks
- Method:
GET - Path:
/accounts/{accountId}/number_management/sip_trunks - Tags: Setting
Returns a list of an account's assigned BYOC (Bring Your Own Carrier) SIP (Session Initiation Protocol) trunks.
Scopes: number_management_numbers:read:master
Granular Scopes: number_management:read:list_sip_trunks:master
Rate Limit Label: LIGHT
Responses
Status: 200 **HTTP Status Codes**: `200` OK.
Content-Type: application/json
-
byoc_sip_trunkarrayItems:
-
name(required)string— The display name of the SIP Trunk. -
sip_trunk_id(required)string— The unique SIP Trunk ID. -
carrierstring— The name of the carrier. -
carrier_accountstring— The account associated to the carrier. -
regionstring— The region of the carrier. -
sbc_labelstring— The Session Border Controller (SBC) routing label. -
source_systemstring, possible values:"COMMON", "ZOOM_PHONE", "ZOOM_CONTACT_CENTER"— The source of BYOC SIP Trunk
-
-
next_page_tokenstring— The next page token paginates through a large set of results. It returns whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes. -
total_recordsinteger, default:30— The number of records returned within a single API call. The default is **30**, and the maximum is **100**.
Example:
{
"byoc_sip_trunk": [
{
"carrier": "Bandwidth",
"carrier_account": "123123131313",
"sip_trunk_id": "fVA-LsQhQAC2fTS7NiccFA",
"name": "TestSipTrunk",
"region": "newqa01sipjp01",
"sbc_label": "Test",
"source_system": "COMMON"
}
],
"next_page_token": "Ds6anZEv59aLMmTSrfF4wmHYCMiYXMWhRQ2",
"total_records": 30
}