The character limit for a single SMS message is technically 160 characters. However, most modern phones and networks support message concatenation: they split large messages into individual SMS messages (called "segments") and then re-create the large message at the receiving end. The 160-character limit is for messages encoded using the GSM-7 character set. Messages not encoded with GSM-7 are limited to 70 characters.
Twilio's platform supports long messages up to 1600 characters across all Programmable Messaging channels, including SMS. However, for SMS messaging, Twilio recommends sending messages that are no more than 320 characters to ensure the best deliverability and user experience. See this article for details.
When you send an SMS message containing more than 160 characters, the message is split into smaller messages for transmission. Large messages are split into 153-character ‘segments’ and sent individually, then re-assembled by the recipient’s device. For example, a 161-character message will be sent as two messages: one with 153 characters and a second with eight characters.
If you include non-GSM characters, such as Chinese script, in SMS messages, those messages have to be sent using the UCS-2 encoding. Messages containing any UCS-2 characters will be limited to 70 characters. UCS-2 messages of more than 70 characters will be split into 67-character segments.
Twilio bills for every segment sent, so if you have a message with, say, 140 characters and only one or two of them are UCS-2, you can avoid the cost of the second segement by removing those UCS-2 characters, if you can.
Note Toll-Free Multi-Segment Messages sent to the US or Canada have a total of 152 characters available for GSM-encoded messages and 66 for UCS-2 messages.
The Short Messaging Service (SMS) is a standardized communication protocol that enables devices to send and receive brief text messages. It was designed to “fit in between” other signalling protocols, which is why SMS message length is limited to 160 7-bit characters, i.e., 1120 bits, or 140 bytes. SMS was first standardized as part of the 1985 GSM protocol and was subsequently codified into the SMPP signalling protocol that transmits SMS.
But things get tricky because GSM-7, the original charater set designed for SMS, can only encompass 128 different characters, thanks to that 7-bit limit. So if you want to include characters from extended Latin or non-Latin scripts, you’ll need to use UCS-2.
A common mistake is to inadvertently use a UCS-2 character. GSM-7 isn’t a supported character set in many text editors, which may replace GSM-7 compatible characters with characters outside of GSM-7. For example, if your text editor changes
“ — a ‘curly’ or ‘smart’ quote mark — you will have a UCS-2 character in your message and that will reduce the character limit from 160 to 70.
We recommend that you check any high-volume messages in our Message Segment calculator before you send them. It will flag any UCS-2 characters so you can remove them and avoid being charged for any extra messages required to segment the source message. If you use Twilio, you can see whether a message was encoded as UCS-2 or GSM-7 by viewing the message in your Console logs.