Send message
Archived
This command allows you to send one or more SMS messages. To send messages to your database of mobile numbers, you can call this command in a loop.
The server will respond with a unique identifier for each message (referred to as an API message ID). This API message ID can be used to track and monitor the status of your message.
You can also send to multiple handsets in one single HTTP/S request by comma separating mobile numbers (up to 300 numbers with an HTTP GET and 600 with HTTP POST). This is useful if you are sending the same message text to all the handsets.
For high volume messaging, we encourage the use of persistent HTTP/S connections (keep-alive). Multiple concurrent HTTP/S connections may also be used for additional performance.
Command
You can copy and paste the URL below into your web browser. Simply set your authentication details, mobile number and text. Remember to URL encode your parameter values.
https://api.clickatell.com/http/sendmsg?user=xxxx&password=xxxx&api_id=xxxx&to=xxxx&text=xxxxParameters
In addition to authentication parameters, only to and text are required to send a message. It’s important to note that when sending from a two-way number, the from and mo parameters will also be required as stated in the table below.
to
Yes
The mobile number to which the message must be delivered. The number should be in international number format (i.e. no leading zeros or + symbol should be used).
text
Yes
The text content of the message. Note that some characters take up two character spaces due to GSM encoding standards.
msg_callback
No
Enable message delivery status updates to be sent to your server via an HTTP request. See Callback.
from
Only when sending from a two-way number or specifying a custom sender ID
The two-way number that you are sending from. This parameter is only required if you want to send messages using a two-way number OR when a two-way number is a legal requirement to send messages as is the case in the USA, for example.
mo
Only when sending from a two-way number
Must be set to 1 when sending from a two-way number.
Many more parameters are available and listed here.
Examples
Send to two mobile numbers:
https://api.clickatell.com/http/sendmsg?user=xxxx&password=xxxx&api_id=xxxx&to=2799900001,2799900002&text=xxxx<.pre>Send a Unicode message:
https://api.clickatell.com/http/sendmsg?user=xxxx&password=xxxx&api_id=xxxx&to=2799900001&text=005400680069007300200069007300200061002000730061006d0070006c00650020006d006500730073006100670065002000730065006e007400200061007300200055006e00690063006f0064006500200064006100740061002e&unicode=1Send a flash message:
https://api.clickatell.com/http/sendmsg?user=xxxx&password=xxxx&api_id=xxxx&to=2799900001&text=xxxx&msg_type=SMS_FLASHSend a binary message:
https://api.clickatell.com/http/sendmsg?user=xxxx&password=xxxx&api_id=xxxx&to=2799900001&text=040601AE02056A0045C60C037368008503656B732E636F6D0008010374657374000101&udh=0605040B8423F0Use callback and sender id:
https://api.clickatell.com/http/sendmsg?user=xxxx&password=xxxx&api_id=xxxx&to=2799900001&text=xxxx&callback=2&from=123456789Code samples
Single number submission
Bash
username="place username here"
password="place password here"
api_id="place password here"
to="mobile number"message="Test+Message"
curl --data "user=$username&password=$password&api_id=$api_id&to=$to&text=$message" \ 'https://api.clickatell.com/http/sendmsg'PHP
<?php $username = urlencode("place username here");
$password = urlencode("place password here");
$api_id = urlencode("place api_id here");
$to = urlencode("mobile number");
$message = urlencode("Test Message");
echo file_get_contents("https://api.clickatell.com/http/sendmsg"
. "?user=$username&password=$password&api_id=$api_id&to=$to&text=$message"); ?>Python
import urllib2,
urllib params = { "user": "place username here", "password": "place password here", "api_id": "place password here", "to": "mobile number", "text": "message" }
params = urllib.urlencode(params)
f = urllib2.urlopen("https://api.clickatell.com/http/sendmsg", params)
print f.read()Multiple number submission
HTTP GET URL:
https://api.clickatell.com/http/sendmsg?user=xxxx&password=xxxx&api_id=xxxx&to=xxxx,xxxx,xxxx&text=xxxxBash
username="place username here"
password="place password here"
api_id="place password here"
to="number 1,number 2,number 3"
message="message"
curl --data "user=$username&password=$password&api_id=$api_id&to=$to&text=$message" \ 'https://api.clickatell.com/http/sendmsg'PHP
<?php
$username = urlencode("place username here");
$password = urlencode("place password here");
$api_id = urlencode("place api_id here");
$toList = array(urlencode("number 1"),urlencode("number 2"),urlencode("number 3"));
$to = implode(',', $toList);
$message = urlencode("Test Message");
echo file_get_contents("https://api.clickatell.com/http/sendmsg" . "?user=$username&password=$password&api_id=$api_id&to=$to&text=$message"); ?>Python
import urllib2,
urllib params = { "user": "place username here", "password": "place password here", "api_id": "place password here", "to": ",".join({"number 1", "number 2", "number 3"}), "text": "message" }
params = urllib.urlencode(params)
f = urllib2.urlopen("https://api.clickatell.com/http/sendmsg", params)
print f.read()API responses
Example response – Single number submission
Successful API response:
ID: f7012c1edff2509a19ce1667c7f52b18Error response:
ERR: 101, Authentication failedExample response – Multiple number submission
Successful API response:
ID: f6b9af2a2c9e5b18ee2d257e3def5d66 To: <number 1> ID: 3e3ca2485ff340185e4af50851422943 To: <number 2> ID: 48e783af2f1e918f544d389310317369 To: <number 3>Error response:
ERR: 001, Authentication failed To: <number 1> ERR: 001, Authentication failed To: <number 2> ERR: 001, Authentication failed To: <number 3>Format – Single number submission
Successful API response:
ID: <message ID>Error response:
ERR: <error code>, <error description>Format – Multiple number submission
Successful API response:
ID: <message ID> To: <number 1> ID: <message ID> To: <number 2> ID: <message ID> To: <number 3>Error response:
ERR: <error code>, <error description> To: <number 1> ERR: <error code>, <error description> To: <number 2> ERR: <error code>, <error description> To: <number 3>