Migration guide

How to migrate from Prelude to Twilio

A developer-focused guide to migrating from Prelude to Twilio, covering channel, compliance, pricing, and API request-format differences with a step-by-step checklist.

Prelude is a Paris-based developer platform focused on phone and email verification (OTP), authentication, number intelligence, and anti-fraud onboarding, delivered across SMS, RCS, WhatsApp, voice, and other channels. Twilio is a San Francisco-based customer engagement platform offering general-purpose communications APIs for SMS, voice, email, and more. On the messaging.dev Score, Prelude rates 62/100 and Twilio 88/100; this guide covers what actually changes at the API level when you move.

What you gain and lose

Channels. Moving to Twilio, you gain MMS. You keep SMS, RCS, WhatsApp, voice, and email. You lose Viber and Telegram, both of which Prelude supports and Twilio does not. Neither platform supports Facebook Messenger or Apple Messages for Business.

Compliance. Both hold GDPR, ISO 27001, and SOC 2. Twilio additionally carries HIPAA, which Prelude does not.

Data residency. Prelude hosts only in the EU, with no US option and no region choice. Twilio offers US and EU servers plus Australia, and lets you choose your data residency region.

Pricing. Prelude prices per verification plus at-cost (zero-markup) per-message charges (from €0.0043 per US SMS, verification fee from €0.032). Twilio is pay-as-you-go per message/minute with volume and committed-use discounts (from $0.0079 per US SMS segment, plus carrier fees). Twilio also gives new accounts a $15 trial credit; Prelude offers no free developer credit.

Tooling. Twilio provides a sandbox test environment; Prelude does not. Both ship the same seven SDKs (Node.js, Python, Go, Java, Ruby, PHP, C#) and both rate high on documentation quality. Twilio exposes REST and SMTP; Prelude is REST-only.

How the request format differs

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

Twilio quickstart:

curl -X POST 'https://api.twilio.com/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages.json' \
  --data-urlencode 'To=+15551234567' \
  --data-urlencode 'From=+15005550006' \
  --data-urlencode 'Body=Hello from Twilio' \
  -u ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:your_auth_token

Endpoint. Prelude posts to a single fixed verification endpoint, https://api.prelude.dev/v2/verification. Twilio posts to an account-scoped path, https://api.twilio.com/2010-04-01/Accounts/{AccountSid}/Messages.json, with your Account SID embedded in the URL.

Authentication. Prelude uses a Bearer v2 API key in the Authorization header. Twilio uses HTTP Basic auth, with your Account SID as the username and Auth Token as the password (the -u flag).

Payload. Prelude sends JSON with a nested target object (type + value), where target.value is the recipient. Twilio sends form-urlencoded fields, where To is the recipient. Note the model difference: Prelude’s verification endpoint takes no sender or message body — it generates and sends the OTP for you — whereas Twilio’s Messages endpoint requires From (sender) and Body (the message text you compose). So map target.valueTo, then add the From and Body fields Twilio needs.

Migration checklist

  1. Create a Twilio account and copy your Account SID and Auth Token from the dashboard; the $15 trial credit lets you test first. See how to start with Twilio for the full walkthrough.
  2. Provision a sender (a Twilio phone number or approved sender ID) for the From field — Prelude did not require one.
  3. Map the request fields: target.valueTo, then add From and the Body text your app previously relied on Prelude to generate.
  4. Switch auth from the Bearer header to HTTP Basic (SID:Auth Token), and change the content type from JSON to form-urlencoded.
  5. Re-point your sending code to the account-scoped Messages.json endpoint, or swap to a Twilio SDK.
  6. Re-test in Twilio’s sandbox before sending live traffic.
  7. Update your webhooks and delivery callbacks to Twilio’s status-callback format.
  8. Run both providers in parallel, compare delivery, then cut over.

Watch out for

  • Lost channels: Viber and Telegram are not available on Twilio.
  • Country coverage: Twilio lists 180 countries versus Prelude’s 230 — confirm your key destinations are covered.
  • Model shift: Prelude’s quickstart is an OTP/verification API that manages message content; on Twilio you own the sender and body, and pay carrier fees on top of list pricing.

For a full side-by-side, see the Prelude vs Twilio comparison.