Tutorials·

What a segment is

If you are old enough to remember the split, it looked like this: MSG 1 of 2, then MSG 2 of 2. The phone was joining a message that did not fit in one segment.

A segment is 140 bytes. How many characters fit depends on the encoding, which is decided by the characters you use. One encoding covers the whole message.

GSM-7

Plain Latin text uses GSM-7, at 7 bits per character. A single segment holds 160 characters. These characters count as one: A–Z, a–z, 0–9, and @ £ $ ¥ è é ù ì ò Ç Ø ø Å å Δ _ Φ Γ Λ Ω Π Ψ Σ Θ Ξ Æ æ ß É Ä Ö Ñ Ü § ä ö ñ ü à ¡ ¿ ! " # ¤ % & ' ( ) * + , - . / : ; < = > ?

These count as two, even in a GSM-7 message: € ^ { } [ ] ~ |

When the message is longer than one segment

Carriers stitch a long message back together, and that stitching takes 6 bytes. Past the first segment, each GSM-7 segment holds 153 characters, not 160.

A 310-character GSM-7 message looks like two segments if you divide by 160. Divide by 153 instead: 310 / 153 is a little over 2, and the count always rounds up. That message is 3 segments.

Emoji and other characters

Anything outside GSM-7, including an emoji, switches the whole message to UCS-2. UCS-2 uses 2 bytes per character, so a single segment holds 70 characters, and each further segment holds 67.

This is 107 characters:

Julio’s yard and lawnmowing 🏡 is having a 15% discount on all bookings placed by 3PM. Reply to get started.

It is still two segments, because the emoji sets the encoding for every character. You can drop the emoji and stay in one GSM-7 segment, shorten the UCS-2 version to 70 characters, or send it as two segments and pay for two. Billing follows the segment count.

Variables are filled in first

Segment math runs after variables are replaced. Hey {Name} is a shorter message for Ty than for Alessandro, and that difference can be the one that pushes a person onto another segment.

The pricing page uses this count. A text and a segment are the same thing only when the text fits in one.