How to migrate from Smstools to Bird
A developer-focused, field-by-field guide to moving SMS, WhatsApp and voice traffic from Smstools to Bird — covering channels, auth, payload mapping and gotchas.
Smstools is a Belgian business-messaging platform from Xtreme Internet Solutions, offering an SMS gateway API, WhatsApp Business API, voice messages and email-to-SMS on EU-only hosting. Bird (formerly MessageBird) is a larger communications-infrastructure platform providing unified APIs for SMS, WhatsApp, voice and email. On the messaging.dev Score, Smstools rates 56/100 and Bird 76/100 — this guide covers what actually changes when you re-point your sending code.
What you gain and what you lose
Channels. Both platforms support SMS, WhatsApp and voice, and neither supports MMS, RCS, Viber, Facebook Messenger, Telegram or Apple Messages for Business. Migrating therefore costs you no channel; the one addition is email, which Bird offers as a first-class channel and Smstools does not.
Compliance and data residency. Both are GDPR-aligned. Bird additionally holds ISO 27001, SOC 2 and HIPAA certifications that Smstools does not list. Smstools hosts EU-only with no region selection; Bird operates in both EU and US regions and lets you choose data residency.
Pricing and free credit. Both bill usage-based with no subscription or seat fees. Smstools is pay-as-you-go per message (from €0.025 per SMS to the US); Bird publishes per-country per-message SMS rates (from $0.0073 to US numbers) plus volume-tiered email plans. One difference to plan around: Smstools grants free test credit on sign-up, whereas Bird’s free tier is email-only (1,000/month) — it is not SMS test credit.
SDKs, sandbox and docs. Both rate high on documentation, both offer a sandbox, and both expose REST plus SMTP. SDK languages differ: Smstools ships PHP, Node.js, Python, Ruby and PowerShell; Bird ships TypeScript, Python and Go. Python carries over, but official PHP, Ruby and PowerShell SDKs do not. Smstools also lists 200 countries covered versus Bird’s 150.
How the request format differs
Smstools quickstart:
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"}'
Bird quickstart:
curl -X POST "https://us1.platform.bird.com/v1/sms/messages" \
-H "Authorization: Bearer bk_us1_..." \
-H "Content-Type: application/json" \
-d '{
"to": "+14155550100",
"from": "Bird",
"text": "Your Bird verification code is 481920. It expires in 10 minutes.",
"category": "authentication"
}'
Three things change:
- Endpoint. You move from
https://api.smsgatewayapi.com/v1/message/sendto a region-prefixed host,https://us1.platform.bird.com/v1/sms/messages(useeu1for the EU region). - Authentication. Smstools sends an API key and secret as the
X-Client-IdandX-Client-Secretheaders. Bird uses a single region-prefixed key (bk_us1_.../bk_eu1_...) as a Bearer token in theAuthorizationheader; the prefix must match the host you call. - Payload. The message-body field
messagebecomestext, andsenderbecomesfrom. Thetofield keeps its name but must be E.164 with a leading+(+14155550100, not11231231234). Bird also accepts acategoryfield (for exampleauthentication).
Migration checklist
- Create a Bird account and generate a region-prefixed API key (
bk_us1_orbk_eu1_), choosing the region that matches your data-residency needs. - Map the request fields:
message→text,sender→from, and normalize recipients to E.164. - Swap the endpoint and auth header, pointing your client at the matching regional host.
- Re-test against Bird’s sandbox before sending live traffic.
- Update delivery/status webhooks to consume Bird’s callbacks instead of Smstools’.
- Run both integrations in parallel and reconcile delivery results.
- Cut over once volumes match, then retire the Smstools credentials.
See how to start with Bird for the full quickstart, or the Bird vs Smstools comparison for a field-by-field view.
Watch out for
- Free tier is email-only. Bird’s 1,000/month free tier covers email, not SMS, so budget for SMS testing from day one — unlike Smstools’ sign-up test credit.
- Fewer countries covered. Bird lists 150 countries versus Smstools’ 200; confirm your destinations are supported.
- SDK gaps. If you rely on Smstools’ PHP, Ruby or PowerShell SDKs, Bird has no official equivalent — you’ll use Python, TypeScript or Go, or call REST directly.
- Region-locked keys. A
bk_us1_key only works against theus1host, so pick the right region up front. - Uptime SLA. Smstools publishes 99.99%; Bird’s listed figure is a legacy 99.95% (current SLAs are per-service-plan).