Migration guide

How to migrate from smsmode to Bird

A developer-focused guide to migrating SMS and messaging traffic from smsmode to Bird, covering channel and compliance differences, request-format changes, and a step-by-step cutover checklist.

smsmode is a French A2P mobile messaging platform (SMS, RCS, WhatsApp and text-to-speech) with data hosted in France. Bird (formerly MessageBird) is a broader communications infrastructure platform offering unified APIs for email, SMS, WhatsApp and voice. On the messaging.dev Score, smsmode rates 53/100 and Bird rates 76/100. This guide covers what changes when you move sending traffic from one to the other.

What changes when you move

Channels. Both platforms support SMS, WhatsApp and voice. Moving to Bird you gain email, which smsmode does not offer. You lose RCS, which smsmode supports but Bird does not. Neither provider offers MMS, Viber, Facebook Messenger, Telegram or Apple Messages for Business, so those are a non-issue either way.

Compliance. Both are GDPR-compliant and ISO 27001 certified. Bird additionally holds SOC 2 and HIPAA certifications that smsmode does not, so you lose no certification by moving.

Data residency. smsmode hosts exclusively on EU (French) servers with no region choice, and states data is never transferred outside the EU. Bird offers both EU and US servers with a data-residency choice — but the region is tied to your API key prefix, so you must deliberately pick the EU region to preserve EU-only residency.

Pricing and free credit. smsmode uses prepaid pay-as-you-go credits with sliding-scale volume packs plus optional monthly subscriptions. Bird uses usage-based transactional pricing with no platform or seat fees and published per-country rates. Note the free tiers differ: smsmode gives 20 free test SMS credits, while Bird’s free tier is email-only (1,000/month) — there is no free SMS test credit on Bird.

SDKs, sandbox, docs and protocols. smsmode ships a TypeScript/Node.js SDK; Bird offers TypeScript, Python and Go. Bird provides a sandbox for pre-production testing; smsmode does not. Both have high-quality docs. One regression: smsmode exposes REST, SMPP, SMTP and SFTP, whereas Bird is REST and SMTP only — if you send over SMPP or SFTP today, you will need to re-architect onto REST.

How the request format differs

smsmode quickstart:

curl --location 'https://rest.smsmode.com/sms/v1/messages' \
  --header 'X-Api-Key: YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --header 'Accept: application/json' \
  --data '{
    "recipient": { "to": "33600000001" },
    "body": { "text": "Hello from smsmode" }
  }'

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. The base URL moves from https://rest.smsmode.com/sms/v1/messages to a region-prefixed host, https://us1.platform.bird.com/v1/sms/messages (use the eu1 host to keep EU residency).
  • Authentication. smsmode passes a plain API key in the X-Api-Key header. Bird uses an Authorization: Bearer token whose prefix (bk_us1_ / bk_eu1_) encodes the region, and SDKs route to the matching host automatically.
  • Payload mapping. smsmode nests fields: recipient at recipient.to and body at body.text. Bird flattens both to top-level to and text, adds a from sender field, and adds a category field (e.g. authentication). Bird’s example also uses E.164 with a leading +.

Migration checklist

  1. Create a Bird account and generate a region-prefixed API key, choosing us1 or eu1 to match your residency requirement.
  2. Map the request fields: recipient.toto, body.texttext; add from (sender) and category.
  3. Re-point your sending code to Bird’s base URL and Bearer auth, or swap in the TypeScript, Python or Go SDK.
  4. Re-test in Bird’s sandbox before sending live traffic.
  5. Update your delivery-report webhooks and callbacks to Bird’s format.
  6. Run smsmode and Bird in parallel and compare delivery results.
  7. Cut over fully, then decommission the smsmode integration.

Watch out for

  • No RCS on Bird — if you send RCS via smsmode, there is no direct Bird equivalent.
  • No SMPP or SFTP — Bird supports only REST and SMTP; re-platform any binary/file-based flows.
  • No free SMS credit — Bird’s free tier is email-only (1,000/month).
  • Residency is key-dependent — pick the eu1 region to preserve smsmode’s EU-only guarantee.
  • Coverage — Bird lists 150 countries versus smsmode’s 166; verify your destinations.

For a full walkthrough of Bird’s setup, see how to start with Bird, or review the Bird vs smsmode comparison.