openapi: 3.2.0
info:
title: Number Management SMS Campaigns API
description: 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.
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: SMS Campaigns
paths:
/number_management/sms_campaigns:
get:
tags:
- SMS Campaigns
summary: List SMS campaigns
description: 'Returns a list of all SMS campaigns in a Zoom account.
**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `number_management_numbers:read:admin`
**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `number_management:read:list_sms_campaigns:admin`
**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`'
operationId: listAccountSMSCampaigns
parameters:
- name: page_size
in: query
description: The number of records returned 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 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.
required: false
schema:
type: string
example: BJLYC6PABbAHdjwSkGVQeeR6B1juwHqj3G2
responses:
'200':
description: "**HTTP Status Code:** `200` **OK** \n \nSMS campaign listed successfully."
content:
application/json:
schema:
type: object
properties:
next_page_token:
type: string
description: 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.
example: bkOcmnm6mn6ioYAi10BcgRiEL38WzAo6jP2
page_size:
type: integer
description: The number of records returned within a single API call.
example: 30
sms_campaigns:
type: array
items:
type: object
properties:
sms_campaign_id:
type: string
description: The campaign's ID.
example: C-BlVwSdjvS3WXk5gzfIQFfQ
display_name:
type: string
description: The display name for the SMS campaign.
example: Test SMS Campaign
status:
type: string
description: The status of the SMS campaign.
example: active
enum:
- active
- expired
- pending
- declined
brand:
type: object
properties:
brand_id:
type: string
description: The brand's ID.
example: B-c3AN66d_Q4mrQFNUaW-G2w
name:
type: string
description: The brand's name.
example: Test Campaign
description: The business information from Zoom account.
total_records:
type: integer
description: The total number of records returned.
example: 1
'400':
description: "**HTTP Status Code:** `400`
\n Bad Request \n\n "
'401':
description: "**HTTP Status Code:** `401`
\n Unauthorized \n\n "
'403':
description: "**HTTP Status Code:** `403`
\n Forbidden You do not have permission. \n\n "
'429':
description: "**HTTP Status Code:** `429`
\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "
security:
- openapi_oauth:
- number_management_numbers:read:admin
- number_management:read:list_sms_campaigns:admin
openapi_authorization: []
x-extensions:
x-permissions:
- SmsCampaigns:Read
x-macro-scopes:
- number_management_numbers:read:admin
x-granular-scopes:
- number_management:read:list_sms_campaigns:admin
/number_management/sms_campaigns/{smsCampaignId}:
get:
tags:
- SMS Campaigns
summary: Get an SMS campaign
description: "Returns a specific SMS campaign.\n\n**Prerequisites** \n* A Pro or higher account plan \n* A Zoom Phone license\n\n\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `number_management_numbers:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `number_management:read:sms_campaign:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`"
operationId: GetSMSCampaign
parameters:
- name: smsCampaignId
in: path
required: true
schema:
type: string
responses:
'200':
description: "**HTTP Status Code:** `200` **OK** \n \nSMS campaign details retrieved successfully."
content:
application/json:
schema:
type: object
properties:
sms_campaign_id:
type: string
description: The campaign's ID.
example: C-BlVwSdjvS3WXk5gzfIQFfQ
display_name:
type: string
description: The display name for the SMS campaign.
example: Test SMS Campaign
status:
type: string
description: The status of the SMS campaign. Returns `--` if the campaign is in an exception status.
example: active
enum:
- active
- expired
- pending
- declined
service_type:
type: string
description: Which service the campaign supports.
example: zoomPhone
enum:
- zoomPhone
- contactCenter
brand:
type: object
properties:
brand_id:
type: string
description: The brand's ID.
example: B-c3AN66d_Q4mrQFNUaW-G2w
name:
type: string
description: The brand's name.
example: Test Campaign
description: The business information from Zoom account.
phone_numbers:
type: array
description: The assigned phone numbers.
items:
type: object
properties:
phone_number_id:
type: string
description: The phone number's ID.
example: iHE1MQAET2iV85MbfaQmwg
number:
type: string
description: The phone number that is assigned to the SMS campaign.
example: '+18887193005'
response_to_opt_in:
type: string
description: Automatic reply text message after receiving opt in message.
example: '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:
type: string
description: Automatic reply text message after receiving opt out message.
example: You are unsubscribed to texts from ZOOM. No more messages will be sent.
response_to_help:
type: string
description: Automatic reply text message after receiving help message.
example: '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.'
'400':
description: "**HTTP Status Code:** `400`
\n Bad Request \n\n "
'401':
description: "**HTTP Status Code:** `401`
\n Unauthorized \n\n "
'403':
description: "**HTTP Status Code:** `403`
\n Forbidden You do not have permission. \n\n "
'404':
description: "**HTTP Status Code:** `404`
\n Not Found Invalid campaign ID. \n\n "
'429':
description: "**HTTP Status Code:** `429`
\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "
security:
- openapi_oauth:
- number_management_numbers:read:admin
- number_management:read:sms_campaign:admin
openapi_authorization: []
x-extensions:
x-permissions:
- SmsCampaigns:Read
x-macro-scopes:
- number_management_numbers:read:admin
x-granular-scopes:
- number_management:read:sms_campaign:admin
/number_management/sms_campaigns/{smsCampaignId}/phone_numbers:
post:
tags:
- SMS Campaigns
summary: Assign a phone number to SMS campaign
description: "[Assigns a phone number to the SMS campaign](https://support.zoom.us/hc/en-us/articles/5016496738445-SMS-MMS-10DLC-Compliance-for-Zoom-Phone-and-Zoom-Contact-Center#h_01FYVVQM1WMW5JD48YNY3J581B).\n\n**Prerequisites** \n* A Business or Enterprise account \n* A Zoom Phone license\n\n\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `number_management_numbers:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `number_management:update:numbers:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`"
operationId: assignCampaignPhoneNumbers
parameters:
- name: smsCampaignId
in: path
description: The unique identifier of the campaign to which the phone number will be assigned.
required: true
schema:
type: string
example: C-BlVwSdjvS3WXk5gzfIQFfQ
requestBody:
description: The phone number ID in the request body.
content:
application/json:
schema:
required:
- contact_number
- loa_authorizing_person
- phone_number_ids
- title
type: object
properties:
phone_number_ids:
maxItems: 200
type: array
description: The maximum value is 200.
items:
type: string
example: 0kB2qDoSRMqzJti7VmNTIA
loa_authorizing_person:
type: string
description: The name of the employee issuing the letter of authorization required to port in SMS capabilities on the numbers.
example: Alex Carter
contact_number:
type: string
description: The contact phone number of the employee issuing the letter of authorization required to port in SMS capabilities on the numbers.
example: '+12090000000'
title:
type: string
description: The job title of the person authorizing and signing the leave of absence.
example: Zoom Engineer
contact_emails:
type: string
description: The contact email of the employee issuing the letter of authorization required to port in SMS capabilities on the numbers.
example: alex.carter@zoom.us
responses:
'204':
description: "**HTTP Status Code:** `201` \n \nPhone numbers assigned successfully. \n"
'400':
description: "**HTTP Status Code:** `400`
\n Bad Request \n\n **Error Code:** `1003004`
\n Insufficient campaign capacity.
\n**Error Code:** `1003`
\n Too many numbers, should less than 200
\n"
'401':
description: "**HTTP Status Code:** `401`
\n Unauthorized \n\n "
'403':
description: "**HTTP Status Code:** `403`
\n Forbidden You do not have permission. \n\n "
'404':
description: "**HTTP Status Code:** `404`
\n Not Found Invalid campaign ID. \n\n "
'429':
description: "**HTTP Status Code:** `429`
\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "
security:
- openapi_oauth:
- number_management_numbers:write:admin
- number_management:update:numbers:admin
openapi_authorization: []
x-extensions:
x-permissions:
- PbxAdmin:Edit
- ContactCenterMgt:Edit
x-macro-scopes:
- number_management_numbers:write:admin
x-granular-scopes:
- number_management:update:numbers:admin
delete:
tags:
- SMS Campaigns
summary: Unassign phone number from SMS campaign
description: "[Unassigns a phone number from an SMS campaign](https://support.zoom.us/hc/en-us/articles/5016496738445-SMS-MMS-10DLC-Compliance-for-Zoom-Phone-and-Zoom-Contact-Center#h_01FYVVSPVM8MZN4Y9EW5690QHH).\n\n\n**Prerequisites:** \n* A Business or Enterprise account \n* A Zoom Phone license \n* The campaign must have been previously assigned a Zoom Phone number\n\n\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `number_management_numbers:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `number_management:update:numbers:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`"
operationId: unassignCampaignPhoneNumber
parameters:
- name: smsCampaignId
in: path
required: true
schema:
type: string
- name: phone_number_ids
in: query
description: A list of phone numbers to unassign from the SMS campaign.
required: true
schema:
maxItems: 200
type: array
example:
- iHE1MQAET2iV85MbfaQmwg
- vZWksdNbRkKTdzOth09skw
items:
type: string
responses:
'204':
description: '**HTTP Status Code:** `204`
The phone number has been unassigned successfully.'
'400':
description: "**HTTP Status Code:** `400`
\n Bad Request \n\n **Error Code:** `1003`
\n Too many numbers, should less than 200
\n"
'401':
description: "**HTTP Status Code:** `401`
\n Unauthorized \n\n "
'403':
description: "**HTTP Status Code:** `403`
\n Forbidden You do not have permission. \n\n "
'404':
description: "**HTTP Status Code:** `404`
\n Not Found Invalid campaign ID. \n\n "
'429':
description: "**HTTP Status Code:** `429`
\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "
security:
- openapi_oauth:
- number_management_numbers:write:admin
- number_management:update:numbers:admin
openapi_authorization: []
x-extensions:
x-permissions:
- PbxAdmin:Edit
- ContactCenterMgt:Edit
x-macro-scopes:
- number_management_numbers:write:admin
x-granular-scopes:
- number_management:update:numbers:admin
components:
securitySchemes:
openapi_authorization:
type: apiKey
name: Authorization
in: header
openapi_oauth:
type: oauth2
flows:
authorizationCode:
authorizationUrl: /
tokenUrl: ''
refreshUrl: ''
scopes:
number_management_numbers:read:admin: number_management_numbers:read:admin
number_management:read:list_carrier_peering_numbers:admin: number_management:read:list_carrier_peering_numbers:admin
number_management:read:list_peering_numbers:admin: number_management:read:list_peering_numbers:admin
number_management_numbers:write:admin: number_management_numbers:write:admin
number_management:delete:peering_number:admin: number_management:delete:peering_number:admin
number_management:write:peering_number:admin: number_management:write:peering_number:admin
number_management:update:peering_number:admin: number_management:update:peering_number:admin
number_management:write:numbers:admin: number_management:write:numbers:admin
number_management:write:byoc_numbers:admin: number_management:write:byoc_numbers:admin
number_management:read:list_numbers:admin: number_management:read:list_numbers:admin
number_management_numbers:write:master: number_management_numbers:write:master
number_management:delete:numbers:admin: number_management:delete:numbers:admin
number_management:read:numbers:admin: number_management:read:numbers:admin
number_management:update:numbers:admin: number_management:update:numbers:admin
number_management:read:numbers_plan:admin: number_management:read:numbers_plan:admin
number_management:read:list_sms_campaigns:admin: number_management:read:list_sms_campaigns:admin
number_management:read:sms_campaign:admin: number_management:read:sms_campaign:admin
number_management:delete:sms_consent:admin: number_management:delete:sms_consent:admin
number_management:read:sms_consent:admin: number_management:read:sms_consent:admin
number_management:write:sms_consent:admin: number_management:write:sms_consent:admin
number_management:update:sms_consent:admin: number_management:update:sms_consent:admin
number_management:read:list_ported_numbers:admin: number_management:read:list_ported_numbers:admin
number_management:read:ported_number:admin: number_management:read:ported_number:admin
number_management:read:list_sip_groups:admin: number_management:read:list_sip_groups:admin
number_management:read:list_sip_trunks:admin: number_management:read:list_sip_trunks:admin
externalDocs:
description: Find out more about Swagger
url: https://swagger.io