A High-Level Look into Clickatell's New SMS Small Business API

This is the first post in a two part series on integrating SMS functionality into an application. In this post, I focus on the analysis I did into Clickatell’s Small Business API. My second post in this series, “How to integrate Clickatell’s SMS Small Business API into a .NET application”, focuses on the options available and technical details for integrating the API into your application.


Clickatell is a worldwide mobile messaging company that just released a Small Business API, which allows you to integrate SMS functionality into your small business applications. Their target audience is small businesses that want to integrate SMS into their business model. For example, appointment reminders or delivery notifications are perfect scenarios for this API. It is not intended for multi-national business that need to send thousands of messages in bulk. You’ll want to look into the other messaging capabilities that Clickatell provides if you need to support over 10k messages a month. My dentist sends me appointment reminders and the Small Business API would be a perfect solution for them to implement for that.

Clickatell asked me to try it out and give them feedback so they can continue to improve the product.

API RESEARCH

Before I sat down to look at the API I came up with the following list of questions I would ask of any SMS API provider.

  • Reliability – Do they guarantee message delivery? Can I get notified when messages are successfully sent?
  • Usability – Can I quickly get what I need from the API? Is it easy to use?
  • Networks and Countries – Do they support the mobile networks that the majority of my customers are on? Only US or entire world?
  • Performance – What is the typical response time of the endpoint?
  • Platform Support – Do they support .NET and JavaScript calls?
  • Technical Support – What is response time for technical support inquires? Is there a phone number to call if needed?
  • Availability – How many nines? Do they have downtime notifications?
  • Pricing – How much does it cost per message?
  • Rate Limiting – How much do they throttle messages?
  • Media– Does it support MMS?

RELIABILITY

Do they guarantee message delivery? Can I get notified when messages are successfully sent?
I found out through my research into SMS that ALL messaging providers cannot guarantee delivery, but they do provide interim and “last know” status for each message. Keep this in mind when you are developing your SMS solution. You’ll want to make sure that you track message status so you can resubmit on failures.
You get the callback functionality by setting up a page that processes the callbacks and then you configure that page in your Clickatell account settings page.

USABILITY

Can I quickly get what I need from the API? Is it easy to use?
Based on a cursory glance of their APIs & Scripts it looks fairly straightforward to use. You can see more details in my second post: "How to integrate Clickatell’s SMS Small Business API into a .NET application"
Here are some examples of what the endpoints look like to give you an idea of their usage:
HTTP:

http://api.clickatell.com/http/sendmsg?api_id=xxxx&user=xxxx&password=xxxx&to=xxxx&text=xxxx

XML:

http://api.clickatell.com/xml/xml?data=<clickAPI><sendMsg><api_id>1</api_id><user>demo</user><password>demo</password><to>448311234567</to><text>Meet me outside</text><from>me</from></sendMsg></clickAPI>

SOAP:

<?xml version="1.0" encoding="ISO-8859-1"?> <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="soap.clickatell.com"> <SOAP-ENV:Body>
<tns:sendmsg xmlns:tns="soap.clickatell.com"> <session_id xsi:nil="true" xsi:type="xsd:string"/> <api_id xsi:type="xsd:int">1234</api_id> <user xsi:type="xsd:string">demo</user> <password xsi:type="xsd:string">demo</password>
<to xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="xsd:string[2]"> <item xsi:type="xsd:string">2799912345</item> <item xsi:type="xsd:string">27999123134</item> </to>
<from xsi:type="xsd:string">me</from> <text xsi:type="xsd:string">Initial test message</text> <concat xsi:nil="true" xsi:type="xsd:int"/> <deliv_ack xsi:nil="true" xsi:type="xsd:int"/> <callback xsi:nil="true" xsi:type="xsd:int"/> <deliv_time xsi:nil="true" xsi:type="xsd:int"/> <max_credits xsi:nil="true" xsi:type="xsd:float"/> <req_feat xsi:nil="true" xsi:type="xsd:int"/> <queue xsi:nil="true" xsi:type="xsd:int"/> <escalate xsi:nil="true" xsi:type="xsd:int"/> <mo xsi:nil="true" xsi:type="xsd:int"/> <cliMsgId xsi:nil="true" xsi:type="xsd:string"/> <unicode xsi:nil="true" xsi:type="xsd:int"/> <msg_type xsi:nil="true" xsi:type="xsd:string"/> <udh xsi:nil="true" xsi:type="xsd:string"/> <data xsi:nil="true" xsi:type="xsd:string"/> <validity xsi:nil="true" xsi:type="xsd:int"/> </tns:sendmsg>
</SOAP-ENV:Body> </SOAP-ENV:Envelope> 

COM:

oSMS.SendSimpleSMS API_ID, "username", "password", "278…", "My first SMS" 

NETWORKS AND COUNTRIES

Do they support the mobile networks that the majority of my customers are on? Only US or entire world?
Clickatells’ Small Business API supports all the major mobile networks in the US, including AT&T, Sprint, Verizon and T-Mobile, so you shouldn’t have any concerns when targeting US customers. It also supports Canada, Latin America and China. I’m unfamiliar with non-US networks, so be sure to scroll to the bottom of the Pricing and Coverage to page to make sure your target customer’s network is listed.

PERFORMANCE

What is the typical response time of the endpoint?
Clickatell claims that each SMS submission takes less than a second and it appears to be very fast in my initial tests. Definitely fast enough for the average small business.

PLATFORM SUPPORT

Do they support .NET and JavaScript calls?
Clickatell’s Small Business API provides you with 4 ways to implement SMS functionality into your application: HTTP/S, COM, XML and SOAP. They also provide a Connect API that allows you to manage your account (buy credits, create new connections, etc) programmatically.
They also supply scripts for PhP, VBScript, C#, VB.NET, Cold Fusion, Oracle and there are libraries for Java, Ruby, Perl and Applescript. See their APIs and Scripts page for more details.

I dig into the options in more detail in my second post: "How to integrate Clickatell’s SMS Small Business API into a .NET application"

TECHNICAL SUPPORT

What is response time for technical support inquires? Is there a phone number to call if needed?
Clickatell offers email support with a 1 day turnaround time, phone support if you need immediate assistance and they also offer chat on their website. I haven’t had the opportunity to contact their support, but at least they have multiple options with prompt turnaround times.

You can find all the ways to contact them at the Clickatell’s Contact Us page.

AVAILABILITY

How many nines? Do they have downtime notifications?
Clickatell’s Small Business API supports 99.99% uptime availability which equates to them being unavailable for 1.01 minute a week, 4.32 minutes a month and 52.56 minutes a year. This is much higher than I expected and should meet all the needs of small businesses.

PRICING

How much does it cost per message?
The pricing information I found on Clickatell Small Business API Pricing page seemed pretty reasonable at .7 to 2 cents per message (depending on what plan you select). One thing to note is that they don’t charge for “mobile to server” (i.e. incoming) messages, whereas other companies do.

RATE LIMITING

_How much do they throttle messages? _
With the Small Business API you are limited to 10 messages a second, 5k messages a day and 10k messages a month. Their backend will queue messages so you should be able to exceed 10 messages a second, but just be cautious and check for rate limiting status codes if you need to send in bulk.
These numbers sound reasonable for small businesses and is based on a research study that Clickatell conducted themselves over a 10 year period. Give them a call if you think you’ll need more than 10k/month. You’ll likely need multiple accounts or you’ll want to upgrade to a different solution.

MEDIA

Does it support MMS?
Clickatell’s Small Business API does not support MMS.

CLOSING THOUGHTS

Clickatell’s Small Business API is a great choice if:

  • You need to send less than 10k messages a month
  • Your target country and network is supported
  • You don’t need MMS

All the other aspects of my research checked out. They appear to have great support, the performance and availability numbers look great and the pricing looks competitive.

Have a look at the next post in this series "How to integrate Clickatell’s SMS Small Business API into a .NET application_" _to find out How to integrate Clickatell’s SMS Small Business API into your application.

Jon