SMS Length, Segments & Cost
On SMS, length is cost. A message longer than a single SMS is split into multiple segments, and each segment is billed as a separate message. Because the per-message limit depends on the characters you use, the same-looking message can cost one SMS or three.
This guide is the practical companion to SMS Encoding & Message Length, which explains the underlying GSM-7 vs Unicode mechanics. Start there if the terms GSM-7, UCS-2, or concatenation are new.
Try it: SMS length calculator
Type or paste a message to see its encoding, character count, and how many billable segments it becomes. Toggle character detail to see exactly which characters are expensive.
Things worth trying:
- Paste a plain English message just over 160 characters and watch it become 2 segments of 153.
- Add a single emoji (π) and watch the encoding flip to Unicode and the limit drop to 70.
- Replace a straight quote
"with a curly quote": same flip, no visible difference in the text.
How Sent counts segments
Sent computes the segment count from the message body using the standard GSM 03.38 rules (the same logic used for billing), so the count you see is the count you're charged for.
- The dashboard shows the segment count on each message in the activity view (such as "3 parts") for multi-part SMS, with a per-segment breakdown when you expand the message.
- The calculator on this page applies the same counting rules, so you can check any message body before sending it.
- The API does not return a segment count: the
GET /v3/messages/{id}response carries the per-messagepricebut no segments field.
Segment count is a property of SMS only. WhatsApp and RCS are billed per message (or per conversation), not per SMS segment.
How segments map to cost
Each SMS segment is billed as one message. The math follows directly from the encoding rules:
| Your message | Encoding | Segments | Billed as |
|---|---|---|---|
| "Your code is 1234" (17 chars) | GSM-7 | 1 | 1 SMS |
| 200 characters of plain English | GSM-7 | 2 | 2 SMS |
| 480 characters of plain English | GSM-7 | 4 | 4 SMS |
| "Votre colis est arrivΓ© π¦" | Unicode | 1 | 1 SMS |
| 80 characters including one emoji | Unicode | 2 | 2 SMS |
A 10-character message with one emoji and a 70-character all-text message both fit in one Unicode segment, but an 80-character message with an emoji is two. The emoji didn't add much length; it changed the limit.
Keep messages short and predictable
The single most common surprise: accidental Unicode. A message you wrote as pure GSM-7 can silently become Unicode, and lose more than half its per-segment room, because of a character you can't see the difference of:
- Curly quotes
" " ' 'instead of straight" '(auto-inserted by many editors and phones) - En/em dashes
β βinstead of a hyphen- - Ellipsis
β¦instead of three dots... - Any emoji
If a message should be GSM-7, normalize these characters before sending.
Practical guidance:
- Aim for a single segment. Under 160 GSM-7 characters (or 70 if the content is inherently Unicode) is the cheapest, most reliable outcome.
- Budget for variables. A template that's 150 characters with a short name can blow past 160, into a second segment, when the name or a URL is long. Test with realistic, worst-case variable values, not "John."
- Budget for translation. A message comfortably within 160 GSM-7 characters in English will encode as Unicode (70-character segments) in Arabic, Chinese, Cyrillic, and most non-Latin scripts. The same content can be 1 segment in one language and 3 in another.
- Fewer parts, fewer failures. Beyond cost, each additional segment is another part that must arrive and be reassembled by the recipient's device and network. Long concatenated messages are marginally more prone to delivery issues than single ones.
Check the count before sending
Segment count is derived purely from the message body, so you can verify it without spending on real delivery: paste the final rendered message (with realistic, worst-case variable values) into the calculator at the top of this page. It applies the same GSM 03.38 rules Sent bills with. After a live send, confirm the billed part count in the dashboard's activity view.
Related
SMS Encoding & Message Length
The concept: GSM-7 vs Unicode, the 160/153/70/67 limits, and concatenation
Working with Templates
Where length usually bites: template bodies and variable expansion
Sending Messages
The full send path, sandbox mode, and reading back message details
Message Response Handling
Parse Sent API v3 message-send responses: the success/data/error envelope, per-recipient message IDs, validation and auth error shapes, and async failures.
Message Status Tracking
Track Sent message delivery status in real time using webhook status events, API polling, and the dashboard, and handle failed messages and inbound replies.