What Is the SMS Character Limit?
The practical limit is the amount of encoded text that fits in one SMS payload. Common single-segment limits are 160 units for GSM-7 and 70 units for a 16-bit Unicode representation. Those units do not always match visible characters.
| Common encoding model | One segment | Each segment in a longer message | Important caveat |
| GSM-7 | 160 septets | Usually 153 septets | Extension-table characters use two septets |
| 16-bit Unicode | 70 units | Usually 67 units | Some visible characters need multiple units |
These are common limits, not a promise for every sender and destination. Different headers and provider routes can reduce the available space. A platform can also impose an overall maximum message size that is separate from a single-segment limit.
GSM-7 and Unicode: Why the Same Length Can Cost More
Encoding determines how the text is represented for transmission. A message that uses only supported GSM-7 characters can fit more text in a segment than a message sent using the common 16-bit Unicode model.
GSM-7 is an alphabet, not “English only”: It includes ordinary Latin letters, digits, many punctuation marks and some other characters, including several accented letters. A character such as é does not automatically mean Unicode. Check the actual character set rather than assuming every accent has the same effect.
Some GSM symbols use extra space: Characters such as the euro sign and square brackets are in the extension table and commonly need two septets. A message can remain GSM-7 while using more units than its visible length suggests.
Unsupported characters can change the whole message: A curly apostrophe or an emoji can move a message outside GSM-7. It is not just the unusual character that uses another encoding; the remaining text is represented in that encoding too. This is why a small edit can change the segment count sharply.
Visible characters are not encoding units: An emoji can involve a surrogate pair, and a visible symbol can contain several code points. Counting what looks like one character on screen may therefore understate the space used. The exact handling should be confirmed in the provider’s encoding or segment tool.
Why Longer Messages Use 153 or 67 Units Per Segment
Multipart messages need information that lets the receiving system join their parts. This uses some of the available payload, leaving less room for text in each segment.
The reduction applies once the message becomes multipart. A 161-unit GSM-7 message does not use one full 160-unit part plus a one-unit part. Under the common model, the parts have a capacity of 153 units each.
For ordinary characters that each use one unit, 306 GSM-7 units fit in two 153-unit parts, while 307 need three. In the common Unicode model, 134 units fit in two 67-unit parts and 135 need three.
Symbols that use more than one unit can complicate boundaries because an encoded character must remain intact. Treat simple division as a planning estimate, and compare it with the provider’s actual count before a large send.
SMS Segment Estimator
Paste the final draft below to estimate encoding units and segments using the common GSM-7 160/153 and Unicode 70/67 model. This local tool does not send your message or query a billing system.
Enter a message to estimate its segments.
Estimate only. Unicode is counted as UTF-16 units; route overhead, national language tables, provider transformations and actual billing can differ. No text is sent to a server by this estimator.
Worked SMS Character-Limit Examples
These examples use the common segment sizes and simple repeated characters so the calculations are reproducible. They are demonstrations, not provider-specific billing quotes.
| Message composition | Estimated encoding units | Segments | Why |
| 160 ordinary GSM-7 letters | 160 GSM-7 | 1 | Fits the single-segment capacity |
| 161 ordinary GSM-7 letters | 161 GSM-7 | 2 | Multipart capacity is 153 per part |
| 306 ordinary GSM-7 letters | 306 GSM-7 | 2 | Two parts of 153 |
| 307 ordinary GSM-7 letters | 307 GSM-7 | 3 | Exceeds two multipart segments |
| 159 ordinary letters plus one euro sign | 161 GSM-7 | 2 | The euro sign uses two units |
| 70 basic non-GSM Chinese characters | 70 Unicode units | 1 | Fits the common 16-bit single segment |
| 71 basic non-GSM Chinese characters | 71 Unicode units | 2 | Multipart capacity becomes 67 per part |
| 100 ordinary letters plus one curly apostrophe | 101 Unicode units | 2 | The punctuation changes the encoding |
Try the examples in the estimator, then change one character. In particular, compare a straight apostrophe with a curly apostrophe. The visible length is almost unchanged, but the encoding classification can differ.
How SMS Segments Affect Business Messaging Costs
Many business SMS services charge by segment rather than by the single conversation bubble the customer sees. Check the provider’s pricing, included-allowance rules and any applicable network fees separately.
A simple planning formula is: estimated SMS usage charge = segments sent × applicable per-segment rate. This does not include every possible subscription, number, registration, tax or network charge. Failed-message charging can also vary.
For an invented rate of 0.01 currency units per segment, 500 single-segment messages cost 5 currency units in base usage. If all 500 become two-segment messages, that base usage becomes 10. The example illustrates multiplication; it is not Calilio’s pricing or a typical market rate.
Personalization can change individual counts. A short name may fit inside one segment while a longer name pushes another recipient’s message into two. Estimate the finished text with realistic long values, including dates, references and links.
Registration and usage are separate budget items. A 10DLC pricing breakdown concerns the registration and messaging fee categories for US local-number business texting; it does not replace checking the exact encoded message.
Check These Characters Before a Large Send
Copying text from a document or marketing tool can introduce characters that are easy to overlook. Inspect the final content after all formatting and personalization have been applied.
Curly quotation marks and apostrophes: Word processors may replace straight punctuation with typographic versions. If the change is unnecessary, ordinary punctuation may preserve GSM-7. Test the final result rather than assuming the tool makes that replacement automatically.
Emoji and decorative symbols: These can change the encoding and use multiple units. Keep them when they serve the message, but understand the effect on length. A decorative icon is not free simply because it occupies little space on screen.
Brackets, braces and the euro sign: These can remain in GSM-7 while using extension-table space. Do not remove useful currency or reference information just to achieve a lower visible count. Estimate the encoded text.
Multilingual text: Write in the language the customer can understand. Some scripts need a Unicode representation, and removing necessary characters can make the message inaccurate. Budget for the correct message instead of forcing every language into a Latin-only form.
Links and appended wording: A full URL, tracking parameters, a business name or required opt-out instruction all occupy space. Check what the sending platform actually adds or changes. A saved draft may differ from the submitted message.
Reduce Segment Count Without Making the Text Worse
Start by removing repetition and unnecessary decoration. Keep the business identity, essential details and instructions the recipient needs to act.
For an appointment message, a concise date, time, location and reply instruction may be enough. For a detailed explanation, provide a short summary and an appropriate trusted route to the full information. Do not use unexplained abbreviations that make the customer guess.
A link can save text, but avoid unfamiliar shortening domains used only to squeeze in more copy. Use an appropriate business-controlled destination and verify it. A message that is cheaper but looks deceptive can create a larger communication problem.
Where supported, MMS or another channel may suit a particular communication better. Compare recipient access, media support and pricing rather than assuming MMS is always cheaper or exempt from all length constraints. Do not substitute an app-based channel for SMS without considering the customer’s expectations.
Confirm the Actual Segment Count Before Launch
Use the estimator for drafting, then verify the result through the actual platform where the message will be sent. Record the final content and the system’s reported count if available.
Compare the saved template with the message actually submitted. A platform may append a signature, expand a placeholder or transform a link. An optional encoding feature may also replace some punctuation, but you should not assume that setting exists or is enabled. Check the final message record rather than attributing every difference to the recipient’s phone.
For a multilingual campaign, test each language version independently. A translation can change both the alphabet and the length, so the English version is not a reliable segment estimate for the whole campaign. Keep a few realistic long-value examples with the template so another team member can repeat the check after future edits.
- Replace placeholders with realistic recipient values.
- Include any automatic signature, link or opt-out text.
- Check the encoding and estimated segment count.
- Confirm sender type and destination-specific behavior.
- Send a permission-based test and review the message record.
- Compare the usage record with the applicable billing rules.
If your platform does not show encoding or segments, ask support what determines its calculation. Do not assume the maximum length in a text field is a single-segment allowance. A field can accept a long text and still send it as several SMS parts.
Keep a tested version of frequently used messages. Changes to names, language or links can invalidate an earlier estimate, so repeat the check when the template changes. That small review is more useful than relying on a universal “under 160 characters” rule.
Next step
Ready to Get Started?
Count encoded units, test the final personalized text and verify the platform’s reported usage. Preserve clarity and required messaging information even when a shorter version would use fewer segments.
Calilio combines business SMS, scheduled messages and shared conversation history in one cloud phone workspace.
Frequently Asked Questions
These answers clarify the main practical questions about SMS character limit.
Is the SMS character limit always 160?
No. A single segment commonly holds 160 GSM-7 units, while a common Unicode model holds 70 units. Multipart headers and some sender or destination routes reduce the capacity further.
Why does my short text use two segments?
It may contain a character that changes the encoding, or extension characters that use extra space. Inspect the exact final text, including appended wording and personalized values.
Do all accented letters require Unicode?
No. Some accented letters are included in GSM-7. Check the actual alphabet or use an encoding-aware estimator rather than treating every non-ASCII letter the same way.
Does one emoji count as one SMS character?
Not necessarily. A visible emoji can use multiple encoding units or several code points. Its presence can also change the encoding used for the rest of the message.
Does a long text always arrive as separate messages?
Multipart SMS is commonly reassembled into one visible message, but behavior can vary by route, network and device. The visible result does not establish the number of billed segments.
Is this estimator a Calilio billing calculator?
No. It estimates common GSM-7 and Unicode segment sizes locally. Confirm the actual encoded count, route behavior and billing rules with the platform used to send the message.
