Migration guide

How to migrate from MessageFlow to Bird

A developer guide to migrating SMS and messaging traffic from MessageFlow to Bird: channel changes, compliance, request-format mapping, and a step-by-step checklist.

MessageFlow is a cross-channel messaging platform from Polish CPaaS company Vercom S.A., exposing SMS, RCS, WhatsApp, Viber and email through a single REST API. Bird (formerly MessageBird) is a communications infrastructure platform offering SMS, WhatsApp, voice and email over a network that carries a large share of global commercial SMS. On the messaging.dev Score, MessageFlow rates 59/100 and Bird 76/100; this guide covers what actually changes at the API level when you migrate, not why one number is higher.

What changes when you move

Channels. SMS, WhatsApp and email exist on both platforms, so those integrations carry over. Moving to Bird you gain a Voice channel, but you lose RCS and Viber — MessageFlow supports both and Bird does not. If any of your traffic runs over RCS or Viber, you need a replacement plan before cutting over.

Compliance and residency. Both providers are GDPR, ISO 27001 and SOC 2 aligned, so you lose no certification in the move, and Bird additionally carries HIPAA, which MessageFlow does not. MessageFlow stores data on EU servers only with no region choice; Bird offers both EU and US regions and lets you pick data residency (the API key prefix encodes the region).

Pricing and free credit. MessageFlow sells monthly subscription tiers priced by contact count (Starter from €69/month) with bundled volumes and per-unit overages. Bird uses usage-based transactional pricing with no platform or seat fees and published per-country rates (from $0.0073 per SMS to US numbers). MessageFlow’s free credit is a 30-day trial of 100 SMS plus 100 emails; Bird’s is a standing free email tier of 1,000/month — note that Bird’s free allowance is email-only, so budget for paid SMS while testing.

Tooling. Bird publishes official SDKs for TypeScript, Python and Go, where MessageFlow ships none, and messaging.dev rates Bird’s docs high versus MessageFlow’s med. Both expose REST and SMTP, and both offer a sandbox. Bird lists 150 countries covered against MessageFlow’s 190.

How the request format differs

MessageFlow:

curl -X POST https://api.messageflow.com/v2.1/sms \
  -H "Authorization: YOUR_API_KEY" \
  -H "Application-Key: YOUR_APPLICATION_KEY" \
  -H "Content-Type: application/json" \
  -d '{"sender":"YourCompany","message":"Hello world!","phoneNumbers":["+48111222333"]}'

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. The endpoint moves from https://api.messageflow.com/v2.1/sms to a region-prefixed host, https://us1.platform.bird.com/v1/sms/messages (use the eu1 host with an eu1 key for EU residency). Authentication collapses from two headers — a 128-character Authorization key plus a separate Application-Key — to a single Authorization: Bearer token whose bk_us1_ / bk_eu1_ prefix selects the region. The payload remaps: the recipient goes from a phoneNumbers array to a single to string, sender becomes from, and message becomes text. Bird also expects a category field (for example authentication) that has no MessageFlow equivalent.

Migration checklist

  1. Create a Bird account, then generate a region-prefixed API key (bk_us1_ or bk_eu1_) for the residency you want.
  2. Map each request field: phoneNumbers[]to, senderfrom, messagetext, and add category.
  3. Swap the two MessageFlow headers for a single Authorization: Bearer header and update the base URL to the matching regional host.
  4. Re-point your sending code, ideally behind Bird’s TypeScript, Python or Go SDK, which routes to the correct regional host automatically.
  5. Re-test in Bird’s sandbox before sending live traffic.
  6. Re-point delivery-status webhooks and callbacks to Bird’s format.
  7. Run both providers in parallel, compare delivery, then cut over.

Watch out for

  • RCS and Viber disappear. Bird has no equivalent; re-route or drop that traffic.
  • Fewer countries. Bird lists 150 versus 190 — confirm your destinations are covered.
  • Free tier is email-only. SMS testing on Bird is billable from the first message.
  • Different commercial model. Model your volumes against usage-based per-message pricing rather than bundled subscription tiers.

See the Bird quickstart and the full Bird vs MessageFlow comparison for more detail.