Character Limit on Text Messages: SMS, MMS and RCS

A single SMS message technically supports up to 160 characters, or up to 70 if the message contains one or more Unicode characters (such as emoji or Chinese characters).

However, modern phones and mobile networks support message concatenation, which enables longer messages to be sent. Messages longer than 160 characters are automatically split into parts (called "segments") and then re-assembled when they are received. Message concatenation allows you to send long SMS messages, but this increases your per-message cost, because SMS are billed per segment.

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. For detail on how these character limits change on concatenated (multi-segment) messages, see below.

Signalmash's platform supports long messages up to 1600 characters across all Programmable Messaging channels, including SMS. However, for SMS messaging, Signalmash recommends sending messages that are no more than 320 characters to ensure the best deliverability and user experience. See this article for details.

Signalmash bills SMS for every message segment sent. So, for example, if you need to send a message that is 140 characters long and contains only one non-GSM character, you (or Signalmash Smart Encoding) can avoid the cost of a second message segment by removing that UCS-2 character.

Info

Toll-Free multi-segment SMS messages sent to the US or Canada have a total of 152 characters available per segment for GSM-encoded messages and 66 for UCS-2 messages.

What is the history behind SMS message length?

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 codified into the SMPP signalling protocol that transmits SMS.

But things get tricky because GSM-7, the original character 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 " to “ — 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 messages that you plan to send frequently using our Message Segment calculator before you send them. This tool can flag any characters that would force the message to be sent using UCS-2 encoding, so you can decide whether to remove those characters and reduce the cost per message.

You can see whether any Signalmash SMS message sent from your account was encoded as UCS-2 or GSM-7 by viewing the message in your Console logs.

RCS message length and character encoding

RCS differs from SMS in that it uses UTF-8 character encoding. UTF-8 natively supports Unicode characters like emojis and non-English characters that would ordinarily result in higher segment counts when sent over SMS using UCS-2 encoding. RCS messages up to 1600 characters in length are delivered to the handset as one message.

The RCS ecosystem as defined by carriers, supports two region-specific billing models. Text-only RCS messages, delivered to US recipients, are billed per 160 UTF-8 chatacter segment similar to SMS. Text-only RCS messages, delivered to international recipients, are not billed per segment. They are billed a per message fee.

Quick answer: how many characters can a text message have?

A single SMS holds 160 characters if every character is in the GSM-7 alphabet, or 70 characters if the message contains even one character outside it (an emoji, a curly quote, an em dash, most accented letters). Longer messages are still delivered: the network splits them into segments of 153 GSM-7 or 67 UCS-2 characters and the handset stitches them back together, but every segment is billed as a separate message. MMS carries about 1,600 characters plus media, and RCS text messages allow up to 3,072 characters. The number that matters for your bill is segments, not characters.

Character limits by message type (2026)

Message type
Single message
Per segment when split
Notes
SMS, GSM-7 encoding
160
153
Standard Latin letters, digits and basic punctuation. Six bytes of each segment carry the reassembly header, which is where the 7 missing characters go.
SMS, UCS-2 (Unicode) encoding
70
67
Triggered by any non-GSM-7 character. Emoji and many symbols occupy two UTF-16 units, so one emoji uses 2 of the 70.
SMS, long message
up to 1,600 typical API cap
10 to 11 GSM-7 segments, 24 UCS-2
Most messaging APIs accept about 1,600 characters and split automatically. Deliverability and read rates drop sharply past two or three segments.
MMS
about 1,600 characters of text plus media
not segmented
Billed per message, not per segment. Carriers cap total size at roughly 1 to 5 MB; keep images under 1 MB for reliable delivery.
RCS (Rich Business Messaging)
3,072 characters per text message
not segmented
UTF-8, so emoji and any script count as one character. Rich-card titles are limited to 200 characters, descriptions to 2,000, suggested replies to 25. Falls back to SMS rules on non-RCS handsets.
WhatsApp Business
4,096 characters
not segmented
Template messages are approved in advance; the limit applies to the rendered body.
iMessage
no published limit
n/a
Apple-to-Apple only. When an iPhone falls back to SMS (green bubble) the carrier rules above apply.

GSM-7 vs UCS-2: the characters that cost you a segment

GSM-7 is a 7-bit alphabet of 128 basic characters plus a small extension table. Anything not in it forces the whole message into 16-bit UCS-2 encoding, which more than halves the room in every segment. The usual culprits are not exotic: they are the characters word processors and phones insert automatically.

Group
Counts as
Examples
GSM-7 basic set
1 character each
A to Z, a to z, 0 to 9, space, line feed, and these symbols: @ £ $ ¥ ¤ ! " # % & ' ( ) * + , - . / : ; < = > ? _ § ¡ ¿ plus the accented letters è é ù ì ò à ä ö ü ñ Ç Ø ø Å å Æ æ ß É Ä Ö Ñ Ü and the Greek capitals Δ Φ Γ Λ Ω Π Ψ Σ Θ Ξ
GSM-7 extension set
2 characters each (still GSM-7)
^ { } \ [ ] ~ | € and form feed. A message of 160 characters that contains four square brackets is 164 and becomes two segments.
Forces UCS-2
whole message drops to 70 / 67 per segment
Every emoji; curly quotes “ ” ‘ ’; em and en dashes — –; ellipsis …; non-breaking space; the degree sign °; trademark and copyright symbols ™ ©; bullets •; accented letters outside the set such as á í ó ú â ê î ô û ë ï ÿ ç (lower case) ã õ; any Cyrillic, Greek lower case, Arabic, Hebrew, Chinese, Japanese, Korean or Indic text.

Three worked examples

1 segment

A 145-character appointment reminder written in plain GSM-7 characters with straight quotes. Cost at Signalmash's Launch rate: $0.0039.

3 segments

The same 145-character reminder with one emoji at the end. The emoji switches the message to UCS-2 (67 per segment), so 145 characters become three segments: $0.0117, three times the price for one smiley.

$390 a month

What that emoji costs a programme sending 50,000 reminders a month: 100,000 extra segments at $0.0039. Paste any draft into the SMS character counter and it names the exact character that tipped the encoding.

People also ask

What is the character limit for a text message?

160 characters for a message that uses only GSM-7 characters, 70 characters if it contains any Unicode character such as an emoji. Longer messages are split into segments of 153 or 67 characters, delivered in pieces and reassembled on the phone, with each segment billed separately.

What happens if a text message is over 160 characters?

Nothing is cut off. The sending network adds a small header to each part so the receiving handset can put the segments back in order, and modern phones display the result as one message. You pay for every segment, and a handful of very old feature phones still show the parts separately, which is why concise messages remain best practice.

Do emojis count as more characters in a text?

Yes, twice over. One emoji forces the entire message into UCS-2 encoding, cutting the per-segment limit from 160 to 70 (153 to 67 when split), and most emoji are two UTF-16 code units, so each one also uses 2 of those 70. A 100-character message with a single emoji is two segments; without it, one.

What is the character limit for MMS?

MMS is not segmented like SMS. Most US carriers and APIs accept around 1,600 characters of text alongside images, GIFs, audio or short video, with total message size capped somewhere between 1 MB and 5 MB depending on the carrier. MMS is billed per message, which at high character counts can be cheaper than a five-segment SMS.

What is the character limit for texts on iPhone and Android?

The phone does not impose the limit; the channel does. iMessage (blue bubbles) and RCS chats (Android and iOS 18 onwards) allow thousands of characters and count emoji as single characters. When the message falls back to SMS, the 160 / 70 rules apply and the phone silently splits it. Some Android keyboards show a counter such as 140/1 to indicate characters remaining and segment number.

Do links, opt-out text and the sender name count toward the limit?

Every character in the body counts, including URLs and the compliance footer. A full-length tracking link can be 60 to 90 characters and mandatory opt-out language such as "Reply STOP to opt out" is 21, so a 100-character offer easily becomes two segments. Use a short branded link (20 to 25 characters), keep the opt-out phrase to the required minimum, and check the segment count before sending.

Check a message before you send it

Our free SMS character counter shows the character count, whether the message is GSM-7 or Unicode, and how many segments you will actually be billed for — and names the exact character that pushed it over. Nothing leaves your browser.

Building this into an application instead? The Signalmash SMS API sends a message in one authenticated POST, and sending in bulk covers throughput and segment cost at volume.