SMS Segments & Encoding
When you send a text message, carriers count it in segments, not characters. Understanding segments matters because they determine both cost and deliverability — and because the number of characters per segment changes depending on what you put in the message.
The 140-byte rule
Every SMS segment is 140 bytes. How many characters fit into those 140 bytes depends on the character encoding:
| Encoding | Characters per segment | Concatenated (multi-part) |
|---|---|---|
| GSM-7 | 160 per segment | 153 per segment |
| UCS-2 | 70 per segment | 67 per segment |
When a message spans multiple segments, carriers use a small portion of each segment for a header that lets the handset reassemble the parts in order. That's why concatenated messages have slightly fewer usable characters per segment (153 and 67 instead of 160 and 70).
GSM-7 vs UCS-2
GSM-7 is the standard encoding for basic Latin characters. It covers the full English alphabet, digits, and common punctuation. If every character in your message is in the GSM-7 character set, the 160-character-per-segment limit applies.
UCS-2 activates automatically if your message contains any character outside GSM-7 — including emoji, accented characters (like é, ñ, ü), curly quotes (" "), ellipses (…), and many symbols. When UCS-2 activates, the limit drops to 70 characters per segment.
This is the most common surprise for developers: pasting text from a word processor or rich text editor often introduces curly quotes or em dashes that silently switch the message to UCS-2 and cut the character limit by more than half.
Characters that trigger UCS-2
Common culprits:
"and"(curly double quotes, vs standard")'and'(curly single quotes, vs standard')…(ellipsis, vs three periods...)—(em dash, vs hyphen-)- Emoji of any kind: 😀 🎉 ✅
- Any letter with an accent: é à ü ñ ç
If you're interpolating user-provided content into messages, normalise the input to GSM-7-safe characters before sending.
Counting segments
A standard English message under 160 characters is one segment. A 300-character English message is two segments. A 70-character message containing a single emoji is two segments (UCS-2 encoding, where one segment fits 67 usable characters in multi-part, so 70 characters spans two segments).
To count segments before sending, use a client-side SMS segment calculator. This helps you estimate cost and flag unexpectedly long messages before they go out.
Segments as the billing unit
Surge bills per segment, not per message. A blast of 1,000 two-segment messages costs twice as much as 1,000 one-segment messages. Volume caps (2,000 SMS segments per day to T-Mobile on the low campaign volume setting) are also counted in segments.
Keep this in mind when estimating costs and when setting campaign volume levels during registration.
Segment count and automatic protocol selection
Segment count affects more than billing — it can determine whether your message is sent as SMS or MMS:
- More than 10 segments → Surge automatically sends as MMS, regardless of whether you included attachments. This avoids the fragmented experience of 11 concatenated SMS parts on a recipient's device.
- 3 or more segments → If your platform has
auto_mms_enabled, Surge converts the message to a single MMS. This setting is off by default; contact support to enable it.
In both cases, if the recipient's carrier doesn't support MMS, Surge falls back to SMS and delivers the full concatenated message. See Send to One Person for details.
Practical advice
- Keep routine messages under 160 characters to stay within a single segment
- Use straight quotes (
"and') instead of curly quotes in templates - Use three periods (
...) instead of the ellipsis character (…) - If you support emoji in user-facing message templates, budget for UCS-2 costs
- Test any message template with a segment counter before sending at scale — the
segmentsfield is included in every message response