SMS Character Limit

The character limit for a single SMS message is 160 characters, however most modern phones and networks support concatenation and segment and rebuild messages up to 1600 characters.  Messages not using GSM-7 encoding are limited to 67 characters.

SMS Message Length and Character Encoding

When you send a SMS message over 160 characters the message will be split.  Large messages are segmented into 153 character segements and sent individually then rebuilt by the recipients device. For example, a 161 character message will be sent as two messages, one with 153 characters and the second with 8 characters.

If you include non-GSM characters like eastern characters in SMS messages, those messages have to be sent via UCS-2 encoding. Messages containing any UCS-2 characters are limited to 67 characters and will be concatenated into 67 character message segments, even if the messages contain less than 160 characters.

What is the History Behind SMS Message Length?

SMS is a standardized communication protocol that enables devices to exchange short text messages and was defined as part of the 1985 GSM protocol. Originally it was designed to "fit in between" existing signalling protocols which is why SMS length is limited to 160 seven-bit characters. It was subsequently codified into the SMPP signalling protocol that transmits SMS and is limited to precisely 140 bytes (or 1120 bits).

Where this gets tricky is because GSM-7, the original charater set designed for SMS only has the ability to denote 128 different characters in those 7 bits. So if you want to include more Latin or eastern characters you'll need to use UCS-2.

A common mistake is to inadvertantly use a UCS-2 character thinking it's GSM7 character because GSM7 isn't a supported character set in many text editors. The classic mistake is to use "curly quotes" not realizing it's part of UCS-2 and not GSM7.

We recommend you check any mass messages in this tool before you send them out.  It will flag any UCS-2 characters to avoid you being double charged for messages. If you use Twilio, you can see whether a message was encoded as UCS-2 or GSM7 by viewing an individual message in your console logs.