How to migrate from Bird to Infobip
A developer-focused guide to moving SMS and messaging traffic from Bird to Infobip, covering channel changes, request-format differences, and a step-by-step migration checklist.
Bird (formerly MessageBird) is a communications infrastructure platform offering unified APIs for email, SMS, WhatsApp and voice. Infobip is a global omnichannel communications platform covering SMS, WhatsApp, voice, email and more. On the messaging.dev Score, Bird rates 76/100 and Infobip 96/100 — this guide walks through what actually changes at the API level when you move between them.
What you gain and what you lose
Channels. You keep every channel Bird offered — SMS, WhatsApp, voice and email are supported on both, so you lose nothing. You gain six channels Bird does not list: MMS, RCS, Viber, Facebook Messenger, Telegram and Apple Messages for Business.
Compliance and residency. Identical on the certifications that matter here: both are GDPR, ISO 27001, SOC 2 and HIPAA aligned. Both offer EU and US servers with data-residency choice; Infobip additionally lists APAC, Latin America, Middle East and Africa regions.
SDKs and APIs. Bird ships SDKs for TypeScript, Python and Go. Infobip ships Java, C#, Python, PHP, Go and Node.js — so a Bird TypeScript integration maps to Infobip’s Node.js SDK. Both expose REST; Infobip adds SMPP alongside SMTP.
Pricing. This is the biggest practical shift. Bird publishes usage-based per-country rates (SMS from $0.0073 to US numbers) with no platform or seat fees. Infobip is primarily quote/contract-based (contact sales), with some pay-as-you-go options and no publicly listed SMS price. Both offer a free developer credit and a sandbox, and both have high-quality docs.
How the request format differs
Bird’s SMS 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"
}'
Infobip’s SMS quickstart:
curl -X POST 'https://xxxxxx.api.infobip.com/sms/2/text/advanced' \
-H 'Authorization: App YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{"messages":[{"from":"InfoSMS","destinations":[{"to":"15551234567"}],"text":"Hello from Infobip"}]}'
Three things change:
- Endpoint / base URL. Bird posts to
https://us1.platform.bird.com/v1/sms/messages, where the region (us1/eu1) lives in the hostname. Infobip posts tohttps://{base_url}.api.infobip.com/sms/2/text/advanced, where{base_url}is an account-specific subdomain you copy from the dashboard. - Authentication. Bird uses a Bearer token whose region-prefixed key (
bk_us1_...) encodes the host. Infobip usesAuthorization: App {api_key}— theAppkeyword is required, and the region is no longer carried in the key. - Payload shape. Bird sends one flat object with
to,fromandtext. Infobip nests everything under amessagesarray, and the recipient moves into adestinationsarray of{ "to": ... }objects.fromandtextkeep their names but sit inside each message object. Note the recipient format: Bird’s example uses+14155550100(E.164 with+); Infobip’s uses15551234567. Bird’scategoryfield has no direct equivalent in the basic Infobip payload.
Migration checklist
- Create an Infobip account, self-onboard, and generate an API key; note your account-specific
{base_url}. - Map the request fields: wrap the payload in
messages[], move the recipient intodestinations[].to, and placefrom/textinside the message object. - Swap authentication from
Bearer bk_...toAuthorization: App {api_key}. - Re-point your sending code to
https://{base_url}.api.infobip.com/sms/2/text/advancedand switch your SDK (e.g. TypeScript → Node.js). - Re-test in Infobip’s sandbox before sending live traffic.
- Repoint delivery/status webhooks and callbacks to your Infobip handler and confirm the payloads parse.
- Run both providers in parallel, compare delivery, then cut over.
Watch out for
- No published SMS price. Infobip’s pricing is quote/contract-based and its SMS rate is not publicly listed, unlike Bird’s published per-country grid — plan for a sales conversation to confirm cost.
- Unspecified free credit. Infobip offers a free developer credit, but the amount is not stated, versus Bird’s defined free email tier (1,000/month).
- Payload restructuring is mandatory. You cannot simply change the URL — the nested
messages/destinationsstructure and theAppauth keyword mean sending code needs real edits before anything delivers.
For a full walkthrough of the target, see how to start with Infobip, or the side-by-side Bird vs Infobip comparison.