How to migrate from Clickatell to Twilio
A developer-focused, data-backed guide to moving your messaging integration from Clickatell to Twilio, covering channel and compliance differences, request-format changes, and a step-by-step cutover checklist.
Clickatell is a cloud messaging and chat-commerce platform that exposes SMS, WhatsApp, RCS, and Apple Messages for Business APIs. Twilio is a broader customer-engagement platform whose communications APIs span SMS, voice, email, and more. On the messaging.dev Score, Clickatell rates 61/100 and Twilio 88/100 — this guide walks through what actually changes when you move your sending code from one to the other.
What you gain and what you lose
Channels. Both platforms carry SMS, RCS, and WhatsApp, so those integrations map across directly. Moving to Twilio adds MMS, voice, and email, none of which Clickatell offers in the dataset. The one channel you lose is Apple Messages for Business, which Clickatell supports and Twilio does not — if you rely on it, plan a replacement before cutting over. Neither provider offers Viber, Facebook Messenger, or Telegram.
Compliance and data residency. Both hold GDPR, ISO 27001, and SOC 2. Twilio adds HIPAA, which Clickatell lacks. On residency, Clickatell runs EU servers only with no region choice; Twilio offers both EU and US servers (plus Australia) and lets you choose where data lives.
Pricing and credit. Both bill pay-as-you-go — Clickatell as prepaid credits with quote-based enterprise tiers, Twilio per message/minute with volume and committed-use discounts. Published SMS rates are close ($0.008 to the US vs $0.0079 per US segment, plus carrier fees on Twilio). Twilio includes a $15 trial credit; Clickatell has no free developer credit.
Tooling. Both ship high-quality docs and a sandbox. Twilio’s SDK list is wider (Node.js, Python, PHP, Java, C#, Ruby, Go vs Clickatell’s Python, PHP, Java, Node.js, C#), so Ruby and Go teams gain official support. Both expose REST; note that Clickatell also offers SMPP while Twilio lists SMTP instead.
How the request format differs
Clickatell:
curl -X POST https://platform.clickatell.com/v1/message \
-H "Authorization: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"messages":[{"channel":"sms","to":"27123456789","content":"Hello World"}]}'
Twilio:
curl -X POST 'https://api.twilio.com/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages.json' \
--data-urlencode 'To=+15551234567' \
--data-urlencode 'From=+15005550006' \
--data-urlencode 'Body=Hello from Twilio' \
-u ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:your_auth_token
Three things change. The endpoint moves from a single flat URL (platform.clickatell.com/v1/message) to an account-scoped resource (api.twilio.com/2010-04-01/Accounts/{AccountSid}/Messages.json), so your Account SID becomes part of the path. Authentication switches from a raw API key in the Authorization header (no prefix) to HTTP Basic auth, with the Account SID as username and the Auth Token as password (the -u flag). The payload changes shape entirely: Clickatell takes a JSON messages array, Twilio takes form-urlencoded fields. Field mapping is to → To (E.164 with a leading +), content → Body, and the explicit channel key is dropped. Clickatell’s example carries no sender; Twilio requires an explicit From number you own. Clickatell can batch several messages in one array, whereas on Twilio you issue one request per message.
Migration checklist
- Create a Twilio account, provision a sending number, and copy your Account SID and Auth Token.
- Map each field:
to→To,content→Body, add aFrom, and drop thechannelkey. - Re-point your sending code to the
Messages.jsonendpoint and swap the API-key header for Basic auth. - Re-test in Twilio’s sandbox before sending live traffic.
- Recreate your delivery-status callbacks/webhooks against Twilio’s format.
- Run both providers in parallel and compare delivery results.
- Cut over once Twilio matches, then retire the Clickatell path.
Watch out for
- Apple Messages for Business: supported on Clickatell, not on Twilio — you lose this channel.
- SMPP: Clickatell lists SMPP; Twilio does not (it lists SMTP), so any binary SMPP bindings must be reworked to REST.
- Country reach: Clickatell covers 190 countries vs Twilio’s 180 — verify your destinations.
- Sender required: Twilio needs an explicit
From; there is no account-default sender in the quickstart.
For a deeper walkthrough, see how to start with Twilio, and the full side-by-side is at Clickatell vs Twilio.