Webex · Capability

Webex Cloud Calling — Numbers

Webex Cloud Calling — Numbers. 11 operations. Lead operation: Validate phone numbers. Self-contained Naftiko capability covering one Webex business surface.

Run with Naftiko WebexNumbers

What You Can Do

POST
Validatephonenumbers — Validate phone numbers
/v1/telephony/config/actions/validatenumbers/invoke
GET
Listmanagenumbersjobs — List Manage Numbers Jobs
/v1/telephony/config/jobs/numbers/managenumbers
POST
Initiatenumberjobs — Initiate Number Jobs
/v1/telephony/config/jobs/numbers/managenumbers
GET
Getmanagenumbersjobstatus — Get Manage Numbers Job Status
/v1/telephony/config/jobs/numbers/managenumbers/{jobid}
POST
Pausethemanagenumbersjob — Pause the Manage Numbers Job
/v1/telephony/config/jobs/numbers/managenumbers/{jobid}/actions/pause/invoke
POST
Resumethemanagenumbersjob — Resume the Manage Numbers Job
/v1/telephony/config/jobs/numbers/managenumbers/{jobid}/actions/resume/invoke
GET
Listmanagenumbersjoberrors — List Manage Numbers Job errors
/v1/telephony/config/jobs/numbers/managenumbers/{jobid}/errors
POST
Addphonenumberstoalocation — Add Phone Numbers to a location
/v1/telephony/config/locations/{locationid}/numbers
PUT
Managenumberstateinalocation — Manage Number State in a location
/v1/telephony/config/locations/{locationid}/numbers
DELETE
Removephonenumbersfromalocation — Remove phone numbers from a location
/v1/telephony/config/locations/{locationid}/numbers
GET
Getphonenumbersforanorganizationwithgivencriteria — Get Phone Numbers for an Organization with Given Criteria
/v1/telephony/config/numbers

MCP Tools

validate-phone-numbers

Validate phone numbers

read-only
list-manage-numbers-jobs

List Manage Numbers Jobs

read-only idempotent
initiate-number-jobs

Initiate Number Jobs

get-manage-numbers-job-status

Get Manage Numbers Job Status

read-only idempotent
pause-manage-numbers-job

Pause the Manage Numbers Job

resume-manage-numbers-job

Resume the Manage Numbers Job

list-manage-numbers-job-errors

List Manage Numbers Job errors

read-only idempotent
add-phone-numbers-location

Add Phone Numbers to a location

manage-number-state-location

Manage Number State in a location

idempotent
remove-phone-numbers-location

Remove phone numbers from a location

idempotent
get-phone-numbers-organization-given

Get Phone Numbers for an Organization with Given Criteria

read-only idempotent

Capability Spec

cloud-calling-numbers.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Webex Cloud Calling — Numbers
  description: 'Webex Cloud Calling — Numbers. 11 operations. Lead operation: Validate phone numbers. Self-contained Naftiko
    capability covering one Webex business surface.'
  tags:
  - Webex
  - Numbers
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    WEBEX_API_KEY: WEBEX_API_KEY
capability:
  consumes:
  - type: http
    namespace: cloud-calling-numbers
    baseUri: ''
    description: Webex Cloud Calling — Numbers business capability. Self-contained, no shared references.
    resources:
    - name: telephony-config-actions-validateNumbers-invoke
      path: /telephony/config/actions/validateNumbers/invoke
      operations:
      - name: validatephonenumbers
        method: POST
        description: Validate phone numbers
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: orgId
          in: query
          type: string
          description: Organization of the Route Group.
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: telephony-config-jobs-numbers-manageNumbers
      path: /telephony/config/jobs/numbers/manageNumbers
      operations:
      - name: listmanagenumbersjobs
        method: GET
        description: List Manage Numbers Jobs
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: orgId
          in: query
          type: string
          description: Retrieve list of Manage Number jobs for this organization.
        - name: start
          in: query
          type: number
          description: Start at the zero-based offset in the list of jobs. Default is 0.
        - name: max
          in: query
          type: number
          description: Limit the number of jobs returned to this maximum count. Default is 2000.
      - name: initiatenumberjobs
        method: POST
        description: Initiate Number Jobs
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: telephony-config-jobs-numbers-manageNumbers-jobId
      path: /telephony/config/jobs/numbers/manageNumbers/{jobId}
      operations:
      - name: getmanagenumbersjobstatus
        method: GET
        description: Get Manage Numbers Job Status
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: jobId
          in: path
          type: string
          description: Retrieve job details for this `jobId`.
          required: true
    - name: telephony-config-jobs-numbers-manageNumbers-jobId-actions-pause-invoke
      path: /telephony/config/jobs/numbers/manageNumbers/{jobId}/actions/pause/invoke
      operations:
      - name: pausethemanagenumbersjob
        method: POST
        description: Pause the Manage Numbers Job
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: jobId
          in: path
          type: string
          description: Pause the Manage Numbers job for this `jobId`.
          required: true
        - name: orgId
          in: query
          type: string
          description: Pause the Manage Numbers job for this organization.
    - name: telephony-config-jobs-numbers-manageNumbers-jobId-actions-resume-invoke
      path: /telephony/config/jobs/numbers/manageNumbers/{jobId}/actions/resume/invoke
      operations:
      - name: resumethemanagenumbersjob
        method: POST
        description: Resume the Manage Numbers Job
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: jobId
          in: path
          type: string
          description: Resume the Manage Numbers job for this `jobId`.
          required: true
        - name: orgId
          in: query
          type: string
          description: Resume the Manage Numbers job for this organization.
    - name: telephony-config-jobs-numbers-manageNumbers-jobId-errors
      path: /telephony/config/jobs/numbers/manageNumbers/{jobId}/errors
      operations:
      - name: listmanagenumbersjoberrors
        method: GET
        description: List Manage Numbers Job errors
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: jobId
          in: path
          type: string
          description: Retrieve the error details for this `jobId`.
          required: true
        - name: orgId
          in: query
          type: string
          description: Retrieve list of jobs for this organization.
        - name: start
          in: query
          type: number
          description: Specifies the error offset from the first result that you want to fetch.
        - name: max
          in: query
          type: number
          description: Specifies the maximum number of records that you want to fetch.
    - name: telephony-config-locations-locationId-numbers
      path: /telephony/config/locations/{locationId}/numbers
      operations:
      - name: addphonenumberstoalocation
        method: POST
        description: Add Phone Numbers to a location
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: locationId
          in: path
          type: string
          description: LocationId to which numbers should be added.
          required: true
        - name: orgId
          in: query
          type: string
          description: Organization of the Route Group.
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
      - name: managenumberstateinalocation
        method: PUT
        description: Manage Number State in a location
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: locationId
          in: path
          type: string
          description: '`LocationId` to which numbers should be added.'
          required: true
        - name: orgId
          in: query
          type: string
          description: Organization of the Route Group.
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
      - name: removephonenumbersfromalocation
        method: DELETE
        description: Remove phone numbers from a location
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: locationId
          in: path
          type: string
          description: '`LocationId` to which numbers should be added.'
          required: true
        - name: orgId
          in: query
          type: string
          description: Organization of the Route Group.
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: telephony-config-numbers
      path: /telephony/config/numbers
      operations:
      - name: getphonenumbersforanorganizationwithgivencriteria
        method: GET
        description: Get Phone Numbers for an Organization with Given Criteria
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: orgId
          in: query
          type: string
          description: List numbers for this organization.
        - name: locationId
          in: query
          type: string
          description: Return the list of phone numbers for this location within the given organization. The maximum length
            is 36.
        - name: max
          in: query
          type: number
          description: Limit the number of phone numbers returned to this maximum count. The default is 2000.
        - name: start
          in: query
          type: number
          description: Start at the zero-based offset in the list of matching phone numbers. The default is 0.
        - name: phoneNumber
          in: query
          type: string
          description: Search for this `phoneNumber`.
        - name: available
          in: query
          type: boolean
          description: Search among the available phone numbers. This parameter cannot be used along with `ownerType` parameter
            when set to `true`.
        - name: order
          in: query
          type: string
          description: Sort the list of phone numbers based on the following:`lastName`,`dn`,`extension`. Sorted by number
            and extension in ascending order.
        - name: ownerName
          in: query
          type: string
          description: Return the list of phone numbers that are owned by the given `ownerName`. Maximum length is 255.
        - name: ownerId
          in: query
          type: string
          description: Returns only the matched number/extension entries assigned to the feature with the specified UUID or
            `broadsoftId`.
        - name: ownerType
          in: query
          type: string
          description: 'Returns the list of phone numbers of the given `ownerType`. Possible input values:'
        - name: extension
          in: query
          type: string
          description: Returns the list of phone numbers with the given extension.
        - name: numberType
          in: query
          type: string
          description: Returns the filtered list of phone numbers that contain a given type of number. `available` or `state`
            query parameters cannot be used when `numberType=EXTENSIO
        - name: phoneNumberType
          in: query
          type: string
          description: 'Returns the filtered list of phone numbers of the given `phoneNumberType`. Response excludes any extensions
            without numbers. Possible input values:'
        - name: state
          in: query
          type: string
          description: 'Returns the list of phone numbers with the matching state. Response excludes any extensions without
            numbers. Possible input values:'
        - name: details
          in: query
          type: boolean
          description: Returns the overall count of the phone numbers along with other details for a given organization.
        - name: tollFreeNumbers
          in: query
          type: boolean
          description: Returns the list of toll-free phone numbers.
        - name: restrictedNonGeoNumbers
          in: query
          type: boolean
          description: Returns the list of restricted non-geographical numbers.
        - name: includedTelephonyTypes
          in: query
          type: string
          description: Returns the list of phone numbers that are of given `includedTelephonyTypes`. By default, if this query
            parameter is not provided, it will list both PSTN and Mo
        - name: serviceNumber
          in: query
          type: boolean
          description: Returns the list of service phone numbers.
    authentication:
      type: bearer
      token: '{{env.WEBEX_API_KEY}}'
  exposes:
  - type: rest
    namespace: cloud-calling-numbers-rest
    port: 8080
    description: REST adapter for Webex Cloud Calling — Numbers. One Spectral-compliant resource per consumed operation, prefixed
      with /v1.
    resources:
    - path: /v1/telephony/config/actions/validatenumbers/invoke
      name: telephony-config-actions-validatenumbers-invoke
      description: REST surface for telephony-config-actions-validateNumbers-invoke.
      operations:
      - method: POST
        name: validatephonenumbers
        description: Validate phone numbers
        call: cloud-calling-numbers.validatephonenumbers
        with:
          orgId: rest.orgId
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/telephony/config/jobs/numbers/managenumbers
      name: telephony-config-jobs-numbers-managenumbers
      description: REST surface for telephony-config-jobs-numbers-manageNumbers.
      operations:
      - method: GET
        name: listmanagenumbersjobs
        description: List Manage Numbers Jobs
        call: cloud-calling-numbers.listmanagenumbersjobs
        with:
          orgId: rest.orgId
          start: rest.start
          max: rest.max
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: initiatenumberjobs
        description: Initiate Number Jobs
        call: cloud-calling-numbers.initiatenumberjobs
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/telephony/config/jobs/numbers/managenumbers/{jobid}
      name: telephony-config-jobs-numbers-managenumbers-jobid
      description: REST surface for telephony-config-jobs-numbers-manageNumbers-jobId.
      operations:
      - method: GET
        name: getmanagenumbersjobstatus
        description: Get Manage Numbers Job Status
        call: cloud-calling-numbers.getmanagenumbersjobstatus
        with:
          jobId: rest.jobId
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/telephony/config/jobs/numbers/managenumbers/{jobid}/actions/pause/invoke
      name: telephony-config-jobs-numbers-managenumbers-jobid-actions-pause-invoke
      description: REST surface for telephony-config-jobs-numbers-manageNumbers-jobId-actions-pause-invoke.
      operations:
      - method: POST
        name: pausethemanagenumbersjob
        description: Pause the Manage Numbers Job
        call: cloud-calling-numbers.pausethemanagenumbersjob
        with:
          jobId: rest.jobId
          orgId: rest.orgId
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/telephony/config/jobs/numbers/managenumbers/{jobid}/actions/resume/invoke
      name: telephony-config-jobs-numbers-managenumbers-jobid-actions-resume-invoke
      description: REST surface for telephony-config-jobs-numbers-manageNumbers-jobId-actions-resume-invoke.
      operations:
      - method: POST
        name: resumethemanagenumbersjob
        description: Resume the Manage Numbers Job
        call: cloud-calling-numbers.resumethemanagenumbersjob
        with:
          jobId: rest.jobId
          orgId: rest.orgId
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/telephony/config/jobs/numbers/managenumbers/{jobid}/errors
      name: telephony-config-jobs-numbers-managenumbers-jobid-errors
      description: REST surface for telephony-config-jobs-numbers-manageNumbers-jobId-errors.
      operations:
      - method: GET
        name: listmanagenumbersjoberrors
        description: List Manage Numbers Job errors
        call: cloud-calling-numbers.listmanagenumbersjoberrors
        with:
          jobId: rest.jobId
          orgId: rest.orgId
          start: rest.start
          max: rest.max
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/telephony/config/locations/{locationid}/numbers
      name: telephony-config-locations-locationid-numbers
      description: REST surface for telephony-config-locations-locationId-numbers.
      operations:
      - method: POST
        name: addphonenumberstoalocation
        description: Add Phone Numbers to a location
        call: cloud-calling-numbers.addphonenumberstoalocation
        with:
          locationId: rest.locationId
          orgId: rest.orgId
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: PUT
        name: managenumberstateinalocation
        description: Manage Number State in a location
        call: cloud-calling-numbers.managenumberstateinalocation
        with:
          locationId: rest.locationId
          orgId: rest.orgId
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: removephonenumbersfromalocation
        description: Remove phone numbers from a location
        call: cloud-calling-numbers.removephonenumbersfromalocation
        with:
          locationId: rest.locationId
          orgId: rest.orgId
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/telephony/config/numbers
      name: telephony-config-numbers
      description: REST surface for telephony-config-numbers.
      operations:
      - method: GET
        name: getphonenumbersforanorganizationwithgivencriteria
        description: Get Phone Numbers for an Organization with Given Criteria
        call: cloud-calling-numbers.getphonenumbersforanorganizationwithgivencriteria
        with:
          orgId: rest.orgId
          locationId: rest.locationId
          max: rest.max
          start: rest.start
          phoneNumber: rest.phoneNumber
          available: rest.available
          order: rest.order
          ownerName: rest.ownerName
          ownerId: rest.ownerId
          ownerType: rest.ownerType
          extension: rest.extension
          numberType: rest.numberType
          phoneNumberType: rest.phoneNumberType
          state: rest.state
          details: rest.details
          tollFreeNumbers: rest.tollFreeNumbers
          restrictedNonGeoNumbers: rest.restrictedNonGeoNumbers
          includedTelephonyTypes: rest.includedTelephonyTypes
          serviceNumber: rest.serviceNumber
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: cloud-calling-numbers-mcp
    port: 9090
    transport: http
    description: MCP adapter for Webex Cloud Calling — Numbers. One tool per consumed operation, routed inline through this
      capability's consumes block.
    tools:
    - name: validate-phone-numbers
      description: Validate phone numbers
      hints:
        readOnly: true
        destructive: false
        idempotent: false
      call: cloud-calling-numbers.validatephonenumbers
      with:
        orgId: tools.orgId
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: list-manage-numbers-jobs
      description: List Manage Numbers Jobs
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: cloud-calling-numbers.listmanagenumbersjobs
      with:
        orgId: tools.orgId
        start: tools.start
        max: tools.max
      outputParameters:
      - type: object
        mapping: $.
    - name: initiate-number-jobs
      description: Initiate Number Jobs
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: cloud-calling-numbers.initiatenumberjobs
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: get-manage-numbers-job-status
      description: Get Manage Numbers Job Status
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: cloud-calling-numbers.getmanagenumbersjobstatus
      with:
        jobId: tools.jobId
      outputParameters:
      - type: object
        mapping: $.
    - name: pause-manage-numbers-job
      description: Pause the Manage Numbers Job
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: cloud-calling-numbers.pausethemanagenumbersjob
      with:
        jobId: tools.jobId
        orgId: tools.orgId
      outputParameters:
      - type: object
        mapping: $.
    - name: resume-manage-numbers-job
      description: Resume the Manage Numbers Job
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: cloud-calling-numbers.resumethemanagenumbersjob
      with:
        jobId: tools.jobId
        orgId: tools.orgId
      outputParameters:
      - type: object
        mapping: $.
    - name: list-manage-numbers-job-errors
      description: List Manage Numbers Job errors
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: cloud-calling-numbers.listmanagenumbersjoberrors
      with:
        jobId: tools.jobId
        orgId: tools.orgId
        start: tools.start
        max: tools.max
      outputParameters:
      - type: object
        mapping: $.
    - name: add-phone-numbers-location
      description: Add Phone Numbers to a location
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: cloud-calling-numbers.addphonenumberstoalocation
      with:
        locationId: tools.locationId
        orgId: tools.orgId
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: manage-number-state-location
      description: Manage Number State in a location
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: cloud-calling-numbers.managenumberstateinalocation
      with:
        locationId: tools.locationId
        orgId: tools.orgId
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: remove-phone-numbers-location
      description: Remove phone numbers from a location
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: cloud-calling-numbers.removephonenumbersfromalocation
      with:
        locationId: tools.locationId
        orgId: tools.orgId
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: get-phone-numbers-organization-given
      description: Get Phone Numbers for an Organization with Given Criteria
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: cloud-calling-numbers.getphonenumbersforanorganizationwithgivencriteria
      with:
        orgId: tools.orgId
        locationId: tools.locationId
        max: tools.max
        start: tools.start
        phoneNumber: tools.phoneNumber
        available: tools.available
        order: tools.order
        ownerName: tools.ownerName
        ownerId: tools.ownerId
        ownerType: tools.ownerType
        extension: tools.extension
        numberType: tools.numberType
        phoneNumberType: tools.phoneNumberType
        state: tools.state
        details: tools.details
        tollFreeNumbers: tools.tollFreeNumbers
        restrictedNonGeoNumbers: tools.restrictedNonGeoNumbers
        includedTelephonyTypes: tools.includedTelephonyTypes
        serviceNumber: tools.serviceNumber
      outputParameters:
      - type: object
        mapping: $.