How to migrate from Prelude to Telnyx
A developer-focused guide to moving from Prelude to Telnyx, covering channel changes, compliance and residency, request-format mapping, and a step-by-step migration checklist.
Prelude is a 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. Telnyx is a licensed telecom carrier that runs a CPaaS platform, exposing APIs for SMS, MMS, RCS, WhatsApp, voice and email over its own private global IP network. On the messaging.dev Score, Prelude rates 62/100 and Telnyx 78/100; this guide covers what actually changes when you re-point your sending code from one to the other.
Channels you gain and lose
Both platforms cover the same core: SMS, RCS, WhatsApp, voice and email are available on each, and neither offers Facebook Messenger or Apple Messages for Business. The differences are at the edges:
- You gain MMS — Telnyx supports it, Prelude does not.
- You lose Viber and Telegram — Prelude carries both; Telnyx carries neither. If you send on those channels today, you need an alternative before cutover.
Telnyx also adds an SMPP binding alongside REST, whereas Prelude is REST-only.
Compliance, residency and pricing
Both providers are GDPR, ISO 27001 and SOC 2 aligned. Moving to Telnyx adds HIPAA alignment, which Prelude does not list. On data residency, Prelude hosts in the EU only with no region choice; Telnyx offers both EU and US servers, customer-selectable residency, and additional Asia-Pacific and South America regions.
Pricing differs in shape. Prelude bills per-verification plus at-cost (zero-markup) per-message charges (from €0.0043 per US SMS, verification fee from €0.032). Telnyx bills pay-as-you-go per message part (from $0.004 per US SMS part, plus carrier fees). Neither offers a free developer credit. Telnyx publishes a 99.99% uptime SLA; Prelude publishes none. Docs quality is high on both, and SDK coverage is effectively equivalent (Node.js, Python, Go, Java, Ruby and PHP on each; Prelude adds C#, Telnyx adds .NET). Neither provider offers a sandbox.
How the request format differs
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"
}
}'
curl -X POST https://api.telnyx.com/v2/messages \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"from": "+15551234567",
"to": "+15559876543",
"text": "Hello, world!"
}'
The endpoint changes from https://api.prelude.dev/v2/verification to https://api.telnyx.com/v2/messages. The authentication mechanism is identical: a Bearer key in the Authorization header — you swap Prelude’s YOUR_API_TOKEN for a Telnyx YOUR_API_KEY, with no scheme change.
The payload is where the real work is. Prelude’s quickstart is a verification call: the recipient is nested under target.value (with target.type), and there is no sender or message body — Prelude generates and sends the OTP for you. Telnyx’s /messages call is a general-purpose send: the recipient moves to a flat to field, you must add an explicit from (your Telnyx number or sender ID), and you must supply the message text yourself. In short: target.value → to, and you now own the from and text fields Prelude previously handled.
Migration checklist
- Create a Telnyx account and generate an API key from the dashboard (self-onboarding, no sales call). See how to start with Telnyx.
- Provision a sending number or sender ID — Telnyx requires an explicit
fromthat Prelude’s verification flow did not. - Map the request fields:
target.value→to, then addfromandtext. If you relied on Prelude’s OTP generation, move code generation and verification into your own logic. - Re-point your sending code to
https://api.telnyx.com/v2/messagesand swap in the new Bearer key. - Re-test. Telnyx has no sandbox (the sandbox flag is false), so test against live low-cost routes with a controlled recipient list rather than a mock environment.
- Update webhooks and delivery callbacks to Telnyx’s delivery-status format so status tracking keeps working.
- Run both providers in parallel on a slice of traffic and compare delivery.
- Cut over once parity holds, then decommission the Prelude path.
Watch out for
- Viber and Telegram disappear — both are Prelude-only, with no Telnyx equivalent.
- No sandbox — like Prelude, Telnyx offers none, so first tests bill real messages.
- Narrower country coverage — Telnyx lists 130 countries versus Prelude’s 230; confirm your destinations are supported.
- You own OTP logic now — Telnyx’s
/messagesendpoint sends raw text; the verification abstraction Prelude provided is not part of that call.
For a full side-by-side, see the Prelude vs Telnyx comparison.