Migration guide

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 to https://{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 uses Authorization: App {api_key} — the App keyword is required, and the region is no longer carried in the key.
  • Payload shape. Bird sends one flat object with to, from and text. Infobip nests everything under a messages array, and the recipient moves into a destinations array of { "to": ... } objects. from and text keep their names but sit inside each message object. Note the recipient format: Bird’s example uses +14155550100 (E.164 with +); Infobip’s uses 15551234567. Bird’s category field has no direct equivalent in the basic Infobip payload.

Migration checklist

  1. Create an Infobip account, self-onboard, and generate an API key; note your account-specific {base_url}.
  2. Map the request fields: wrap the payload in messages[], move the recipient into destinations[].to, and place from/text inside the message object.
  3. Swap authentication from Bearer bk_... to Authorization: App {api_key}.
  4. Re-point your sending code to https://{base_url}.api.infobip.com/sms/2/text/advanced and switch your SDK (e.g. TypeScript → Node.js).
  5. Re-test in Infobip’s sandbox before sending live traffic.
  6. Repoint delivery/status webhooks and callbacks to your Infobip handler and confirm the payloads parse.
  7. 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/destinations structure and the App auth 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.