RingCentral · Capability
RingCentral API — High Volume SMS
RingCentral API — High Volume SMS. 8 operations. Lead operation: Send A2P SMS. Self-contained Naftiko capability covering one Ringcentral business surface.
What You Can Do
POST
Createa2psms
— Send A2P SMS
/v1/restapi/v1-0/account/{accountid}/a2p-sms/batches
GET
Lista2pbatches
— List A2P SMS Batches
/v1/restapi/v1-0/account/{accountid}/a2p-sms/batches
GET
Reada2pbatch
— Get A2P SMS Batch
/v1/restapi/v1-0/account/{accountid}/a2p-sms/batches/{batchid}
GET
Lista2psms
— List A2P SMS Messages
/v1/restapi/v1-0/account/{accountid}/a2p-sms/messages
GET
Reada2psms
— Get A2P SMS
/v1/restapi/v1-0/account/{accountid}/a2p-sms/messages/{messageid}
GET
Reada2psmsoptouts
— List Opted Out Numbers
/v1/restapi/v1-0/account/{accountid}/a2p-sms/opt-outs
POST
Adda2psmsoptouts
— Add Opt-In/Out Numbers
/v1/restapi/v1-0/account/{accountid}/a2p-sms/opt-outs/bulk-assign
GET
Aggregatea2psmsstatuses
— List A2P SMS Statuses
/v1/restapi/v1-0/account/{accountid}/a2p-sms/statuses
MCP Tools
send-a2p-sms
Send A2P SMS
list-a2p-sms-batches
List A2P SMS Batches
read-only
idempotent
get-a2p-sms-batch
Get A2P SMS Batch
read-only
idempotent
list-a2p-sms-messages
List A2P SMS Messages
read-only
idempotent
get-a2p-sms
Get A2P SMS
read-only
idempotent
list-opted-out-numbers
List Opted Out Numbers
read-only
idempotent
add-opt-out-numbers
Add Opt-In/Out Numbers
list-a2p-sms-statuses
List A2P SMS Statuses
read-only
idempotent
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: RingCentral API — High Volume SMS
description: 'RingCentral API — High Volume SMS. 8 operations. Lead operation: Send A2P SMS. Self-contained Naftiko capability
covering one Ringcentral business surface.'
tags:
- Ringcentral
- High Volume SMS
created: '2026-05-19'
modified: '2026-05-19'
binds:
- namespace: env
keys:
RINGCENTRAL_API_KEY: RINGCENTRAL_API_KEY
capability:
consumes:
- type: http
namespace: platform-high-volume-sms
baseUri: https://platform.ringcentral.com
description: RingCentral API — High Volume SMS business capability. Self-contained, no shared references.
resources:
- name: restapi-v1.0-account-accountId-a2p-sms-batches
path: /restapi/v1.0/account/{accountId}/a2p-sms/batches
operations:
- name: createa2psms
method: POST
description: Send A2P SMS
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: lista2pbatches
method: GET
description: List A2P SMS Batches
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: from
in: query
type: string
description: Phone number in E.164 format from which the messages are going to be sent
- name: status
in: query
type: array
description: A list of batch statuses to filter the results
- name: pageToken
in: query
type: string
description: The page token of the page to be retrieved
- name: perPage
in: query
type: integer
description: The number of records to be returned per page
- name: restapi-v1.0-account-accountId-a2p-sms-batches-batchId
path: /restapi/v1.0/account/{accountId}/a2p-sms/batches/{batchId}
operations:
- name: reada2pbatch
method: GET
description: Get A2P SMS Batch
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: restapi-v1.0-account-accountId-a2p-sms-messages
path: /restapi/v1.0/account/{accountId}/a2p-sms/messages
operations:
- name: lista2psms
method: GET
description: List A2P SMS Messages
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: view
in: query
type: string
description: Indicates if the response has to be detailed, includes text in the response if detailed
- name: phoneNumber
in: query
type: array
description: List of phone numbers (specified in 'to' or 'from' fields of a message) to filter the results. Maximum
number of phone numbers allowed to be specified as filter
- name: pageToken
in: query
type: string
description: The page token of the page to be retrieved.
- name: perPage
in: query
type: integer
description: The number of messages to be returned per request
- name: restapi-v1.0-account-accountId-a2p-sms-messages-messageId
path: /restapi/v1.0/account/{accountId}/a2p-sms/messages/{messageId}
operations:
- name: reada2psms
method: GET
description: Get A2P SMS
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: messageId
in: path
type: string
description: Internal identifier of a message to be retrieved
required: true
- name: restapi-v1.0-account-accountId-a2p-sms-opt-outs
path: /restapi/v1.0/account/{accountId}/a2p-sms/opt-outs
operations:
- name: reada2psmsoptouts
method: GET
description: List Opted Out Numbers
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: from
in: query
type: string
description: The sender's phone number in [E.164](https://www.itu.int/rec/T-REC-E.164-201011-I) format for filtering
messages.
- name: to
in: query
type: string
description: The receiver's phone number (`to` field) in [E.164](https://www.itu.int/rec/T-REC-E.164-201011-I) format
for filtering messages
- name: status
in: query
type: string
description: The status (opted out, opted in, or both) to be used as the filter
- name: pageToken
in: query
type: string
description: The page token of the page to be retrieved
- name: perPage
in: query
type: integer
description: The number of records to be returned for the page
- name: restapi-v1.0-account-accountId-a2p-sms-opt-outs-bulk-assign
path: /restapi/v1.0/account/{accountId}/a2p-sms/opt-outs/bulk-assign
operations:
- name: adda2psmsoptouts
method: POST
description: Add Opt-In/Out Numbers
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: restapi-v1.0-account-accountId-a2p-sms-statuses
path: /restapi/v1.0/account/{accountId}/a2p-sms/statuses
operations:
- name: aggregatea2psmsstatuses
method: GET
description: List A2P SMS Statuses
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: phoneNumber
in: query
type: array
description: List of phone numbers (specified in 'to' or 'from' fields of a message) to filter the results. Maximum
number of phone numbers allowed to be specified as filter
authentication:
type: bearer
token: '{{env.RINGCENTRAL_API_KEY}}'
exposes:
- type: rest
namespace: platform-high-volume-sms-rest
port: 8080
description: REST adapter for RingCentral API — High Volume SMS. One Spectral-compliant resource per consumed operation,
prefixed with /v1.
resources:
- path: /v1/restapi/v1-0/account/{accountid}/a2p-sms/batches
name: restapi-v1-0-account-accountid-a2p-sms-batches
description: REST surface for restapi-v1.0-account-accountId-a2p-sms-batches.
operations:
- method: POST
name: createa2psms
description: Send A2P SMS
call: platform-high-volume-sms.createa2psms
with:
body: rest.body
outputParameters:
- type: object
mapping: $.
- method: GET
name: lista2pbatches
description: List A2P SMS Batches
call: platform-high-volume-sms.lista2pbatches
with:
from: rest.from
status: rest.status
pageToken: rest.pageToken
perPage: rest.perPage
outputParameters:
- type: object
mapping: $.
- path: /v1/restapi/v1-0/account/{accountid}/a2p-sms/batches/{batchid}
name: restapi-v1-0-account-accountid-a2p-sms-batches-batchid
description: REST surface for restapi-v1.0-account-accountId-a2p-sms-batches-batchId.
operations:
- method: GET
name: reada2pbatch
description: Get A2P SMS Batch
call: platform-high-volume-sms.reada2pbatch
outputParameters:
- type: object
mapping: $.
- path: /v1/restapi/v1-0/account/{accountid}/a2p-sms/messages
name: restapi-v1-0-account-accountid-a2p-sms-messages
description: REST surface for restapi-v1.0-account-accountId-a2p-sms-messages.
operations:
- method: GET
name: lista2psms
description: List A2P SMS Messages
call: platform-high-volume-sms.lista2psms
with:
view: rest.view
phoneNumber: rest.phoneNumber
pageToken: rest.pageToken
perPage: rest.perPage
outputParameters:
- type: object
mapping: $.
- path: /v1/restapi/v1-0/account/{accountid}/a2p-sms/messages/{messageid}
name: restapi-v1-0-account-accountid-a2p-sms-messages-messageid
description: REST surface for restapi-v1.0-account-accountId-a2p-sms-messages-messageId.
operations:
- method: GET
name: reada2psms
description: Get A2P SMS
call: platform-high-volume-sms.reada2psms
with:
messageId: rest.messageId
outputParameters:
- type: object
mapping: $.
- path: /v1/restapi/v1-0/account/{accountid}/a2p-sms/opt-outs
name: restapi-v1-0-account-accountid-a2p-sms-opt-outs
description: REST surface for restapi-v1.0-account-accountId-a2p-sms-opt-outs.
operations:
- method: GET
name: reada2psmsoptouts
description: List Opted Out Numbers
call: platform-high-volume-sms.reada2psmsoptouts
with:
from: rest.from
to: rest.to
status: rest.status
pageToken: rest.pageToken
perPage: rest.perPage
outputParameters:
- type: object
mapping: $.
- path: /v1/restapi/v1-0/account/{accountid}/a2p-sms/opt-outs/bulk-assign
name: restapi-v1-0-account-accountid-a2p-sms-opt-outs-bulk-assign
description: REST surface for restapi-v1.0-account-accountId-a2p-sms-opt-outs-bulk-assign.
operations:
- method: POST
name: adda2psmsoptouts
description: Add Opt-In/Out Numbers
call: platform-high-volume-sms.adda2psmsoptouts
with:
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/restapi/v1-0/account/{accountid}/a2p-sms/statuses
name: restapi-v1-0-account-accountid-a2p-sms-statuses
description: REST surface for restapi-v1.0-account-accountId-a2p-sms-statuses.
operations:
- method: GET
name: aggregatea2psmsstatuses
description: List A2P SMS Statuses
call: platform-high-volume-sms.aggregatea2psmsstatuses
with:
phoneNumber: rest.phoneNumber
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: platform-high-volume-sms-mcp
port: 9090
transport: http
description: MCP adapter for RingCentral API — High Volume SMS. One tool per consumed operation, routed inline through
this capability's consumes block.
tools:
- name: send-a2p-sms
description: Send A2P SMS
hints:
readOnly: false
destructive: false
idempotent: false
call: platform-high-volume-sms.createa2psms
with:
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: list-a2p-sms-batches
description: List A2P SMS Batches
hints:
readOnly: true
destructive: false
idempotent: true
call: platform-high-volume-sms.lista2pbatches
with:
from: tools.from
status: tools.status
pageToken: tools.pageToken
perPage: tools.perPage
outputParameters:
- type: object
mapping: $.
- name: get-a2p-sms-batch
description: Get A2P SMS Batch
hints:
readOnly: true
destructive: false
idempotent: true
call: platform-high-volume-sms.reada2pbatch
outputParameters:
- type: object
mapping: $.
- name: list-a2p-sms-messages
description: List A2P SMS Messages
hints:
readOnly: true
destructive: false
idempotent: true
call: platform-high-volume-sms.lista2psms
with:
view: tools.view
phoneNumber: tools.phoneNumber
pageToken: tools.pageToken
perPage: tools.perPage
outputParameters:
- type: object
mapping: $.
- name: get-a2p-sms
description: Get A2P SMS
hints:
readOnly: true
destructive: false
idempotent: true
call: platform-high-volume-sms.reada2psms
with:
messageId: tools.messageId
outputParameters:
- type: object
mapping: $.
- name: list-opted-out-numbers
description: List Opted Out Numbers
hints:
readOnly: true
destructive: false
idempotent: true
call: platform-high-volume-sms.reada2psmsoptouts
with:
from: tools.from
to: tools.to
status: tools.status
pageToken: tools.pageToken
perPage: tools.perPage
outputParameters:
- type: object
mapping: $.
- name: add-opt-out-numbers
description: Add Opt-In/Out Numbers
hints:
readOnly: false
destructive: false
idempotent: false
call: platform-high-volume-sms.adda2psmsoptouts
with:
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: list-a2p-sms-statuses
description: List A2P SMS Statuses
hints:
readOnly: true
destructive: false
idempotent: true
call: platform-high-volume-sms.aggregatea2psmsstatuses
with:
phoneNumber: tools.phoneNumber
outputParameters:
- type: object
mapping: $.