Skip to main content

Messaging API

Send messages on any supported channel, retrieve delivery status, retry failed sends, and manage reusable templates. Base path: /v1/messages

Send SMS

POST /v1/messages/sms Send an SMS message to a single recipient.
string
required
Recipient phone number in E.164 format (e.g., +14155552671)
string
required
The text content of the SMS (max 1600 characters; automatically segmented)
string
URL to receive delivery status callbacks for this message
object
Arbitrary key-value pairs attached to the message for your reference

Send WhatsApp Message

POST /v1/messages/whatsapp Send a WhatsApp message — free-form text, a pre-approved template, or media.
string
required
Recipient phone number in E.164 format
object
Free-form text message object
object
Pre-approved WhatsApp template (use instead of text for business-initiated conversations)
object
Media attachment
object
Arbitrary key-value pairs attached to the message

Send Email

POST /v1/messages/email Send a transactional email.
string | string[]
required
Recipient email address or array of addresses
string
required
Email subject line
string
HTML body of the email (provide html or text, or both)
string
Plain-text body of the email
object
Arbitrary key-value pairs attached to the message

Send RCS / Viber Message

POST /v1/messages/rcs | POST /v1/messages/viber Send a message on the RCS or Viber channel. Both use the same generic payload.
string
required
Recipient phone number in E.164 format
string
required
Message text content
object
Arbitrary key-value pairs attached to the message

List Messages

GET /v1/messages Retrieve a paginated list of sent messages with optional filters.
string
Cursor for pagination (returned in previous response)
integer
default:"20"
Number of results per page (max 100)
string
Filter by channel: sms, whatsapp, rcs, viber, email
string
Filter by status: queued, sent, delivered, failed, read
string
Filter by recipient (exact match)

Get Message

GET /v1/messages/{id} Retrieve details of a single message, including delivery status and timestamps.
string
required
Message ID (e.g., msg_abc123)

Retry Message

POST /v1/messages/{id}/retry Re-send a message that previously failed. The original message parameters are reused.
string
required
ID of the failed message to retry

Templates

List Templates

GET /v1/messages/templates Retrieve all message templates with cursor-based pagination.
string
Cursor for pagination
integer
default:"20"
Number of results per page (max 100)

Create Template

POST /v1/messages/templates Create a new message template for a given channel.
string
required
Channel the template is for: sms, whatsapp, rcs, viber, email
string
required
Template name (unique per channel)
string
required
Template body content — use {{variable_name}} for dynamic placeholders
string
Template category (e.g., marketing, transactional, otp)
string
Language code (e.g., en, tr, ar)
array
List of variable definitions used in the template content
string
Initial status: draft or pending_approval

Delete Template

DELETE /v1/messages/templates/{id} Permanently delete a message template.
string
required
Template ID
Response: 204 No Content