Migration guide

How to migrate from seven.io to Bird

A developer guide to migrating SMS and messaging traffic from seven.io to Bird, covering channel, compliance, pricing and API request differences.

seven.io is a German CPaaS platform offering SMS, RCS, WhatsApp and voice APIs on EU-hosted infrastructure, while Bird (formerly MessageBird) is a communications infrastructure platform providing unified email, SMS, WhatsApp and voice APIs. On the messaging.dev Score, seven.io rates 42/100 and Bird 76/100. This guide covers what changes at the channel, compliance and API level when you migrate, and how to re-point your sending code.

What you gain and what you lose

Channels. Both providers send SMS, WhatsApp and voice, and neither supports MMS, Viber, Facebook Messenger, Telegram or Apple Messages for Business. Moving to Bird you gain email (a free tier of 1,000 messages/month) but you lose RCS — seven.io supports it, Bird does not. If any of your traffic runs over RCS today, plan a fallback before you cut over.

Compliance. Both hold GDPR and ISO 27001. Bird additionally carries SOC 2 and HIPAA, so this is a net gain if you need either.

Data residency. seven.io processes on German/EU infrastructure only (“Pure EU Routing”), with no US servers and no region choice. Bird offers both EU and US servers and lets you choose the region — the API-key prefix (us1/eu1) selects the host.

Pricing and free credit. seven.io is prepaid pay-as-you-go (top up a balance, no monthly fee), with SMS from €0.075. Bird is usage-based with no platform or seat fees: per-country SMS rates from $0.0073 to US numbers, plus email volume tiers (free, then about $15/month for 50K). Note the free developer credit differs in kind — seven.io gives €0.50 of SMS test credit, whereas Bird’s free tier is email-only, so you lose a free SMS testing budget.

SDKs and protocols. seven.io ships 10 SDKs (PHP, JavaScript, Python, Go, Ruby, .NET, Rust, Kotlin, Elixir, Swift); Bird ships 3 (TypeScript, Python, Go). Both expose REST and SMTP, but seven.io also supports SMPP, which Bird does not. Both offer a sandbox and both have high-quality docs.

How the request format differs

seven.io quickstart:

curl -X POST https://gateway.seven.io/api/sms \
    -H "X-Api-Key: YOUR_API_KEY" \
    -H "Accept: application/json" \
    -d "to=49176123456789" \
    -d "from=AcmeInc" \
    -d "text=hello world"

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 gateway.seven.io/api/sms to a region-prefixed us1.platform.bird.com/v1/sms/messages (or eu1...).
  • Authentication. seven.io sends a plain key in the X-Api-Key header. Bird uses Authorization: Bearer with a region-prefixed key (bk_us1_... / bk_eu1_...) whose prefix encodes the host; the SDKs route automatically.
  • Payload. seven.io posts form-encoded fields (-d "to=..."); Bird posts a JSON body (Content-Type: application/json). Field names map almost 1:1 — toto, fromfrom, texttext — but Bird expects E.164 numbers with a leading + (+14155550100) where seven.io accepts bare digits (49176123456789), and Bird adds an optional category field (e.g. "authentication").

Migration checklist

  1. Create a Bird account and generate a region-prefixed API key — pick eu1 or us1. See how to start with Bird for the account walkthrough.
  2. Map the request fields: switch form-encoding to a JSON body, update the endpoint and auth header, convert recipient numbers to E.164, and add category where useful.
  3. Re-point your sending code to the new base URL, or adopt an official SDK if you’re on TypeScript, Python or Go.
  4. Re-test in Bird’s sandbox before sending live traffic.
  5. Update your delivery/webhook callbacks to Bird’s format.
  6. Run both providers in parallel and compare delivery results.
  7. Cut over once the numbers match.

Watch out for

  • No RCS on Bird — the channel doesn’t exist there, so any RCS traffic needs a fallback.
  • No SMPP binding — Bird offers REST and SMTP only; SMPP integrations must move to REST.
  • Fewer SDKs — PHP, Ruby, .NET, Rust, Kotlin, Elixir and Swift have no official Bird SDK, so those stacks fall back to raw REST.
  • No SMS test credit — Bird’s free tier is email (1,000/month); seven.io’s €0.50 SMS test credit has no equivalent.
  • Region choice is a responsibility — if EU residency matters, generate an eu1 key; a us1 key stores data on US servers.

For a full side-by-side, see Bird vs seven.io.