Migration guide

How to migrate from SMS.to to Infobip

A developer-focused guide to migrating an SMS.to messaging integration to Infobip, covering channel and compliance differences, request-format mapping, and a step-by-step cutover checklist.

SMS.to is an omnichannel business-messaging platform and API operated by Cyprus-based Intergo Telecom; Infobip is a global omnichannel communications platform based in Croatia. On the messaging.dev Score, SMS.to rates 49/100 and Infobip 96/100 — a gap driven mostly by channel breadth, certifications, SDK coverage and developer tooling, detailed below. This is a field-level walkthrough of moving a working SMS.to integration to Infobip.

What you gain and what you lose

Channels. Both providers send SMS, RCS, WhatsApp, Viber and Telegram, so every channel you use on SMS.to carries over — you lose none. Moving to Infobip adds MMS, Facebook Messenger, Apple Messages for Business, Voice and Email.

Compliance. Both are GDPR-compliant and ISO 27001 certified. Infobip additionally holds SOC 2 and HIPAA, so no certification is lost in the move.

Data residency. Identical on the axes that matter: both offer EU and US servers and a data-residency choice. Infobip also lists APAC, Latin America, Middle East and Africa as available regions.

Tooling. SDK coverage widens from PHP only to Java, C#, Python, PHP, Go and Node.js. Infobip provides a sandbox (SMS.to has none) and its docs are rated “high” versus SMS.to’s “med”. Both expose REST and SMPP; Infobip adds SMTP. Both support self-onboarding and a free developer credit.

Pricing. This is the main trade-off. SMS.to is prepaid pay-as-you-go with no contracts and a public rate from $0.023 per SMS. Infobip is primarily quote/contract-based (contact sales), with SMS pricing not publicly listed, though some pay-as-you-go options exist.

How the request format differs

SMS.to quickstart:

curl -X POST https://api.sms.to/sms/send \
  -H "Authorization: Bearer <api_key>" \
  -H "Content-Type: application/json" \
  -d '{"message": "Hello from SMS.to", "to": "+35794000001", "sender_id": "SMSto"}'

Infobip quickstart:

curl -X POST 'https://xxxxxx.api.infobip.com/sms/2/text/advanced' \
  -H 'Authorization: App YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -d '{"messages":[{"from":"InfoSMS","destinations":[{"to":"15551234567"}],"text":"Hello from Infobip"}]}'

Endpoint / base URL. SMS.to posts to a single fixed host, https://api.sms.to/sms/send. Infobip uses an account-specific base URL, https://{base_url}.api.infobip.com/sms/2/text/advanced, where {base_url} is the personal subdomain shown in your dashboard.

Authentication. SMS.to sends the key as a Bearer token (Authorization: Bearer <api_key>). Infobip uses its own App scheme (Authorization: App {api_key}) — same header, different prefix — and also expects an Accept: application/json header.

Payload mapping. SMS.to takes a flat object; Infobip takes a batch structure with a messages array. Map the fields as: messagetext, sender_idfrom, and todestinations[].to (a single recipient string becomes an array of { "to": ... } objects). Note the recipient format in the examples — SMS.to shows a leading-+ E.164 number, Infobip shows digits without the +.

Migration checklist

  1. Create an Infobip account (self-onboarding) and copy your API key from the dashboard.
  2. Record your account-specific {base_url} — do not hardcode the shared example host.
  3. Map the request fields (messagetext, sender_idfrom, todestinations[].to) and switch auth from Bearer to App, adding the Accept header.
  4. Re-point your sending code to the new endpoint and payload shape.
  5. Re-test against Infobip’s sandbox before sending live traffic.
  6. Update delivery/webhook callbacks to consume Infobip’s status format.
  7. Run both integrations in parallel and compare delivery results.
  8. Cut over once parity is confirmed, then retire the SMS.to path.

For a from-scratch reference, see how to start with Infobip, and for the full side-by-side data see the Infobip vs SMS.to comparison.

Watch out for

  • Pricing model changes. You leave SMS.to’s transparent, contract-free pay-as-you-go pricing (from $0.023 per SMS) for Infobip’s primarily quote/contract-based model, where SMS rates are not publicly listed — budget a sales conversation.
  • Account-specific base URL. Requests fail if you keep the example subdomain; read your own {base_url} from the dashboard.
  • Free credit is unspecified. Infobip includes a free developer credit, but the amount is not publicly documented, unlike SMS.to’s stated trial credits on sign-up.