Bandwidth · Capability
Bandwidth Messaging API — Messages
Bandwidth Messaging API — Messages. 2 operations. Lead operation: Send a message. Self-contained Naftiko capability covering one Bandwidth business surface.
What You Can Do
POST
Createmessage
— Send a message
/v1/users/{accountid}/messages
GET
Listmessages
— List messages
/v1/users/{accountid}/messages
MCP Tools
send-message
Send a message
list-messages
List messages
read-only
idempotent
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: Bandwidth Messaging API — Messages
description: 'Bandwidth Messaging API — Messages. 2 operations. Lead operation: Send a message. Self-contained Naftiko capability
covering one Bandwidth business surface.'
tags:
- Bandwidth
- Messages
created: '2026-05-19'
modified: '2026-05-19'
binds:
- namespace: env
keys:
BANDWIDTH_API_KEY: BANDWIDTH_API_KEY
capability:
consumes:
- type: http
namespace: messaging-messages
baseUri: https://messaging.bandwidth.com/api/v2
description: Bandwidth Messaging API — Messages business capability. Self-contained, no shared references.
resources:
- name: users-accountId-messages
path: /users/{accountId}/messages
operations:
- name: createmessage
method: POST
description: Send a message
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: listmessages
method: GET
description: List messages
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: messageId
in: query
type: string
description: Filter by a specific message ID
- name: sourceTn
in: query
type: string
description: Filter by source telephone number in E.164 format
- name: destinationTn
in: query
type: string
description: Filter by destination telephone number in E.164 format
- name: messageStatus
in: query
type: string
description: Filter by message delivery status
- name: messageDirection
in: query
type: string
description: Filter by message direction
- name: carrierName
in: query
type: string
description: Filter by carrier name
- name: messageType
in: query
type: string
description: Filter by message type
- name: errorCode
in: query
type: integer
description: Filter by error code
- name: fromDateTime
in: query
type: string
description: Filter messages sent on or after this date-time
- name: toDateTime
in: query
type: string
description: Filter messages sent on or before this date-time
- name: pageToken
in: query
type: string
description: Page token for pagination
- name: limit
in: query
type: integer
description: Maximum number of messages to return
authentication:
type: basic
username: '{{env.BANDWIDTH_USER}}'
password: '{{env.BANDWIDTH_PASS}}'
exposes:
- type: rest
namespace: messaging-messages-rest
port: 8080
description: REST adapter for Bandwidth Messaging API — Messages. One Spectral-compliant resource per consumed operation,
prefixed with /v1.
resources:
- path: /v1/users/{accountid}/messages
name: users-accountid-messages
description: REST surface for users-accountId-messages.
operations:
- method: POST
name: createmessage
description: Send a message
call: messaging-messages.createmessage
with:
body: rest.body
outputParameters:
- type: object
mapping: $.
- method: GET
name: listmessages
description: List messages
call: messaging-messages.listmessages
with:
messageId: rest.messageId
sourceTn: rest.sourceTn
destinationTn: rest.destinationTn
messageStatus: rest.messageStatus
messageDirection: rest.messageDirection
carrierName: rest.carrierName
messageType: rest.messageType
errorCode: rest.errorCode
fromDateTime: rest.fromDateTime
toDateTime: rest.toDateTime
pageToken: rest.pageToken
limit: rest.limit
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: messaging-messages-mcp
port: 9090
transport: http
description: MCP adapter for Bandwidth Messaging API — Messages. One tool per consumed operation, routed inline through
this capability's consumes block.
tools:
- name: send-message
description: Send a message
hints:
readOnly: false
destructive: false
idempotent: false
call: messaging-messages.createmessage
with:
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: list-messages
description: List messages
hints:
readOnly: true
destructive: false
idempotent: true
call: messaging-messages.listmessages
with:
messageId: tools.messageId
sourceTn: tools.sourceTn
destinationTn: tools.destinationTn
messageStatus: tools.messageStatus
messageDirection: tools.messageDirection
carrierName: tools.carrierName
messageType: tools.messageType
errorCode: tools.errorCode
fromDateTime: tools.fromDateTime
toDateTime: tools.toDateTime
pageToken: tools.pageToken
limit: tools.limit
outputParameters:
- type: object
mapping: $.