Zoom Phone SMS Consent API

The SMS Consent API from Zoom Phone — 4 operation(s) for sms consent.

Operations 9

GET /phone/sms_consent/{consentId}/phone_numbers/opt_status List opt statuses of phone numbers assigned to SMS consent #
GET /number_management/sms_consent List SMS consent policies #
POST /number_management/sms_consent Create an SMS consent policy #
DELETE /number_management/sms_consent Delete SMS consent policies #
GET /number_management/sms_consent/{consentId} Get an SMS consent policy #
PATCH /number_management/sms_consent/{consentId} Update an SMS consent policy #
GET /number_management/sms_consent/{consentId}/phone_numbers List phone numbers assigned to SMS consent policy #
POST /number_management/sms_consent/{consentId}/phone_numbers Assign phone numbers to SMS consent policy #
DELETE /number_management/sms_consent/{consentId}/phone_numbers Unassign phone numbers from SMS consent policy #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/zoom-phone-sms-consent-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

zoom-phone-sms-consent-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Zoom Phone SMS Consent API
  version: '2'
  contact:
    name: Zoom Developers
    url: https://developer.zoom.us/
  termsOfService: https://zoom.us/docs/en-us/zoom_api_license_and_tou.html
  description: 'Operations tagged SMS Consent across 2 of this provider''s published API definitions: zoom-phone-api-openapi.json, zoom-phone-number-management-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.zoom.us/v2
tags:
- name: SMS Consent
paths:
  /phone/sms_consent/{consentId}/phone_numbers/opt_status:
    get:
      tags:
      - SMS Consent
      summary: List opt statuses of phone numbers assigned to SMS consent
      description: 'Returns the opt statuses of phone numbers that are assigned to SMS consent.


        **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `phone:read:admin`


        **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `phone:read:sms_consent_number_opt_status:admin`


        **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`'
      operationId: getNumberConsentOptStatus
      parameters:
      - name: consentId
        in: path
        description: The SMS consent ID.
        required: true
        schema:
          type: string
          example: C-_2Vkm3BsRoqxybJbP9HqFA
      - name: consumer_phone_number
        in: query
        description: The end user's phone number that sends the Opt-in or Opt-out keyword to the Zoom Phone number.
        required: true
        schema:
          type: string
          example: '15043449240'
      - name: zoom_phone_user_numbers
        in: query
        description: The Zoom users' phone numbers that receive the Opt-in or Opt-out keyword from the end user.
        required: true
        schema:
          maxItems: 10
          uniqueItems: true
          type: array
          example:
          - '12094436304'
          items:
            type: string
            example: '12094436304'
      responses:
        '200':
          description: The list of opt statuses for each pair of sender's phone number and receiver's phone number.
          content:
            application/json:
              schema:
                required:
                - phone_number_consent_opt_statuses
                type: object
                properties:
                  phone_number_consent_opt_statuses:
                    maxItems: 10
                    uniqueItems: true
                    type: array
                    description: The list of opt statuses for each number pair.
                    items:
                      required:
                      - consumer_phone_number
                      - opt_status
                      - zoom_phone_user_number
                      type: object
                      properties:
                        consumer_phone_number:
                          type: string
                          description: The end user's phone number in E164 format that sends the Opt-in or Opt-out keyword to the Zoom Phone number.
                          example: '+15043449240'
                        zoom_phone_user_number:
                          type: string
                          description: The Zoom user's phone number in E164 format that receives the Opt-in or Opt-out keyword from the end user.
                          example: '+12094436304'
                        opt_status:
                          type: string
                          description: The opt status.
                          example: opt_out
                          enum:
                          - pending
                          - opt_out
                          - opt_in
                      description: The opt status per a number pair.
                description: The list of opt statuses.
        '400':
          description: "**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `400` <br>\n Size of unique receiver phone numbers cannot exceed the predefined limit. <br>\n**Error Code:** `300` <br>\n Validation Failed.\n{\n      \"field\": \"zoom_phone_user_numbers\",\n      \"message\": \"Missing field.\"\n} <br>\n"
        '404':
          description: "**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `404` <br>\n The consent does not exist <br>\n"
        '429':
          description: "**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "
      security:
      - openapi_oauth:
        - phone:read:admin
        - phone:read:sms_consent_number_opt_status:admin
        openapi_authorization: []
      x-extensions:
        x-permissions: []
        x-macro-scopes:
        - phone:read:admin
        x-granular-scopes:
        - phone:read:sms_consent_number_opt_status:admin
    servers:
    - url: https://api.zoom.us/v2
  /number_management/sms_consent:
    get:
      tags:
      - SMS Consent
      summary: List SMS consent policies
      description: 'Returns a paginated list of SMS consent policies for the 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:sms_consent:admin`


        **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`'
      operationId: ListSMSConsents
      parameters:
      - name: page_size
        in: query
        description: The number of records returned within a single API call.
        required: false
        schema:
          maximum: 300
          minimum: 1
          type: integer
          example: 30
        example: 30
      - name: next_page_token
        in: query
        description: The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.
        required: false
        schema:
          type: string
          example: BJLYC6PABbAHdjwSkGVQeeR6B1juwHqj3G2
      responses:
        '200':
          description: "**HTTP Status Code:** `200` **OK**  \n \nSMS consent policies retrieved successfully."
          content:
            application/json:
              schema:
                type: object
                properties:
                  page_size:
                    type: integer
                    description: The number of records returned within a single API call.
                    example: 30
                  total_records:
                    type: integer
                    description: The total number of records found.
                    format: int64
                    example: 33
                  next_page_token:
                    type: string
                    description: The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.
                    example: bkOcmnm6mn6ioYAi10BcgRiEL38WzAo6jP2
                  sms_consent:
                    type: array
                    description: List of SMS consent policies.
                    items:
                      type: object
                      properties:
                        consent_id:
                          type: string
                          description: The consent policy's ID.
                          example: C-91H30r6xTCCpt8nNFSuhWA
                        consent_name:
                          type: string
                          description: The name of the SMS consent policy.
                          example: ZPconsent
                        description:
                          type: string
                          description: The description of the SMS consent policy.
                          example: This consent will be used by our employees to schedule events, provide reminders and support to our customers.
                        account_id:
                          type: string
                          description: The account ID that owns the consent policy.
                          example: KGzOF3hCTamb_Xx-bXbgqA
                        in_out_bound:
                          type: object
                          properties:
                            opt_in_message:
                              type: object
                              properties:
                                prompt:
                                  type: string
                                  description: The prompt message sent to users to opt-in for SMS messages.
                                  example: 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:
                                  type: array
                                  description: The keywords that trigger the opt-in action.
                                  example:
                                  - START
                                  - keyword
                                  items:
                                    type: string
                                confirmation_message:
                                  type: string
                                  description: The confirmation message sent after a successful opt-in.
                                  example: You're subscribed!
                              description: The message configuration for opt-in
                            opt_out_message:
                              type: object
                              properties:
                                message:
                                  type: string
                                  description: The message sent to users when they opt-out.
                                  example: You are unsubscribed to texts from ZOOM. No more messages will be sent.
                                keywords:
                                  type: array
                                  description: The keywords that trigger the opt-out action.
                                  example:
                                  - Stop
                                  - keyword
                                  items:
                                    type: string
                              description: The message configuration for opt-out
                            help_message:
                              type: object
                              properties:
                                message:
                                  type: string
                                  description: The help message sent to users when they request help.
                                  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.'
                                keywords:
                                  type: array
                                  description: The keywords that trigger the help message.
                                  example:
                                  - HELP
                                  - keyword
                                  items:
                                    type: string
                              description: The message configuration for help
                            disclaimer:
                              type: object
                              properties:
                                message:
                                  type: string
                                  description: The disclaimer message text.
                                  example: disclaimer
                                enable:
                                  type: boolean
                                  description: Whether the disclaimer is enabled.
                                  example: true
                              description: The message configuration for disclaimer
                          description: The message configuration for opt-in, opt-out, help, and disclaimer messages.
                        status:
                          type: boolean
                          description: The status of the consent policy. `true` indicates active, `false` indicates inactive.
                          example: true
                        create_time:
                          type: string
                          description: The time when the consent policy was created.
                          format: date-time
                          example: '2024-06-01T08:55:38Z'
                        modify_time:
                          type: string
                          description: The time when the consent policy was last modified.
                          format: date-time
                          example: '2025-09-19T11:20:59Z'
                        used_number:
                          type: integer
                          description: The number of phone numbers currently assigned to this consent policy.
                          format: int64
                          example: 48
        '401':
          description: "**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "
        '403':
          description: "**HTTP Status Code:** `403` <br>\n Forbidden  You do not have permission. \n\n "
        '429':
          description: "**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "
      security:
      - openapi_oauth:
        - number_management_numbers:read:admin
        - number_management:read:sms_consent:admin
        openapi_authorization: []
      x-extensions:
        x-permissions:
        - SmsCampaigns:Read
        x-macro-scopes:
        - number_management_numbers:read:admin
        x-granular-scopes:
        - number_management:read:sms_consent:admin
    post:
      tags:
      - SMS Consent
      summary: Create an SMS consent policy
      description: 'Creates a new SMS consent management policy to define opt-in, opt-out, and help message configurations for SMS communications.


        **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `number_management_numbers:write:admin`


        **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `number_management:write:sms_consent:admin`


        **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`'
      operationId: CreateSMSConsent
      requestBody:
        content:
          application/json:
            schema:
              required:
              - consent_name
              - in_out_bound
              - status
              type: object
              properties:
                consent_name:
                  maxLength: 255
                  type: string
                  description: The SMS consent policy's name.
                  example: ZPconsent
                description:
                  maxLength: 4096
                  type: string
                  description: The SMS consent policy's description.
                  example: This consent will be used by our employees to schedule events, and provide reminders and support to our customers.
                in_out_bound:
                  required:
                  - disclaimer
                  - help_message
                  - opt_in_message
                  - opt_out_message
                  type: object
                  properties:
                    opt_in_message:
                      required:
                      - confirmation_message
                      - keywords
                      - prompt
                      type: object
                      properties:
                        prompt:
                          maxLength: 500
                          type: string
                          description: The prompt message sent to users to opt-in for SMS messages.
                          example: 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:
                          maxItems: 5
                          type: array
                          description: The keywords that trigger the opt-in action.
                          example:
                          - START
                          - keyword
                          items:
                            type: string
                        confirmation_message:
                          maxLength: 500
                          type: string
                          description: The confirmation message sent after a successful opt-in.
                          example: You're subscribed!
                      description: The opt-in message configuration.
                    opt_out_message:
                      required:
                      - keywords
                      - message
                      type: object
                      properties:
                        message:
                          maxLength: 500
                          type: string
                          description: The message sent to users when they opt out.
                          example: You are unsubscribed to texts from ZOOM. No more messages will be sent.
                        keywords:
                          maxItems: 5
                          type: array
                          description: The keywords that trigger the opt out action.
                          example:
                          - Stop
                          - keyword
                          items:
                            type: string
                      description: The opt out message configuration.
                    help_message:
                      required:
                      - keywords
                      - message
                      type: object
                      properties:
                        message:
                          maxLength: 500
                          type: string
                          description: The help message sent to users when they request help.
                          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.'
                        keywords:
                          maxItems: 5
                          type: array
                          description: The keywords that trigger the help message.
                          example:
                          - HELP
                          - keyword
                          items:
                            type: string
                      description: The help message configuration.
                    disclaimer:
                      required:
                      - enable
                      - message
                      type: object
                      properties:
                        message:
                          maxLength: 500
                          type: string
                          description: The disclaimer message text.
                          example: disclaimer
                        enable:
                          type: boolean
                          description: Whether the disclaimer is enabled.
                          example: true
                      description: The disclaimer message configuration.
                  description: The message configuration for opt-in, opt-out, help, and disclaimer messages.
                status:
                  type: boolean
                  description: The status of the consent policy. `true` indicates active, `false` indicates inactive.
                  example: true
      responses:
        '201':
          description: "**HTTP Status Code:** `201` **Created**  \n \nSMS consent policy created successfully."
          content:
            application/json:
              schema:
                type: object
                properties:
                  consent_id:
                    type: string
                    description: The consent policy's ID.
                    example: C-91H30r6xTCCpt8nNFSuhWA
                  consent_name:
                    type: string
                    description: The SMS consent policy's name.
                    example: ZPconsent
                  description:
                    type: string
                    description: The SMS consent policy's description.
                    example: This consent will be used by our employees to schedule events, provide reminders and support to our customers.
                  user_id:
                    type: string
                    description: The ID of the user who created the consent policy.
                    example: 0GVPDRXiSAaDb73-e2tW0A
                  account_id:
                    type: string
                    description: The account ID that owns the consent policy.
                    example: KGzOF3hCTamb_Xx-bXbgqA
                  in_out_bound:
                    type: object
                    properties:
                      opt_in_message:
                        type: object
                        properties:
                          prompt:
                            type: string
                            description: The prompt message sent to users to opt in for SMS messages.
                            example: 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:
                            maxItems: 5
                            type: array
                            description: The keywords that trigger the opt in action.
                            example:
                            - START
                            - keyword
                            items:
                              type: string
                          confirmation_message:
                            type: string
                            description: The confirmation message sent after a successful opt in.
                            example: You're subscribed!
                      opt_out_message:
                        type: object
                        properties:
                          message:
                            type: string
                            description: The message sent to users when they opt out.
                            example: You are unsubscribed to texts from ZOOM. No more messages will be sent.
                          keywords:
                            maxItems: 5
                            type: array
                            description: The keywords that trigger the opt-out action.
                            example:
                            - Stop
                            - keyword
                            items:
                              type: string
                      help_message:
                        type: object
                        properties:
                          message:
                            type: string
                            description: The help message sent to users when they request help.
                            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.'
                          keywords:
                            maxItems: 5
                            type: array
                            description: The keywords that trigger the help message.
                            example:
                            - HELP
                            - keyword
                            items:
                              type: string
                      disclaimer:
                        type: object
                        properties:
                          message:
                            type: string
                            description: The disclaimer message text.
                            example: disclaimer
                          enable:
                            type: boolean
                            description: Whether the disclaimer is enabled.
                            example: true
                    description: The message configuration for opt-in, opt-out, help, and disclaimer messages.
                  status:
                    type: boolean
                    description: The consent policy's status. `true` indicates active, `false` indicates inactive.
                    example: true
                  capacity:
                    type: integer
                    description: The maximum number of phone numbers that can be assigned to this consent policy.
                    format: int64
                    example: 999
                  create_time:
                    type: string
                    description: The time when the consent policy was created.
                    format: date-time
                    example: '2024-06-01T08:55:38Z'
                  modify_time:
                    type: string
                    description: The time when the consent policy was last modified.
                    format: date-time
                    example: '2025-09-19T11:20:59Z'
                  used_number:
                    type: integer
                    description: The number of phone numbers currently assigned to this consent policy.
                    format: int64
                    example: 0
        '400':
          description: "**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `999` <br>\n Invalid field. <br>\n**Error Code:** `1002` <br>\n The request body format does not match, please refer to the document <br>\n"
        '401':
          description: "**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "
        '403':
          description: "**HTTP Status Code:** `403` <br>\n Forbidden  You do not have permission. \n\n "
        '429':
          description: "**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "
      security:
      - openapi_oauth:
        - number_management_numbers:write:admin
        - number_management:write:sms_consent:admin
        openapi_authorization: []
      x-extensions:
        x-permissions:
        - SmsCampaigns:Edit
        x-macro-scopes:
        - number_management_numbers:write:admin
        x-granular-scopes:
        - number_management:write:sms_consent:admin
    delete:
      tags:
      - SMS Consent
      summary: Delete SMS consent policies
      description: 'Deletes one or more SMS consent policies.


        **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `number_management_numbers:write:admin`


        **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `number_management:delete:sms_consent:admin`


        **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`'
      operationId: DeleteSMSConsents
      requestBody:
        content:
          application/json:
            schema:
              required:
              - consent_ids
              type: object
              properties:
                consent_ids:
                  maxItems: 500
                  minItems: 1
                  type: array
                  description: The list of consent policy IDs to delete.
                  example:
                  - -6QPOIFtSU-wjt2Kl2TUng
                  - -72t1AufQ5mqjg44xzfcCQ
                  items:
                    type: string
      responses:
        '204':
          description: "**HTTP Status Code:** `204` **No Content**  \n \nSMS consent policies deleted successfully."
        '400':
          description: "**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `999` <br>\n Invalid field. <br>\n"
        '401':
          description: "**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "
        '403':
          description: "**HTTP Status Code:** `403` <br>\n Forbidden  You do not have permission. \n\n "
        '429':
          description: "**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "
      security:
      - openapi_oauth:
        - number_management_numbers:write:admin
        - number_management:delete:sms_consent:admin
        openapi_authorization: []
      x-extensions:
        x-permissions:
        - SmsCampaigns:Edit
        x-macro-scopes:
        - number_management_numbers:write:admin
        x-granular-scopes:
        - number_management:delete:sms_consent:admin
    servers:
    - url: https://api.zoom.us/v2
  /number_management/sms_consent/{consentId}:
    get:
      tags:
      - SMS Consent
      summary: Get an SMS consent policy
      description: 'Returns a specific SMS consent policy by ID.


        **[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:sms_consent:admin`


        **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`'
      operationId: GetSMSConsent
      parameters:
      - name: consentId
        in: path
        description: The consent policy's ID.
        required: true
        schema:
          type: string
          example: fnzfuEgUT0OrmZeJBUyWrQ
      responses:
        '200':
          description: "**HTTP Status Code:** `200` **OK**  \n \nSMS consent policy details retrieved successfully."
          content:
            application/json:
              schema:
                type: object
                properties:
                  consent_id:
                    type: string
                    description: The consent policy's ID.
                    example: C-91H30r6xTCCpt8nNFSuhWA
                  consent_name:
                    type: string
                    description: The name of the SMS consent policy.
                    example: ZPconsent
                  description:
                    type: string
                    description: The description of the SMS consent policy.
                    example: This consent will be used by our employees to schedule events, provide reminders and support to our customers.
                  user_id:
                    type: string
                    description: The ID of the user who created the consent policy.
                    example: 0GVPDRXiSAaDb73-e2tW0A
                  account_id:
                    type: string
                    description: The account ID that owns the consent policy.
                    example: KGzOF3hCTamb_Xx-bXbgqA
                  in_out_bound:
                    type: object
                    properties:
                      opt_in_message:
                        type: object
                        properties:
                          prompt:
                            type: string
                            description: The prompt message sent to users to opt-in for SMS messages.
                            example: 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:
             

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