Migration guide

How to migrate from Bird to Vonage

A developer-focused guide to migrating from Bird to Vonage, covering channel gains and losses, request-format differences, and a step-by-step cutover checklist.

Bird is a communications infrastructure platform (formerly MessageBird) offering unified APIs for email, SMS, WhatsApp, and voice. Vonage is a communications-API provider (part of Ericsson) covering SMS, voice, video, and messaging. On the messaging.dev Score, Bird rates 76/100 and Vonage 89/100 — this guide covers what actually changes at the API level when you move, presented as data rather than a recommendation.

Channels: what you gain and lose

Both providers carry SMS, WhatsApp, and voice. Moving to Vonage adds four channels: MMS, RCS, Viber, and Facebook Messenger. The one channel you lose is email — Bird supports it (and exposes an SMTP API type); Vonage does not. Neither provider offers Telegram or Apple Messages for Business. Vonage’s stated footprint is ~200 countries versus Bird’s ~150.

Compliance, residency, and tooling

Compliance is unchanged: both hold GDPR, ISO 27001, SOC 2, and HIPAA alignment. Both offer EU and US data residency with region choice; Vonage additionally lists APAC and Australia. Both provide a sandbox, self-onboarding, and documentation rated high quality. SDK coverage widens — Bird ships TypeScript, Python, and Go, while Vonage ships Node.js, Python, PHP, Java, C#, Ruby, and Kotlin. Pricing stays usage-based and per-message on both, at roughly the same US SMS rate (~$0.0073 Bird vs ~$0.0072 Vonage), but the free developer credit differs: Bird’s is a recurring free email tier (1,000/month), whereas Vonage’s is a one-time €2 trial credit. See the full side-by-side.

How the request format differs

Bird (source):

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"
  }'

Vonage (target):

curl -X POST 'https://rest.nexmo.com/sms/json' \
  -d 'api_key=YOUR_API_KEY' \
  -d 'api_secret=YOUR_API_SECRET' \
  -d 'from=Vonage' \
  -d 'to=15551234567' \
  -d 'text=Hello from Vonage'

Three things change:

  • Endpoint. Bird posts to a region-prefixed host, https://us1.platform.bird.com/v1/sms/messages. Vonage posts to https://rest.nexmo.com/sms/json (legacy SMS API) or https://api.nexmo.com/v1/messages (Messages API).
  • Authentication. Bird uses a region-prefixed API key (bk_us1_…) as a Bearer token in the Authorization header. Vonage’s SMS API takes an API key + secret sent as api_key/api_secret fields in the request body; the Messages API uses JWT auth instead.
  • Payload. Bird sends a JSON body (Content-Type: application/json); Vonage’s SMS API takes URL-form-encoded fields. The core fields map closely: toto, fromfrom, texttext. Note that Bird’s to is E.164 with a leading + (+14155550100) while the Vonage example omits it (15551234567), and Bird’s category field has no direct equivalent — Vonage instead expects the credentials inline.

Migration checklist

  1. Create a Vonage account and generate your API key + secret (or an application + private key if you plan to use JWT with the Messages API).
  2. Map each request field: endpoint, auth, and the to/from/text payload; drop category and add the credentials.
  3. Re-point your sending code to the new base URL and switch from a Bearer header to form credentials (or a JWT).
  4. Re-test in Vonage’s sandbox before sending live traffic.
  5. Update delivery-receipt/webhook callbacks to Vonage’s format and URLs.
  6. Run both providers in parallel and compare delivery.
  7. Cut over once delivery and callbacks match. The Vonage quickstart walks through full setup.

Watch out for

  • No email. Bird’s email channel and SMTP API have no Vonage equivalent — keep a separate email provider (or a Bird account) for that traffic.
  • Free-credit model changes. You move from a recurring free email tier (1,000/month) to a one-time €2 trial credit.
  • Two APIs, two auth models. Vonage’s quickstart uses the legacy SMS API, which sends your secret in the request body; the newer Messages API uses JWT. Choose one deliberately.
  • No hidden regressions elsewhere. All four certifications, EU/US residency with region choice, and the sandbox carry over unchanged.