SMS infrastructure for application traffic

An SMS API built for applications, not campaigns

Send application-generated text messages over HTTPS with delivery receipts, encoding control and callback hooks your software can rely on, with SMPP for high-volume traffic and email interfaces for operational messages.

Last reviewed: 11 September 2026

What is an SMS API?

An SMS API is an interface that lets software send and receive text messages programmatically, by making HTTPS requests or speaking SMPP rather than requiring a person to use a web portal. Application-generated messages need more than a send button: delivery receipts, encoding control, callbacks for inbound replies and per-account credentials over HTTPS. WorldText exposes these through a documented HTTP API over HTTPS, SMPP v3.3 and v3.4 on request, and email interfaces, with destination-based credit pricing.

What an SMS API is

An SMS API is an interface your application calls to send and receive text messages programmatically. Instead of opening a web dashboard and typing a message, your software makes a request to the provider over HTTPS, passes the destination number, the text and any options such as sender ID or encoding, and receives a response describing the outcome.

The difference that matters is what happens after the request. Campaign tools are built around lists, scheduling and open rates. Application traffic is different: verification codes, appointment reminders, order updates and alerts are triggered by events, must be traceable, and are often part of an operational record. That changes the requirements.

Infrastructure for application-generated traffic differs from a campaign tool in concrete ways. Messages need delivery receipts so you know the final state. Encoding must be explicit so a message is not silently corrupted when it contains Unicode. Callbacks must be dependable so your system can act on them. High-volume senders need a protocol designed for persistent connections. And rates should not be guesswork: supported rates depend on destination, sender type, registration and upstream connectivity, and they are published per destination rather than hidden behind a single marketing figure.

  • Delivery receipts with final-state callbacks, plus documented message states and error codes.
  • Explicit encoding control for GSM-7, Unicode and concatenated messages.
  • SMPP v3.3 and v3.4 for persistent, high-volume connections on request.
  • Per-account credentials over HTTPS, with no shared or campaign-level access.

The interfaces we offer

WorldText exposes application messaging through interfaces built for integration rather than manual use.

The primary interface is an HTTP API over HTTPS. Every account has its own credentials, and the API is documented as a rendered OpenAPI specification at developer reference, with an overview at /http-api/. Helper libraries for common languages are listed at /docs/libraries/, so you can spend your time on your product rather than on request plumbing.

For high-volume traffic, SMPP v3.3 and v3.4 is available on request. SMPP is the protocol used between carriers and aggregators: it keeps persistent connections open, which avoids per-request overhead at scale and suits systems that already speak SMPP. Activation usually takes under 24 hours once you contact us, and it is not enabled for trial accounts. SDKs for Java, C/C++, Perl and Visual Basic are available, along with a free SMSC simulator for testing.

Email interfaces are part of the platform too. Email-to-SMS accepts messages over SMTP, documented in the SMTP API for single messages and the SMTP bulk API for bulk jobs. That suits monitoring systems, legacy applications and anything that can send mail but is not wired to an HTTP API, without changing how those systems work.

Delivery receipts, encoding and message states

Application messaging only works when the outcome is knowable. WorldText provides delivery receipts through a callback URL configured in the portal Configuration tab. The platform sends a final-state callback when a message reaches a terminal state, and message states and error codes are documented at /message-state-errors/ so you can map each outcome to business logic rather than guessing from a vague success flag.

Encoding is explicit, because text message encoding is where most silent failures happen. You set the data coding scheme per message. dcs 0 and 1 are GSM default encoding (GSM-7), which carries 160 characters per part in the classic single-part view; dcs 8 is UCS2 Unicode, 70 characters per part; and concatenated messages are split at 153 and 67 characters per part respectively. If your application sends emoji, accented characters or other non-GSM content, you control whether the message is delivered as Unicode or rejected, rather than discovering corruption after the fact. SMS length and concatenation and the GSM character set are documented for exactly this.

Combined with per-account credentials and HTTPS transport, this is what makes the API usable inside production systems: your code knows what was sent, what was accepted, what each encoding decision did and what the final state was.

Testing honestly before you send real messages

The easiest way to lose trust in a messaging integration is to test against a fake and assume the results mean something. WorldText keeps testing honest.

For SMPP, a free SMSC simulator is available for integration testing. It is clear about what it is: it speaks the protocol so you can exercise connections, submission flows and receive-side handling, but it does not deliver to real handsets. Delivery to a real network is a separate step.

For the HTTP API, the portal supports a simulation mode for testing, so you can exercise your integration and callback handling without consuming credits on real numbers. The caveat is worth stating plainly: coverage publishes per-destination rates, and real-world delivery can only be observed with real sends, which is exactly why delivery receipts exist.

Before launch we recommend the obvious steps that are often skipped: test with a real number in each destination you target, confirm your callback URL accepts requests, check what your code does with each documented message state, and send a Unicode test message. Credentials stay per account, access stays over HTTPS, and nothing about the test path should change when you go live.

  • Use the free SMPP simulator for protocol-level testing; it does not deliver.
  • Use the portal simulation mode before spending credits on real numbers.
  • Confirm callback handling and message states with a real send per destination.
  • Keep credentials per account and transport over HTTPS throughout.

Documented HTTP API

A rendered OpenAPI specification, per-account credentials and HTTPS transport by default.

Final-state delivery receipts

Callback URL in the portal Configuration tab, with documented message states and error codes.

Explicit encoding control

GSM-7, UCS2 Unicode and concatenation handled per message, with documented character limits.

SMPP on request

SMPP v3.3 and v3.4 with persistent connections, activated for non-trial accounts in under 24 hours.

Frequently asked questions

Is there a rate limit on the API?

There is no single advertised rate that applies everywhere. Supported rates depend on destination, sender type, registration and upstream connectivity. Per-destination rates are published on our coverage page, and messages are charged per part at the destination rate, so the volumes you can sustain are visible rather than a black box.

How much does an SMS cost?

Pricing is destination-based credit bundles bought in GBP including VAT, from £13.50 for 2,000 credits to £998 for 200,000 credits. US destinations are 8 credits per single-part message and UK destinations 10.71 credits; multipart messages are charged per part. See our pricing page for the full schedule.

Can I send Unicode or emoji?

Yes. dcs 8 selects UCS2 Unicode at 70 characters per part, and concatenated Unicode messages are split at 67 characters per part. GSM-7 messages use 160 characters per part. SMS length and the GSM character set are documented so you can make the encoding decision in code rather than discovering it after sending.

How do I know a message was delivered?

Delivery receipts are sent to a callback URL you configure in the portal Configuration tab, including a final-state callback when a message reaches a terminal state. Message states and error codes are documented at /message-state-errors/ so you can handle each outcome explicitly.

Can I test before sending real messages?

Yes. A free SMSC simulator is available for SMPP integration testing (it does not deliver), and the portal supports a simulation mode for the HTTP API. Both are honest about what they do not cover, so we recommend a real test send per destination before launch, using delivery receipts to verify the outcome.

Build on an API you can audit

Documented endpoints, explicit encoding, final-state receipts and interfaces your systems already understand.