Web2SMS API Documentation
Integrate SMS messaging into your applications with our simple and powerful REST API
Quick Start
With our Web to SMS service, you can automate the sending of text messages from your website or devices. You'll need credit in your account to send messages.
The API documented below is our legacy API and has been in use for over 10 years. For new integrations, we recommend using our Connexus API. You can test API calls using our interactive OpenAPI documentation.
API Endpoint
Send SMS Endpoint
https://websms.co.nz/api/send.php
Example Request
https://websms.co.nz/api/send.php?username=username@domain.co.nz&password=mypassword&premium=0&cellnum=64271234567&message=Hello from WebSMS API
Optional Delivery Report URL
&dlrurl=http://www.yoururl.co.nz/delivery-report.php
Parameters
| Parameter | Required | Description | Example |
|---|---|---|---|
username |
Required | Your WebSMS account username (email) | user@domain.co.nz |
password |
Required | Your WebSMS account password | mypassword |
cellnum |
Required | Recipient phone number (with country code) | 64271234567 |
message |
Required | SMS message content (max 160 characters) | Hello World |
premium |
Optional | Use premium route for delivery reports (0 or 1) | 1 |
dlrurl |
Optional | URL for delivery report callbacks | http://yoursite.com/dlr.php |
balance |
Optional | Check account balance only (true) | true |
Response Codes
Success Responses
| Response | Description |
|---|---|
OK:Queued:109720 |
Message successfully queued with ID 109720 |
Error Responses
| Response | Description |
|---|---|
NOK:Funds:You do not have enough funds |
Insufficient account balance |
NOK:Login:Invalid Username or Password |
Authentication failed |
Delivery Reports (DLR)
When you specify a dlrurl, we'll send delivery status updates to your server via GET requests.
Example DLR Callbacks
GET /delivery-report.php?id=109720&dlr=8
- Message QueuedGET /delivery-report.php?id=109720&dlr=1
- Message Delivered
DLR Status Codes
| DLR Code | Status | Description |
|---|---|---|
1 |
Delivered | Message successfully delivered to handset |
2 |
Failed | Delivery failure |
4 |
Buffered | Message buffered for delivery |
8 |
Queued | Message queued at SMSC |
16 |
Rejected | Message rejected by SMSC |
Reply Messages
Reply messages are delivered to your registered email address and optionally to your DLR URL.
Reply Callback Example
GET /delivery-report.php?id=+109720&reply=Reply Text
Note the + prefix in the message ID for reply messages.
Balance Check
Check your account balance programmatically using the API.
Balance Check Request
https://websms.co.nz/api/send.php?username=user@domain.co.nz&password=mypassword&balance=true
Returns your current account balance in credits.
Code Examples
PHP Example
<?php
$username = 'user@domain.co.nz';
$password = 'mypassword';
$to = '64271234567';
$message = 'Hello from PHP!';
$url = 'https://websms.co.nz/api/send.php?' . http_build_query([
'username' => $username,
'password' => $password,
'cellnum' => $to,
'message' => $message,
'premium' => 0
]);
$response = file_get_contents($url);
echo $response;
?>
JavaScript (Node.js) Example
const axios = require('axios');
const params = {
username: 'user@domain.co.nz',
password: 'mypassword',
cellnum: '64271234567',
message: 'Hello from Node.js!',
premium: 0
};
axios.get('https://websms.co.nz/api/send.php', { params })
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error(error);
});
Python Example
import requests
params = {
'username': 'user@domain.co.nz',
'password': 'mypassword',
'cellnum': '64271234567',
'message': 'Hello from Python!',
'premium': 0
}
response = requests.get('https://websms.co.nz/api/send.php', params=params)
print(response.text)
Need Help with Integration?
Our support team is here to help you get started with the WebSMS API
Migrating from Bulletin Connect?
We also offer a drop-in replacement API that's 100% compatible with Bulletin Connect/Connexus. No code changes required - just update your credentials and URL!
View Connexus API Documentation