Integrate SMS and Email sending into your applications with our simple REST API
All webhook endpoints require authentication using an API token. Include the token in either:
X-Webhook-Token: your-api-token?token=your-api-tokenhttps://zensms.com.au/api/webhook/send-sms
{
"phone": "+61412345678",
"message": "Hello from ZenSMS!",
"device_id": 1 // Optional
}
{
"success": true,
"sms_id": 123,
"status": "pending",
"device": {
"id": 1,
"name": "My Phone"
}
}
https://zensms.com.au/api/webhook/send-bulk-sms
{
"messages": [
{
"phone": "+61412345678",
"message": "Hello User 1!"
},
{
"phone": "+61487654321",
"message": "Hello User 2!"
}
],
"device_id": 1 // Optional
}
{
"success": true,
"count": 2,
"sms_ids": [123, 124],
"status": "pending",
"device": {
"id": 1,
"name": "My Phone"
}
}
https://zensms.com.au/api/webhook/sms-status/{id}
{
"id": 123,
"phone": "+61412345678",
"message": "Hello from ZenSMS!",
"status": "sent",
"created_at": "2026-02-27T10:30:00.000000Z",
"updated_at": "2026-02-27T10:30:15.000000Z"
}
pending - Queued for sendingsent - Successfully sentfailed - Failed to senddelivered - Delivered (if reports enabled)https://zensms.com.au/api/webhook/send-email
{
"to_email": "user@example.com",
"to_name": "John Doe", // Optional
"subject": "Hello from ZenSMS",
"body_text": "Plain text message", // Optional
"body_html": "<h1>HTML message</h1>" // Optional
}
{
"success": true,
"email_id": 456,
"status": "sent"
}
https://zensms.com.au/api/webhook/send-bulk-email
{
"emails": [
{
"to_email": "user1@example.com",
"to_name": "User 1",
"subject": "Hello User 1",
"body_text": "Message for user 1"
},
{
"to_email": "user2@example.com",
"subject": "Hello User 2",
"body_html": "<p>HTML message for user 2</p>"
}
]
}
{
"success": true,
"count": 2,
"email_ids": [456, 457],
"errors": []
}
https://zensms.com.au/api/webhook/email-status/{id}
{
"id": 456,
"to_email": "user@example.com",
"to_name": "John Doe",
"subject": "Hello from ZenSMS",
"status": "sent",
"sent_at": "2026-02-27T10:30:00.000000Z"
}
curl -X POST https://zensms.com.au/api/webhook/send-sms \
-H "X-Webhook-Token: your-api-token" \
-H "Content-Type: application/json" \
-d '{
"phone": "+61412345678",
"message": "Hello from ZenSMS!"
}'
import requests
headers = {
"X-Webhook-Token": "your-api-token",
"Content-Type": "application/json"
}
response = requests.post(
"https://zensms.com.au/api/webhook/send-sms",
headers=headers,
json={
"phone": "+61412345678",
"message": "Hello from ZenSMS!"
}
)
print(response.json())
curl -X POST https://zensms.com.au/api/webhook/send-email \
-H "X-Webhook-Token: your-api-token" \
-H "Content-Type: application/json" \
-d '{
"to_email": "user@example.com",
"to_name": "John Doe",
"subject": "Hello",
"body_text": "This is a test email"
}'
import requests
headers = {
"X-Webhook-Token": "your-api-token",
"Content-Type": "application/json"
}
response = requests.post(
"https://zensms.com.au/api/webhook/send-email",
headers=headers,
json={
"to_email": "user@example.com",
"subject": "Hello",
"body_text": "This is a test email"
}
)
print(response.json())
const axios = require('axios');
const response = await axios.post(
'https://zensms.com.au/api/webhook/send-sms',
{
phone: '+61412345678',
message: 'Hello from ZenSMS!'
},
{
headers: {
'X-Webhook-Token': 'your-api-token',
'Content-Type': 'application/json'
}
}
);
console.log(response.data);
$ch = curl_init('https://zensms.com.au/api/webhook/send-sms');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
'phone' => '+61412345678',
'message' => 'Hello from ZenSMS!'
]));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'X-Webhook-Token: your-api-token',
'Content-Type: application/json'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
| Plan | Daily SMS Limit |
|---|---|
| Free | 50 SMS per day |
| Premium | Unlimited |
| Premium Plus | Unlimited |
| Custom | Custom limits |
| Status Code | Description |
|---|---|
| 401 | Invalid or missing token |
| 403 | SMS limit reached |
| 404 | No active device available or SMS not found |
| 422 | Validation error |
Sign up now and get your API token to start sending SMS & emails!
Go to Dashboard