What is a Message Segment?
An SMS message segment is a single transmission unit of 140 bytes (octets). Networks transmit SMS in these fixed-size packets. When your message is longer than what fits in 140 bytes, it must be split into multiple segments (a "concatenated" or "multipart" SMS).
The cost of sending an SMS is typically per segment, not per message. A 300-character GSM-7 message costs twice as much as a 160-character message (2 segments vs 1).
Segment Limits by Encoding
140 bytes accommodates different numbers of characters depending on encoding:
| Encoding | Bits/char | Single SMS chars | Multipart SMS chars/segment |
|---|---|---|---|
| GSM-7 | 7 bits | 160 | 153 |
| UCS-2 | 16 bits | 70 | 67 |
Why Do Multipart Messages Have Fewer Characters Per Segment?
When a message is split into multiple segments, a User Data Header (UDH) is prepended to each segment. The UDH uses 6 bytes (1 byte UDHL + 5 bytes for the Concatenated Short Message Information Element).
This means:
• Each segment has only 140 - 6 = 134 usable bytes
• In GSM-7: 134 bytes × (8/7) = ~153 characters per segment
• In UCS-2: 134 bytes ÷ 2 = 67 characters per segment
The receiving device reassembles segments based on the UDH reference number and sequence numbers.
Segment Calculation Table
How many segments does your message need?
| Characters | GSM-7 Segments | UCS-2 Segments |
|---|---|---|
| 1–160 | 1 | — |
| 1–70 | — | 1 |
| 161–306 | 2 | — |
| 71–134 | — | 2 |
| 307–459 | 3 | — |
| 135–201 | — | 3 |
| 460–612 | 4 | — |
| 202–268 | — | 4 |
| 613–765 | 5 | — |
| 269–335 | — | 5 |
| Formula | ceil(n/153) | ceil(n/67) |
How to Check Segment Count via API
The BulkSMSRates API returns segment count in the submit response. You can also use our message preview endpoint to check without sending:
// Preview endpoint — check before sending
POST /v1/preview
{
"body": "Hello! Your appointment is confirmed for Tuesday 14 Feb at 10:30am. Reply STOP to opt out.",
"encoding": "auto"
}
// Response:
{
"encoding": "GSM-7",
"char_count": 90,
"segments": 1,
"chars_remaining": 70,
"cost_per_segment_gbp": 0.0300
}Tips to Reduce Segment Count
1. Use abbreviations: "appt" instead of "appointment", "tomorrow" instead of the full date.
2. Remove opt-out to a URL: Instead of "Reply STOP to unsubscribe" (27 chars), use "Opt out: yourdomain.com/stop" (shorter and saves chars).
3. Use URL shorteners: Long URLs consume many characters. Use a short link (e.g. go.yourdomain.com/abc).
4. Avoid filler words: Remove "Please note that", "We would like to inform you that", etc.
5. Split into focused messages: Sometimes two short messages at different times are more effective than one long one.
6. Avoid UCS-2 triggers: Smart quotes, em dashes, and emoji all halve your character limit. See the SMS Encoding guide.
Maximum Message Length
Most carriers support up to 255 segments per message (though we recommend a maximum of 5–8 for practical purposes). However:
• Very long messages have lower delivery rates — some carriers or handsets may reject or truncate them.
• Each additional segment doubles the failure surface (if one segment is delayed, the message may appear incomplete).
• Cost: 5 segments × £0.0300 = £0.1615 per send — at scale this adds up significantly.
Best practice: Keep messages under 3 segments for transactional messages and under 2 segments for marketing.
Related Guides
Ready to get started?
Start sending SMS in minutes. No monthly fees. Free test credits.
Create Free Account →