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
The ID of the WhatsApp sender to send from (obtained from the Get Senders endpoint)
The ID of the message template to use (obtained from the Get Templates endpoint)
The recipient’s phone number in international format (e.g., +1234567890)
The recipient’s name, max 255 characters (used for conversation tracking and CRM purposes)
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. Value for the first template variable
Value for the second template variable
Response Fields
Whether the message was sent successfully
The ID of the conversation (new or existing) associated with this message
The ID of the conversation message record
The ID of the WhatsApp message record
The Twilio message SID for tracking delivery
The initial message delivery status (e.g., queued, sent)
Error Responses
Insufficient balance. Please top up your account.
Sender not found or does not belong to you or Template not found or does not belong to this sender
SENDER_NOT_FOUND or TEMPLATE_NOT_FOUND
One of: SENDER_OFFLINE, TEMPLATE_NOT_APPROVED, TEMPLATE_NOT_SYNCED, TEMPLATE_MISMATCH, NO_ASSISTANT_CONFIGURED, INVALID_PHONE, MESSAGING_LIMIT_UNAVAILABLE, VOICE_CALL_LIMIT_NOT_MET, TWILIO_ERROR_{code}, UNKNOWN_ERROR
cURL
Template without variables
JavaScript
Python
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"
}
}'
200 Success
402 Insufficient Balance
404 Sender Not Found
404 Template Not Found
422 Template Not Approved
422 Invalid Phone
422 Sender Offline
{
"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.