Skip to main content
POST
https://app.autocalls.ai/api/
/
user
/
whatsapp
/
send
curl -X POST "https://app.autocalls.ai/api/user/whatsapp/send" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "sender_id": 12,
    "template_id": 45,
    "recipient_phone": "+1234567890",
    "recipient_name": "John Doe",
    "variables": {
      "1": "John",
      "2": "January 15, 2026",
      "3": "2:00 PM"
    }
  }'
{
  "success": true,
  "conversation_id": 1234,
  "message_id": 567,
  "whatsapp_message_id": 890,
  "message_sid": "SMxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  "status": "queued"
}
This endpoint sends a WhatsApp message using a pre-approved template. Template messages are required when initiating a conversation with a user for the first time or when messaging outside the 24-hour messaging window.
This endpoint is rate-limited to 5 requests per second per user.

Request Body

sender_id
integer
required
The ID of the WhatsApp sender to send from (obtained from the Get Senders endpoint)
template_id
integer
required
The ID of the message template to use (obtained from the Get Templates endpoint)
recipient_phone
string
required
The recipient’s phone number in international format (e.g., +1234567890)
recipient_name
string
The recipient’s name, max 255 characters (used for conversation tracking and CRM purposes)
variables
object
Key-value pairs for template variables. Keys should match the variable names from the template. If the template has variables {{1}}, {{2}}, etc., provide them as {"1": "value1", "2": "value2"} or using the named keys from the template’s variables array.

Response Fields

success
boolean
Whether the message was sent successfully
conversation_id
integer
The ID of the conversation (new or existing) associated with this message
message_id
integer
The ID of the conversation message record
whatsapp_message_id
integer
The ID of the WhatsApp message record
message_sid
string
The Twilio message SID for tracking delivery
status
string
The initial message delivery status (e.g., queued, sent)

Error Responses

402 Insufficient Balance
404 Not Found
422 Unprocessable Entity
curl -X POST "https://app.autocalls.ai/api/user/whatsapp/send" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "sender_id": 12,
    "template_id": 45,
    "recipient_phone": "+1234567890",
    "recipient_name": "John Doe",
    "variables": {
      "1": "John",
      "2": "January 15, 2026",
      "3": "2:00 PM"
    }
  }'
{
  "success": true,
  "conversation_id": 1234,
  "message_id": 567,
  "whatsapp_message_id": 890,
  "message_sid": "SMxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  "status": "queued"
}

Notes

  • Template messages must use approved templates. Templates with pending or rejected status will fail.
  • The sender must be online. Offline senders cannot send messages.
  • Message costs are automatically deducted from your account balance (credits for tenant users, minutes for direct users).
  • After sending a template message, a 24-hour messaging window opens. During this window, you can send freeform messages without needing a template.
  • If a conversation already exists with the recipient, the message is added to the existing conversation.
  • Rate limit: 5 requests per second per user.