Webex DNC Management API

Operations for managing Do Not Contact (DNC) lists and phone number entries

OpenAPI Specification

webex-dnc-management-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Webex Admin Address Book DNC Management API
  version: 1.0.0
  description: The Webex Admin APIs provide comprehensive programmatic access to administrative functions for managing Webex organizations, users, licenses, and settings. These APIs enable automation of user provisioning, license assignment, compliance management, and audit event retrieval. Administrators can integrate with enterprise identity systems, enforce security policies, monitor usage, and streamline onboarding/offboarding processes. The APIs support granular control over organizational resources, making them ideal for large-scale deployments and custom admin tooling.
tags:
- name: DNC Management
  description: Operations for managing Do Not Contact (DNC) lists and phone number entries
paths:
  /v3/campaign-management/dncList/{dncListName}/phoneNumber:
    post:
      tags:
      - DNC Management
      summary: Add Phone Number to DNC List
      operationId: addPhoneNumberToDncList
      description: 'Adds a phone number to the specified Do Not Contact (DNC) list. This operation helps ensure compliance with applicable rules & regulations by preventing outbound calls to specific numbers.


        **Note:** Phone numbers must be in E.164 format (e.g., +1234567890). Duplicate entries will be rejected with a 409 error.'
      parameters:
      - name: dncListName
        in: path
        description: This is the Name of the DNC list to which you want to add a phone number. List names are case-sensitive and must be URL-encoded if they contain special characters.
        required: true
        schema:
          type: string
          pattern: ^[a-zA-Z0-9_-]+$
          minLength: 1
          maxLength: 100
        example: corporate-dnc-list
      requestBody:
        required: true
        description: Phone number details to add to the DNC list
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DncEntryRequest'
            examples:
              basic:
                summary: Basic phone number entry
                value:
                  phoneNumber: '+1234567890'
                  source: customer-request
              with-metadata:
                summary: Entry with additional metadata
                value:
                  phoneNumber: '+1987654321'
                  source: regulatory-compliance
                  reason: Customer opted out via email
      responses:
        '201':
          description: Phone number successfully added to the DNC list
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DncEntryResponse'
              example:
                phoneNumber: '+1234567890'
                source: customer-request
                addedDate: '2024-01-15T10:30:00Z'
                addedBy: admin@example.com
        '400':
          description: 'Bad Request: The request was invalid or cannot be otherwise served. An accompanying error message will explain further.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: 'Unauthorized: Authentication credentials were missing or incorrect.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
        '403':
          description: 'Forbidden: The request is understood, but it has been refused or access is not allowed. User lacks required permissions to manage DNC lists.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenError'
        '404':
          description: 'Not Found: The specified DNC list does not exist or the user does not have access to it.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
        '409':
          description: 'Conflict: The phone number already exists in the specified DNC list.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConflictError'
        '429':
          description: 'Too Many Requests: Too many requests have been sent in a given amount of time and the request has been rate limited. A Retry-After header should be present that specifies how many seconds you need to wait before a successful request can be made.'
          headers:
            Retry-After:
              schema:
                type: integer
              description: Number of seconds to wait before retrying
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TooManyRequestsError'
        '500':
          description: 'Internal Server Error: Something went wrong on the server. If the issue persists, feel free to contact the [Webex Developer Support team](/explore/support).'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
        '502':
          description: 'Bad Gateway: The server received an invalid response from an upstream server while processing the request. Try again later.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadGatewayError'
        '503':
          description: 'Service Unavailable: Server is overloaded with requests. Try again later.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceUnavailableError'
        '504':
          description: 'Gateway Timeout: An upstream server failed to respond on time. If your query uses max parameter, please try to reduce it.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GatewayTimeoutError'
  /v3/campaign-management/dncList/{dncListName}/phoneNumber/{phoneNumber}:
    get:
      tags:
      - DNC Management
      summary: Get Phone Number from DNC List
      operationId: getPhoneNumberFromDncList
      description: 'Retrieves details of a specific phone number from the specified Do Not Contact (DNC) list. This operation allows you to check if a number is present in the list and view associated metadata.


        **Note:** Phone numbers must be URL-encoded and in E.164 format (e.g., %2B1234567890 for +1234567890).'
      parameters:
      - name: dncListName
        in: path
        description: The name of the DNC list to search in. List names are case-sensitive and must be URL-encoded if they contain special characters.
        required: true
        schema:
          type: string
          pattern: ^[a-zA-Z0-9_-]+$
          minLength: 1
          maxLength: 100
        example: corporate-dnc-list
      - name: phoneNumber
        in: path
        description: The phone number to retrieve from the DNC list. Must be URL-encoded and in E.164 format (e.g., %2B1234567890 for +1234567890).
        required: true
        schema:
          type: string
          pattern: ^\+[1-9]\d{1,14}$
        example: '+1234567890'
      responses:
        '200':
          description: Phone number details successfully retrieved from the DNC list
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DncEntryResponse'
              example:
                phoneNumber: '+1234567890'
                source: customer-request
                addedDate: '2024-01-15T10:30:00Z'
                addedBy: admin@example.com
                reason: Customer opted out via phone
        '400':
          description: 'Bad Request: The request was invalid or cannot be otherwise served. An accompanying error message will explain further.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: 'Unauthorized: Authentication credentials were missing or incorrect.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
        '403':
          description: 'Forbidden: The request is understood, but it has been refused or access is not allowed. User lacks required permissions to view DNC lists.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenError'
        '404':
          description: 'Not Found: The specified DNC list does not exist, the phone number is not found in the list, or the user does not have access to it.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
              example:
                code: 1001
                message: Phone number +1234567890 not found in DNC list 'corporate-dnc-list'
                trackingId: WXC-12345-67892
        '429':
          description: 'Too Many Requests: Too many requests have been sent in a given amount of time and the request has been rate limited. A Retry-After header should be present that specifies how many seconds you need to wait before a successful request can be made.'
          headers:
            Retry-After:
              schema:
                type: integer
              description: Number of seconds to wait before retrying
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TooManyRequestsError'
        '500':
          description: 'Internal Server Error: Something went wrong on the server. If the issue persists, feel free to contact the [Webex Developer Support team](/explore/support).'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
        '502':
          description: 'Bad Gateway: The server received an invalid response from an upstream server while processing the request. Try again later.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadGatewayError'
        '503':
          description: 'Service Unavailable: Server is overloaded with requests. Try again later.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceUnavailableError'
        '504':
          description: 'Gateway Timeout: An upstream server failed to respond on time. If your query uses max parameter, please try to reduce it.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GatewayTimeoutError'
    delete:
      tags:
      - DNC Management
      summary: Remove Phone Number from DNC List
      operationId: removePhoneNumberFromDncList
      description: 'Removes a phone number from the specified Do Not Contact (DNC) list. This operation allows administrators to remove numbers that should no longer be blocked from receiving calls.


        **Note:** Phone numbers must be URL-encoded and in E.164 format (e.g., +1234567890 for +1234567890). If the number doesn''t exist in the list, a 404 error will be returned.'
      parameters:
      - name: dncListName
        in: path
        description: The name of the DNC list to remove the phone number from. List names are case-sensitive and must be URL-encoded if they contain special characters.
        required: true
        schema:
          type: string
          pattern: ^[a-zA-Z0-9_-]+$
          minLength: 1
          maxLength: 100
        example: corporate-dnc-list
      - name: phoneNumber
        in: path
        description: The phone number to remove from the DNC list. Must be URL-encoded and in E.164 format (e.g., %2B1234567890 for +1234567890).
        required: true
        schema:
          type: string
          pattern: ^\+[1-9]\d{1,14}$
        example: '+1234567890'
      responses:
        '204':
          description: Phone number successfully removed from the DNC list. No content is returned.
        '400':
          description: 'Bad Request: The request was invalid or cannot be otherwise served. An accompanying error message will explain further.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: 'Unauthorized: Authentication credentials were missing or incorrect.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
        '403':
          description: 'Forbidden: The request is understood, but it has been refused or access is not allowed. User lacks required permissions to manage DNC lists.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenError'
        '404':
          description: 'Not Found: The specified DNC list does not exist, the phone number is not found in the list, or the user does not have access to it.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
              example:
                code: 1001
                message: Phone number +1234567890 not found in DNC list 'corporate-dnc-list'
                trackingId: WXC-12345-67893
        '429':
          description: 'Too Many Requests: Too many requests have been sent in a given amount of time and the request has been rate limited. A Retry-After header should be present that specifies how many seconds you need to wait before a successful request can be made.'
          headers:
            Retry-After:
              schema:
                type: integer
              description: Number of seconds to wait before retrying
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TooManyRequestsError'
        '500':
          description: 'Internal Server Error: Something went wrong on the server. If the issue persists, feel free to contact the [Webex Developer Support team](/explore/support).'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
        '502':
          description: 'Bad Gateway: The server received an invalid response from an upstream server while processing the request. Try again later.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadGatewayError'
        '503':
          description: 'Service Unavailable: Server is overloaded with requests. Try again later.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceUnavailableError'
        '504':
          description: 'Gateway Timeout: An upstream server failed to respond on time. If your query uses max parameter, please try to reduce it.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GatewayTimeoutError'
components:
  schemas:
    ConflictError:
      type: object
      required:
      - code
      - message
      properties:
        code:
          type: integer
          enum:
          - 409
          description: HTTP status code for Conflict.
          example: 409
        message:
          type: string
          description: A detailed error message explaining the conflict.
          example: Phone number +1234567890 already exists in DNC list 'corporate-dnc-list'
        trackingId:
          type: string
          description: A unique identifier for this error that can be used for debugging purposes.
          example: GTWY_e6763c9a-71b2-4515-ad5b-89260f7f594
      example:
        code: 409
        message: Phone number +1234567890 already exists in DNC list 'corporate-dnc-list'
        trackingId: GTWY_e6763c9a-71b2-4515-ad5b-89260f7f594
    BadRequestError:
      type: object
      required:
      - code
      - message
      properties:
        code:
          type: integer
          enum:
          - 1001
          - 1002
          - 1003
          - 1004
          - 1005
          - 1006
          - 1007
          - 1008
          - 1010
          description: Mandatory field missing - Source should not be empty
          example: 1001
        message:
          type: string
          description: A detailed error message explaining what went wrong with the request.
          example: Invalid phone number format. Phone numbers must be in E.164 format.
        trackingId:
          type: string
          description: A unique identifier for this error that can be used for debugging purposes.
          example: GTWY_e6763c9a-71b2-4515-ad5b-89260f7f594b
      example:
        code: 1001
        message: Mandatory field missing - Source should not be empty
        trackingId: GTWY_e6763c9a-71b2-4515-ad5b-89260f7f594b
    BadGatewayError:
      type: object
      required:
      - code
      - message
      properties:
        code:
          type: integer
          enum:
          - 502
          description: HTTP status code for Bad Gateway.
          example: 502
        message:
          type: string
          description: A detailed error message explaining the gateway error.
          example: The server received an invalid response from an upstream server.
        trackingId:
          type: string
          description: A unique identifier for this error that can be used for debugging purposes.
          example: GTWY_e6763c9a-71b2-4515-ad5b-89260f7f597
        details:
          type: object
          description: Additional details about the gateway error.
          properties:
            upstreamService:
              type: string
              description: The upstream service that failed
              example: dnc-service
            retryRecommended:
              type: boolean
              description: Whether retrying the request is recommended
              example: true
      example:
        code: 502
        message: The server received an invalid response from an upstream server.
        trackingId: WXC-12345-67897
        details:
          upstreamService: dnc-service
          retryRecommended: true
    InternalServerError:
      type: object
      required:
      - code
      - message
      properties:
        code:
          type: integer
          enum:
          - 1006
          description: An unexpected error occurred while processing your request. Contact https://developer.webex.com/support for assistance.
          example: 1006
        message:
          type: string
          description: A detailed error message explaining the server error.
          example: An unexpected error occurred while processing your request.
        trackingId:
          type: string
          description: A unique identifier for this error that can be used for debugging purposes. Include this when contacting support.
          example: GTWY_e6763c9a-71b2-4515-ad5b-89260f7f596
      example:
        code: 1006
        message: An unexpected error occurred while processing your request.
        trackingId: GTWY_e6763c9a-71b2-4515-ad5b-89260f7f596
    TooManyRequestsError:
      type: object
      required:
      - code
      - message
      properties:
        code:
          type: integer
          enum:
          - 429
          description: HTTP status code for Too Many Requests.
          example: 429
        message:
          type: string
          description: A detailed error message explaining the rate limit.
          example: Too many requests. Rate limit exceeded.
        trackingId:
          type: string
          description: A unique identifier for this error that can be used for debugging purposes.
          example: GTWY_e6763c9a-71b2-4515-ad5b-89260f7f595
      example:
        code: 429
        message: Too many requests. Rate limit exceeded.
        trackingId: GTWY_e6763c9a-71b2-4515-ad5b-89260f7f595
    NotFoundError:
      type: object
      required:
      - code
      - message
      properties:
        code:
          type: integer
          enum:
          - 1001
          - 1002
          - 1003
          - 1004
          - 1005
          - 1006
          - 1007
          - 1008
          - 1010
          description: PhoneNumber +1234567890 not found in DNC List 'AT_DNC_DND'
          example: 1004
        message:
          type: string
          description: A detailed error message explaining what resource was not found.
          example: Phone number +1234567890 not found in DNC list 'corporate-dnc-list'
        trackingId:
          type: string
          description: A unique identifier for this error that can be used for debugging purposes.
          example: GTWY_e6763c9a-71b2-4515-ad5b-89260f7f593
      example:
        code: 1001
        message: Phone number +1234567890 not found in DNC list 'corporate-dnc-list'
        trackingId: GTWY_e6763c9a-71b2-4515-ad5b-89260f7f593
    DncEntryRequest:
      type: object
      required:
      - phoneNumber
      - source
      properties:
        phoneNumber:
          type: string
          pattern: ^\+[1-9]\d{1,14}$
          description: The phone number to add to the DNC list. Must be in E.164 format (e.g., +1234567890).
          example: '+1234567890'
        source:
          type: string
          minLength: 1
          maxLength: 100
          description: The source or origin of the DNC entry. This helps track where the request originated from.
          example: customer-request
        reason:
          type: string
          maxLength: 500
          description: Optional reason for adding the phone number to the DNC list. This can help with compliance documentation.
          example: Customer requested to be removed from all marketing calls
      example:
        phoneNumber: '+1234567890'
        source: customer-request
        reason: Customer opted out via email
    GatewayTimeoutError:
      type: object
      required:
      - code
      - message
      properties:
        code:
          type: integer
          enum:
          - 504
          description: HTTP status code for Gateway Timeout.
          example: 504
        message:
          type: string
          description: A detailed error message explaining the timeout.
          example: The server did not receive a timely response from an upstream server.
        trackingId:
          type: string
          description: A unique identifier for this error that can be used for debugging purposes.
          example: WXC-12345-67899
        details:
          type: object
          description: Additional details about the timeout.
          properties:
            timeoutDuration:
              type: integer
              description: The timeout duration in seconds
              example: 30
            upstreamService:
              type: string
              description: The upstream service that timed out
              example: dnc-database
            retryRecommended:
              type: boolean
              description: Whether retrying the request is recommended
              example: true
      example:
        code: 504
        message: The server did not receive a timely response from an upstream server.
        trackingId: WXC-12345-67899
        details:
          timeoutDuration: 30
          upstreamService: dnc-database
          retryRecommended: true
    ServiceUnavailableError:
      type: object
      required:
      - code
      - message
      properties:
        code:
          type: integer
          enum:
          - 503
          description: HTTP status code for Service Unavailable.
          example: 503
        message:
          type: string
          description: A detailed error message explaining the service unavailability.
          example: Service is temporarily unavailable due to maintenance.
        trackingId:
          type: string
          description: A unique identifier for this error that can be used for debugging purposes.
          example: WXC-12345-67898
        details:
          type: object
          description: Additional details about the service unavailability.
          properties:
            maintenanceWindow:
              type: object
              description: Information about planned maintenance
              properties:
                startTime:
                  type: string
                  format: date-time
                  example: '2024-01-15T02:00:00Z'
                endTime:
                  type: string
                  format: date-time
                  example: '2024-01-15T04:00:00Z'
            retryAfter:
              type: integer
              description: Number of seconds to wait before retrying
              example: 3600
      example:
        code: 503
        message: Service is temporarily unavailable due to maintenance.
        trackingId: WXC-12345-67898
        details:
          maintenanceWindow:
            startTime: '2024-01-15T02:00:00Z'
            endTime: '2024-01-15T04:00:00Z'
          retryAfter: 3600
    DncEntryResponse:
      type: object
      properties:
        phoneNumber:
          type: string
          pattern: ^\+[1-9]\d{1,14}$
          description: The phone number in the DNC list, in E.164 format.
          example: '+1234567890'
        source:
          type: string
          description: The source or origin of the DNC entry.
          example: customer-request
        addedDate:
          type: string
          format: date-time
          description: The date and time when the phone number was added to the DNC list.
          example: '2024-01-15T10:30:00Z'
        addedBy:
          type: string
          description: The user or system that added the phone number to the DNC list.
          example: admin@example.com
        reason:
          type: string
          description: The reason for adding the phone number to the DNC list, if provided.
          example: Customer opted out via phone
        lastModified:
          type: string
          format: date-time
          description: The date and time when the DNC entry was last modified.
          example: '2024-01-15T10:30:00Z'
      example:
        phoneNumber: '+1234567890'
        source: customer-request
        addedDate: '2024-01-15T10:30:00Z'
        addedBy: admin@example.com
        reason: Customer opted out via phone
        lastModified: '2024-01-15T10:30:00Z'
    UnauthorizedError:
      type: object
      required:
      - code
      - message
      properties:
        code:
          type: integer
          enum:
          - 401
          description: HTTP status code for Unauthorized.
          example: 401
        message:
          type: string
          description: A detailed error message explaining the authentication failure.
          example: Invalid or expired access token.
        trackingId:
          type: string
          description: A unique identifier for this error that can be used for debugging purposes.
          example: GTWY_e6763c9a-71b2-4515-ad5b-89260f7f591
      example:
        code: 401
        message: Invalid or expired access token.
        trackingId: GTWY_e6763c9a-71b2-4515-ad5b-89260f7f591
    ForbiddenError:
      type: object
      required:
      - code
      - message
      properties:
        code:
          type: integer
          enum:
          - 403
          description: HTTP status code for Forbidden.
          example: 403
        message:
          type: string
          description: A detailed error message explaining the authorization failure.
          example: User lacks required permissions to manage DNC lists.
        trackingId:
          type: string
          description: A unique identifier for this error that can be used for debugging purposes.
          example: GTWY_e6763c9a-71b2-4515-ad5b-89260f7f592
      example:
        code: 403
        message: User lacks required permissions to manage DNC lists.
        trackingId: GTWY_e6763c9a-71b2-4515-ad5b-89260f7f592
  securitySchemes:
    oauth2:
      flows:
        authorizationCode:
          authorizationUrl: /
          scopes: {}
          tokenUrl: /
      type: oauth2
    bearer-key:
      type: http
      description: e.g. Bearer YOUR_AUTHORIZATION_TOKEN
      scheme: bearer
      bearerFormat: JWT
    bearerAuth:
      type: oauth2
      description: OAuth 2.0 Bearer token authentication
      flows:
        authorizationCode:
          authorizationUrl: https://webexapis.com/v1/authorize
          tokenUrl: https://webexapis.com/v1/access_token
          scopes:
            spark:applications_token: Create access tokens for Service Apps