Messages
Send messages to your customers and read the conversation history, all provider-agnostic (WhatsApp today, more channels later).
Base URL
https://api.jawbly.com/v1POST
/messagesSend a message
Send a text or template message from your connected number to a customer. Respects the channel’s 24-hour messaging window automatically.
Requires scope messages:write
Parameters
torequiredstring (E.164) · body
Destination phone number, e.g. +14155550123.
typerequired"text" | "template" · body
Message type. Outside the 24h window, only templates are allowed.
textstring · body
Message body when type is "text".
templateobject · body
Template name + variables when type is "template".
curl -X POST "https://api.jawbly.com/v1/messages" \
-H "Authorization: Bearer jwb_live_xxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"to": "+14155550123",
"type": "text",
"text": "Your order #1024 is on its way 🚚"
}'200 response
{
"id": "msg_2Zt9…",
"status": "queued",
"conversationId": "conv_8fA1…",
"createdAt": "2026-07-07T10:12:04Z"
}GET
/conversations/{conversationId}/messagesList messages
Page through the messages in a conversation, newest first.
Requires scope messages:read
Parameters
conversationIdrequiredstring · path
The conversation to read.
limitinteger (1–100) · query
Page size. Defaults to 50.
beforestring (cursor) · query
Return messages older than this cursor.
curl -X GET "https://api.jawbly.com/v1/conversations/{conversationId}/messages" \
-H "Authorization: Bearer jwb_live_xxxxxxxxxxxxxxxxxxxxxxxx"200 response
{
"data": [
{
"id": "msg_2Zt9…",
"direction": "outbound",
"text": "Your order #1024 is on its way 🚚",
"createdAt": "2026-07-07T10:12:04Z"
}
],
"nextCursor": null
}