Migration guide

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.valueto, and you now own the from and text fields Prelude previously handled.

Migration checklist

  1. Create a Telnyx account and generate an API key from the dashboard (self-onboarding, no sales call). See how to start with Telnyx.
  2. Provision a sending number or sender ID — Telnyx requires an explicit from that Prelude’s verification flow did not.
  3. Map the request fields: target.valueto, then add from and text. If you relied on Prelude’s OTP generation, move code generation and verification into your own logic.
  4. Re-point your sending code to https://api.telnyx.com/v2/messages and swap in the new Bearer key.
  5. 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.
  6. Update webhooks and delivery callbacks to Telnyx’s delivery-status format so status tracking keeps working.
  7. Run both providers in parallel on a slice of traffic and compare delivery.
  8. 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 /messages endpoint 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.