How to migrate from Smstools to Twilio
A developer-focused guide to moving your messaging integration from Smstools to Twilio, covering channel and compliance differences, request-format changes, and a step-by-step migration checklist.
Smstools is a Belgian business-messaging platform offering an SMS gateway API, WhatsApp Business and voice messaging with EU-only hosting. Twilio is a publicly traded US customer-engagement platform with communications APIs for SMS, voice, email and more. On the messaging.dev Score the two sit apart — Smstools rates 56/100 and Twilio 88/100 — so this guide focuses on what concretely changes at the API level when you move, not on which is “better”.
What you gain and lose
Channels drive most migrations, so start there. Every channel Smstools offers — SMS, WhatsApp and voice — Twilio also supports, so you lose no channels in the move. You gain MMS, RCS and email as native channels. Neither provider offers Viber, Facebook Messenger, Telegram or Apple Messages for Business, so those stay off the table for both.
On compliance, both carry GDPR. Twilio additionally lists ISO 27001, SOC 2 and HIPAA attestations that Smstools does not. Both offer EU data residency; Twilio adds US servers, an Australia region and explicit data-residency choice, whereas Smstools is EU-only with no region selection.
Both are pay-as-you-go per message with no subscription, and both give free developer credit ($15 trial on Twilio; free test credit on Smstools). Twilio also offers committed-use discounts and quotes $0.0079 per US SMS segment plus carrier fees, versus Smstools’ from €0.025 per SMS to the USA. Tooling is close: both ship REST and SMTP APIs, a sandbox and high-quality docs. SDK overlap is PHP, Node.js, Python and Ruby; Twilio adds Java, C# and Go, while Smstools additionally offers PowerShell.
How the request format differs
Source — Smstools:
curl -X POST "https://api.smsgatewayapi.com/v1/message/send" \
-H "X-Client-Id: YOUR_CLIENT_ID" \
-H "X-Client-Secret: YOUR_CLIENT_SECRET" \
-H "Content-Type: application/json" \
-d '{"message": "Hello World", "to": "11231231234", "sender": "YourName"}'
Target — 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:
- Endpoint. Smstools posts to a single fixed path,
https://api.smsgatewayapi.com/v1/message/send. Twilio’s path embeds your Account SID:https://api.twilio.com/2010-04-01/Accounts/{AccountSid}/Messages.json, so the URL itself is account-specific. - Authentication. Smstools uses two custom headers,
X-Client-IdandX-Client-Secret. Twilio uses HTTP Basic auth — your Account SID as the username and Auth Token as the password (the-uflag) — so the credentials move out of custom headers and into the standard authorization mechanism. - Payload. Smstools sends a JSON body (
Content-Type: application/json); Twilio sends URL-encoded form fields (--data-urlencode). The fields map directly but rename and re-case:message→Body,to→To,sender→From. Note that Twilio’sTouses E.164 with a leading+(+15551234567) andFromis a provisioned Twilio number or sender (+15005550006), where Smstools accepts a bare number and a free-text sender string.
Migration checklist
- Create a Twilio account, provision a sending number or sender ID, and copy your Account SID and Auth Token. The Twilio quickstart walks through this.
- Map the request fields:
message→Body,to→To(in E.164),sender→From. - Switch the transport: change the endpoint to the Account-scoped
Messages.jsonURL, replace theX-Client-*headers with HTTP Basic auth, and send form-encoded data instead of JSON. - Re-point your sending code — ideally via Twilio’s official SDK for your language (Node.js, Python, PHP, Java, C#, Ruby or Go).
- Re-test against Twilio’s sandbox before sending live traffic.
- Update delivery and status webhooks to consume Twilio’s callback format and point them at your endpoints.
- Run both providers in parallel, comparing delivery on real traffic.
- Cut over once Twilio’s numbers match, then retire the Smstools path.
Watch out for
- Country coverage. Twilio lists 180 countries versus Smstools’ 200 — confirm your destinations are supported before cutting over.
- Data location. Twilio is US-headquartered and stores records in the US by default; if EU-only residency was implicit with Smstools, configure Twilio’s region explicitly.
- Pricing surprises. Twilio’s $0.0079 is per SMS segment and excludes carrier fees, so long or multi-part messages cost more than the headline rate.
- Published SLA. Twilio’s stated uptime SLA is 99.95% (Enterprise Edition), below Smstools’ 99.99%.
For the full field-by-field breakdown, see the side-by-side comparison.