How to migrate from 46elks to Bird
A developer's guide to moving SMS and voice traffic from 46elks to Bird: channel and compliance differences, request-format changes, and a step-by-step migration checklist.
46elks is a Swedish telecom API platform for sending SMS and MMS, making voice calls, and managing virtual numbers over a REST API. Bird (formerly MessageBird) is a broader communications-infrastructure platform offering unified APIs for SMS, WhatsApp, voice and email. On the messaging.dev Score, 46elks rates 33/100 and Bird 76/100; this guide covers what actually changes in your integration when you move between them.
What changes when you move
Channels. SMS and voice carry over unchanged. You gain WhatsApp and email. You lose MMS — Bird does not offer it, so any picture-messaging flows need another path. Neither provider offers RCS, Viber, Facebook Messenger, Telegram or Apple Messages for Business, so nothing changes there.
Compliance. Both are GDPR-aligned. Bird additionally holds ISO 27001, SOC 2 and HIPAA, none of which 46elks lists.
Data residency. 46elks keeps data on EU servers only, with no region choice. Bird runs both EU and US regions and lets you choose — though that choice is baked into your API key prefix (see below).
Pricing and credit. Both bill usage-based/pay-as-you-go with no monthly minimums or seat fees. Bird adds volume-tiered email subscriptions and a free email tier (1,000 emails/month); 46elks offers no free developer credit. The published SMS reference prices aren’t directly comparable — 46elks quotes €0.047/part to Sweden, Bird $0.0073/message to the US.
Tooling. 46elks ships no official SDKs (REST only). Bird provides TypeScript, Python and Go SDKs plus REST and SMTP, and its docs are rated high versus 46elks’s medium. Both offer a sandbox for pre-live testing.
How the request format differs
46elks:
curl https://api.46elks.com/a1/sms \
-u <api_username>:<api_password> \
-d from=CurlyElk \
-d to=+46700000000 \
-d message="Bring a sweater, it's cold outside"
Bird:
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 / base URL. 46elks posts form data to
https://api.46elks.com/a1/sms. Bird posts to a region-prefixed host,https://us1.platform.bird.com/v1/sms/messages(useeu1for the EU region). - Authentication. 46elks uses HTTP Basic auth (
-u username:password). Bird uses a region-prefixed API key (bk_us1_.../bk_eu1_...) sent as a Bearer token in theAuthorizationheader; the prefix encodes the regional host, and the SDKs route automatically. - Payload. 46elks sends URL-encoded form fields; Bird sends a JSON body (
-X POSTplusContent-Type: application/json). The recipient (to) and sender (from) keep their names; the message body renames frommessagetotext; and Bird adds acategoryfield (e.g."authentication").
Migration checklist
- Create a Bird account (self-onboarding) and generate a region-prefixed API key; pick
us1oreu1to match your residency needs. - Map the request fields:
to→to,from→from,message→text, and addcategory. - Re-point your sending code: swap the base URL, switch Basic auth to the Bearer header, and send JSON instead of form data.
- Re-test in Bird’s sandbox before sending live traffic (both providers have one).
- Update webhooks and delivery callbacks to Bird’s endpoints and payload format.
- Run both providers in parallel and compare delivery and receipts.
- Cut over once Bird matches your baseline, then decommission 46elks.
Watch out for
- No MMS on Bird — migrate or retire any picture-messaging flows.
- Fewer countries covered: Bird lists 150 versus 46elks’s 215; confirm your destinations are supported.
- The free tier is email-only (1,000/month); SMS and voice have no free credit.
- The key’s region prefix pins you to
us1oreu1— choose deliberately, since it’s part of the endpoint.
For a full walkthrough of Bird’s setup, see the Bird quickstart, and for a field-by-field breakdown, the 46elks vs Bird comparison.