How to migrate from Prelude to Vonage
A developer's guide to migrating SMS and messaging traffic from Prelude to Vonage, covering channel, compliance, pricing, and API request differences.
Prelude is a Paris-based developer platform focused on phone and email verification (OTP), authentication, and number intelligence, delivered across SMS, RCS, WhatsApp, voice and other channels. Vonage is a publicly traded communications-API provider (part of Ericsson) offering SMS, voice, video, and messaging. On the messaging.dev Score, Prelude rates 62/100 and Vonage 89/100; this guide covers what actually changes at the API and product level when you migrate.
What changes when you move
Channels. Both providers cover SMS, RCS, WhatsApp, Viber and voice, so that traffic carries over unchanged, and neither supports Apple Messages for Business. Moving to Vonage you gain MMS and Facebook Messenger, and you lose Telegram and email — both of which Prelude supports but Vonage does not.
Compliance. Both hold GDPR, ISO 27001 and SOC 2. Vonage additionally carries HIPAA, which Prelude does not.
Data residency. Prelude hosts in the EU only, with no US servers and no region choice. Vonage offers EU and US servers plus APAC and Australia, and lets you choose your data region.
Pricing and credit. Prelude prices pay-as-you-go per verification plus at-cost (zero-markup) per-message charges (from €0.0043 per US SMS; verification fee from €0.032). Vonage is pay-as-you-go per message/minute with volume discounts (about $0.0072 per US SMS segment, plus carrier fees). Vonage includes €2 free trial credit; Prelude offers no free developer credit.
Tooling. Both ship REST APIs with high-quality docs and self-service onboarding. SDK coverage overlaps on Node.js, Python, Java, C#, Ruby and PHP; Prelude adds Go, while Vonage adds Kotlin. Vonage provides a sandbox test environment; Prelude does not.
How the request format differs
Prelude’s quickstart:
curl -X POST https://api.prelude.dev/v2/verification \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"target": {
"type": "phone_number",
"value": "+30123456789"
}
}'
Vonage’s quickstart:
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'
The endpoint changes from Prelude’s https://api.prelude.dev/v2/verification to Vonage’s https://rest.nexmo.com/sms/json (legacy SMS API) or https://api.nexmo.com/v1/messages (Messages API). Authentication changes too: Prelude uses a Bearer v2 API key in the Authorization header; Vonage’s SMS API takes an api_key plus api_secret sent as request parameters, while its Messages API uses JWT auth.
The payload differs in structure, not just naming. Prelude sends a JSON body whose recipient sits in a nested target object (target.value), and because the quickstart is a verification call it carries no sender and no message body — Prelude composes the OTP. Vonage’s SMS API takes form-encoded parameters where the recipient is to, the sender is from, and the message body is text, which you supply yourself. In short, target.value maps to to, and you now add explicit from and text fields.
Migration checklist
- Create a Vonage account and generate credentials (API key and secret, or a JWT application for the Messages API). New accounts include €2 trial credit.
- Map your request fields: move the recipient from
target.valuetoto, and addfrom(sender ID) andtext(message content) that Prelude previously generated for you. - Swap authentication: replace the
Authorization: Bearerheader withapi_keyandapi_secretparameters (SMS API) or JWT (Messages API). - Re-point your sending code to the new base URL, and if you use an SDK, install the Vonage SDK.
- Re-test in Vonage’s sandbox before sending live traffic — Prelude had no sandbox, so this step is new.
- Update webhooks and delivery callbacks to Vonage’s delivery-receipt and inbound formats.
- Run both providers in parallel, compare delivery, then cut over once Vonage matches your baseline.
See the full how to start with Vonage guide and the side-by-side Prelude vs Vonage comparison for more detail.
Watch out for
- Channels you lose. Telegram and email are supported by Prelude but not Vonage — re-route that traffic elsewhere before cutting over.
- Managed OTP. Prelude is verification-first (its quickstart is a
/verificationcall that generates the code). Vonage’s SMS API is a general send, so you own OTP generation and checking unless you adopt a separate Vonage verification flow. - Go SDK. Prelude ships a Go SDK; Vonage does not, so Go users fall back to raw REST or another language.
- Credentials in the request body. Vonage’s SMS API passes
api_keyandapi_secretas parameters rather than a header, so keep them out of logs.