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.
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
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: $.