Migration guide

How to migrate from 46elks to Sinch

A developer-focused guide to migrating from 46elks to Sinch, covering channel and compliance differences, request-format changes, and a step-by-step cutover checklist.

46elks is a Swedish telecom API platform for sending SMS and MMS, making voice calls, and managing virtual phone numbers. Sinch is a cloud communications platform that spans messaging, voice, and email across ten channels. On the messaging.dev Score, 46elks rates 33/100 and Sinch 92/100 — this guide covers what actually changes at the API level when you migrate, presented as data rather than as an endorsement.

What you gain and what you lose

Channels. You keep every channel you use today: both providers support SMS, MMS, and voice, so you lose nothing. You gain seven channels 46elks does not offer — RCS, WhatsApp, Viber, Facebook Messenger, Telegram, Apple Messages for Business, and email — all reachable from the same account.

Compliance. Both are GDPR-aligned. Sinch adds ISO 27001, SOC 2, and HIPAA certifications, none of which 46elks lists.

Data residency. 46elks keeps data on EU servers only, with no region choice. Sinch offers both EU and US servers plus a documented data-residency choice, with additional regions in APAC, Australia, and Brazil.

Pricing. 46elks is pay-as-you-go per message/minute from a prepaid balance, with no startup fees or minimums. Sinch is also pay-as-you-go but layers in volume and committed-use pricing, and its quoted SMS price notes additional carrier fees.

Tooling. 46elks ships no official SDKs and offers REST only; Sinch provides SDKs for Java, Python, C#, Node.js, and PHP, and supports REST, SMTP, and SMPP. Docs quality rises from medium to high, and Sinch includes free trial credit for new accounts, which 46elks does not. Both offer a sandbox.

How the request format differs

46elks:

curl https://api.46elks.com/a1/sms \
    -u <api_username>:<api_password> \
    -d from=CurlyElk \
    -d to=+46700000000 \
    -d message="Bring a sweater, it's cold outside"

Sinch:

curl -X POST 'https://us.sms.api.sinch.com/xms/v1/YOUR_SERVICE_PLAN_ID/batches' \
  -H 'Authorization: Bearer YOUR_API_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{"from":"+15005550006","to":["+15551234567"],"body":"Hello from Sinch"}'

Three things change. The endpoint moves from https://api.46elks.com/a1/sms to https://us.sms.api.sinch.com/xms/v1/{service_plan_id}/batches — Sinch’s base URL is region-specific (note the us. prefix) and embeds your service_plan_id in the path. Authentication switches from HTTP Basic (-u username:password) to a Bearer token in the Authorization header. The payload moves from form-encoded fields to a JSON body: the sender field keeps the name from, the recipient to becomes a JSON array of strings instead of a single value, and the message text field is renamed from message to body.

Migration checklist

  1. Create a Sinch account, then generate an API token and note your service_plan_id from the dashboard.
  2. Pick your region host (for example the us. prefix, or the EU equivalent) to match your residency requirement.
  3. Map the request fields: fromfrom, toto (now an array), messagebody.
  4. Swap HTTP Basic auth for the Authorization: Bearer header and set Content-Type: application/json.
  5. Re-point your sending code at the new /batches endpoint (JSON POST, not form-encoded).
  6. Re-test against Sinch’s sandbox before sending any live traffic.
  7. Update delivery/webhook callbacks to consume Sinch’s status format.
  8. Run both integrations in parallel, compare delivery results, then cut over.

Watch out for

  • Country coverage. 46elks lists 215 countries; Sinch lists 150. Confirm your destinations are covered before you cut over.
  • Region in the URL. The host is region-specific, so sending to the wrong regional endpoint is an easy mistake once you leave 46elks’s single fixed base URL.
  • Extra account plumbing. Sinch requires a service_plan_id in the path, and its pricing adds volume/committed-use tiers plus carrier fees, so a like-for-like cost comparison takes more care than 46elks’s flat prepaid model.

For a full walkthrough of the target, see how to start with Sinch, or the side-by-side 46elks vs Sinch comparison.