Back to Blog
Messaging basicsPublished: Last updated: 15 views

SMS character limit: why texts split into multiple messages

Black-and-white illustration of a smartphone with a text bubble splitting into smaller message segments

See why a 161-character text needs two segments, how Unicode changes the limit, and what to check before sending a long SMS.

Last updated: October 25, 2026.

The SMS character limit is usually 160 characters for a single message using GSM-7, or 70 encoding units when the text needs Unicode encoding. Once a message needs more than one part, the usual capacity drops to 153 or 67 per part. That is why a text that looks short can arrive as several segments.

Start by checking the characters in the message, not just the number shown in your text editor. A curly quote, an Arabic letter or an emoji can change the encoding of the whole text. Symbols such as the euro sign can also use more space while remaining in GSM-7.

Single-message and multipart limits

EncodingOne segmentEach part of a multipart SMS
GSM-7160 units153 units
Unicode, commonly described as UCS-270 units67 units

Long messages carry information that lets the receiving device join their parts in the correct order. That information takes some of the space available for text. AWS explains this reduction and notes that the recipient may see one combined message or separate parts, depending on the carrier and device.

These are common segment limits, not an unlimited allowance for a single API request. Providers set their own maximum message length. There are also route-specific exceptions: Twilio documents 152 GSM-7 or 66 Unicode units per multipart segment for toll-free SMS sent to the US or Canada.

Why the visible character count can be misleading

GSM-7 includes a defined alphabet of letters, digits and symbols. Most of its basic characters use one unit. Some symbols, including ^ { } \ [ ] ~ | €, use an escape plus the symbol and count as two. Twilio's GSM-7 character map shows how this alphabet works.

For example, 81 euro signs are 81 visible characters but consume 162 GSM-7 units. They therefore need two segments under the usual multipart rules. By comparison, 81 basic Latin letters fit into one segment.

Characters outside that alphabet can switch the message to Unicode. An Arabic letter is enough to do this even if the rest of the message uses basic Latin letters. Some emoji take more encoding space than one visible symbol suggests, so use a segment-aware counter for messages containing emoji.

Worked examples at the boundaries

The examples below use repeated basic Latin A or the Arabic letter ش to make the calculation reproducible. They assume the usual 153/67 multipart capacities, with no provider conversion or route-specific exception.

Illustrative textEncoding unitsSegments
160 copies of A160 GSM-71
161 copies of A161 GSM-72
306 copies of A306 GSM-72
307 copies of A307 GSM-73
70 copies of ش70 Unicode1
71 copies of ش71 Unicode2

For a multipart message, divide the total units by the capacity of each part and round up. For example, 307 divided by 153 is slightly more than two, so it needs three segments. Do not give the first part 160 units and later parts 153; once the message is multipart, the joining information affects its parts.

Check the final text before sending

  1. Prepare the exact message, including spaces, line breaks, punctuation, links and any personalization.
  2. Check which encoding it uses and whether extended GSM-7 symbols consume extra units.
  3. Preview the segment count with a tool such as the Twilio Message Segment Calculator.
  4. Repeat the check after replacing placeholders with realistic values. A longer name or link can push a message over a boundary.
  5. Check your provider's actual limits and message logs before relying on the estimate for a campaign.

If a provider offers a feature such as Twilio Smart Encoding, review what it changes. Replacing selected punctuation can reduce segments, but transliteration or removing meaningful characters can change the message. Keep names, languages and intended meaning intact.

Segments, costs and delivery are separate checks

Providers may bill multipart texts by segment; AWS explicitly describes that model in its character-limit documentation. One bubble on the recipient's phone can therefore represent several billable parts. Confirm your own plan's pricing rather than assuming that one displayed conversation item equals one charge.

Segment counting also does not prove delivery. If an accepted message is missing, use the verification-code troubleshooting guide to check the destination and receiving route. If you are reading a browser inbox, the number and inbox guide explains how to match the sender and arrival time to your request.

The public SMS verification inbox example shows where the sender and message body appear. Displayed codes may belong to previous requests; use it to understand the inbox layout, not to reuse an old code.