Skip to content

SMS Character Counter

Stay inside one SMS segment when cost or carrier splitting matters.

What this does

GSM SMS is 160 characters in the basic alphabet, 70 if you use Unicode (emoji, many non-Latin scripts). This page cannot encode GSM vs UCS-2 for you, but it gives a raw character count so you can see you are in dangerous territory. For production billing, still test on your SMS provider.

Meta description budgets are ~160 for a different reason. SMS 160 is a telecom limit. Mixing those intents on one page would be misleading.

People writing OTP templates, shipping alerts, or school notices by text.

SMS is a 1990s packet format wearing a 2020s product UI. The 160-character story is still how bulk pricing works.

If your users are not in GSM-default languages, assume 70 and write shorter. Test with the real From-ID; some prefixes add characters.

Concatenated SMS (two segments) can arrive out of order on a few handsets, which is painful for OTPs. If your template is 161 GSM characters, cut a word rather than paying for chaos. Your provider’s segment estimator is still the billing source of truth; this counter is a draft check.

Placeholders like `{code}` and `{name}` expand. Count a worst-case name length, not the curly braces. A six-digit OTP is predictable; a customer name is not.

When to use it

  • A provider charges per segment.
  • You added an emoji and the cost doubled.
  • Legal text must fit one bubble.

How to

  1. Paste the template. Including the `{code}` placeholder as it will expand.
  2. Check characters. Budget 160 GSM or 70 Unicode.
  3. Remove emoji if needed. Watch the count drop back.
  4. Confirm with your SMS API. They are source of truth for encoding.

Features

  • Character total. The number you need for a first-pass budget.
  • Local. OTP copy can stay off someone else’s server.
  • Instant. Edit and watch the count.

Why it helps

  • Fewer surprise splits. Two segments can disorder on some handsets.
  • Cost control. Bulk SMS is priced per segment.

Use cases

  • OTP messages. Short, no emoji, one segment.
  • Shipping SMS. Tracking links vs length.

Examples

  • OTP with emoji. “Your code is 123456 🎉” may be UCS-2. Remove the emoji for GSM 160.

Common mistakes

  • Assuming 160 after adding emoji. Unicode often drops you to 70.
  • Counting words. Carriers count characters (and encoding).

Tips

  • Avoid emoji in OTPs if you care about one segment.
  • Links eat budget. Use a short domain if you must.

FAQ

Does this show segment count?
It shows characters. Segment math depends on encoding. Use this as a draft check, then the provider’s estimator.
WhatsApp vs SMS?
WhatsApp is not GSM SMS. Use the WhatsApp image page for photos; this page is telecom SMS.