SMS length calculator

Free SMS length calculator and character counter. It detects GSM-7 vs UCS-2, counts multipart segments, and shows the bytes a carrier will transmit. Built by Blooio.

0 / 160 septetsSingle segment

Auto stays on GSM-7 until a character falls outside it. GSM-7 is 160 characters, then 153. UCS-2 is 70, then 67.

Segments

0

GSM-7 Β· 160 left in this segment

Characters
0
Size
0 bytes
110,000
Estimated cost$0.0000

Cost

Provider

Number type

Current rate$0.0083 / SMS

Twilio’s listed rate leaves out carrier fees. A2P registration, toll-free verification, and pass-through charges can add more. Carrier fees

0 Γ— $0.0083$0.0000

Export

Segmentation

Segments appear as you type

Hex

Hex appears as you type

SMS length limits β€” exact numbers

EncodingSingle SMSPer segment (multi-part)Bytes/charMax (10 segments)
GSM-7160 chars153 chars7 bits (0.875 B)1,530 chars
GSM-7 Extended160 chars*153 chars*14 bits (2 septets)1,530 chars*
UCS-2 (Unicode)70 chars67 chars2 bytes670 chars

*Each GSM-7 extended character (€ [ ] { } ~ ^ | \\) consumes 2 septets, so the effective length is cut roughly in half if used heavily.

Why multi-part SMS "loses" 7 characters

A single SMS segment carries 140 bytes of payload (1,120 bits). For a single-part message that's 160 GSM-7 characters or 70 UCS-2 characters. The moment your message needs to be split across 2+ segments, the SMS protocol attaches a User Data Header (UDH) to every segment so the receiving phone can stitch them back together in order.

That UDH is 6 bytes for short reference numbers or 7 bytes for long reference numbers β€” most modern SMS gateways (Twilio included) use the 7-byte variant. Subtract that from 140 and you get the 153 GSM-7 / 67 UCS-2 per-segment limits this SMS length calculator uses.

This is why a message that looks like "just 161 characters" in your CMS will arrive as 2 segments billed at full price β€” the entire 161-character message has to be re-encoded with UDH overhead, dropping each segment to 153 usable characters.

Past 160 characters, send iMessage

Blooio sends iMessage with no segment limit and no per-segment bill, and falls back to SMS for everyone else.

SMS length calculator FAQ

What is the maximum SMS length?

A single SMS holds 160 characters using GSM-7 encoding or 70 characters using UCS-2 Unicode. Longer messages are split (concatenated) into multiple segments β€” most carriers support up to 10 segments per message, which is 1,530 GSM-7 characters or 670 UCS-2 characters.

How do I count characters in an SMS?

Most SMS APIs count UTF-16 code units, not human-visible characters. A 4-byte emoji like πŸš€ counts as 2 characters. The GSM-7 extended set (€, [, ], {, }, ~, ^, |, \) costs 2 septets per character. This calculator handles all of that automatically β€” paste your text and it'll show the carrier-accurate count.

Why is my SMS shorter than 160 characters but still 2 segments?

Two reasons. First, a single non-GSM-7 character (curly quote, em dash, emoji, accented letter outside the basic set) flips the whole message to UCS-2, dropping the limit to 70. Second, any GSM-7 extended character (€, [, ], {, }, ~, ^, |, \) counts as 2 β€” so a message with 80 visible characters can already be 161 septets.

Does WhatsApp or iMessage have the same length limits?

No. WhatsApp messages can be up to 4,096 characters per message with no segmentation cost. iMessage has no practical character limit and is delivered as a single blue bubble regardless of length. The 160-character SMS rule only applies to traditional carrier SMS sent over the SS7/SMPP network.

What is the SMS message length limit for Twilio?

Twilio follows the SMS standard exactly: 160 GSM-7 characters or 70 UCS-2 characters per single segment. For multi-part messages, Twilio reserves 7 bytes of UDH per segment, reducing capacity to 153 (GSM-7) or 67 (UCS-2) per segment. Twilio's hard upper limit is around 1,600 characters per message before it returns an error.

How long is a 2-segment SMS?

Up to 306 GSM-7 characters (153 Γ— 2) or 134 UCS-2 characters (67 Γ— 2). The drop from 160 β†’ 153 per segment happens because each concatenated segment carries a User Data Header (UDH) that tells the recipient's phone how to reassemble the parts.

Related tools