An SMS character counter is the fastest way to know what a text message will actually cost before you send it. smsroute's free counter detects GSM-7 and UCS-2 encoding, splits your text into billable segments, and shows the estimated price per message — entirely in your browser, with nothing uploaded.
What Is an SMS Character Counter?
A SMS character counter is a tool that measures how many characters a text message contains and, more usefully, how many billable SMS segments that text will become once a carrier encodes it. A single character count is not enough on its own, because the encoding standard — GSM-7 or UCS-2 — changes the size of every segment and therefore the price. This counter does both jobs at once so you can preview your cost before sending a single message through the smsroute SMS API.
For most businesses, the character count is only half the story. What matters is the segment count, because providers bill per segment, not per character. A 161-character GSM-7 message costs twice as much as a 160-character one, even though it is just one character over the limit.
How Many Characters Are in One SMS Message?
One standard SMS holds 160 characters when the text is plain GSM-7, and 70 characters when it contains any non-GSM character (an emoji, a curly quote, or a non-Latin script), which forces the message into UCS-2 encoding. These limits are defined by the GSM specification and apply to every A2P SMS provider, not just smsroute.
The single most common surprise is that one stray emoji silently switches the entire message to UCS-2. A 160-character plain text that fits in one segment can collapse to three segments the moment a "smart quote" or emoji appears, because the per-segment capacity drops from 160 to 70 characters. The counter flags this the instant it happens so you can fix it before sending.
GSM-7 vs UCS-2: which encoding will you hit?
- GSM-7 covers basic Latin letters, digits, and common punctuation. It is the default and the cheapest path.
- UCS-2 is used for emoji, accented characters outside the GSM set, Chinese/Japanese/Korean and Arabic scripts, and other non-GSM symbols.
- A handful of characters (like €, {, }, [, ], ~, |, \) count as two GSM-7 units each, nudging you closer to a split.
How Does SMS Segmentation Work?
SMS segmentation works by splitting a long message into linked parts that the handset reassembles on delivery. A single-segment message allows 160 characters (GSM-7) or 70 (UCS-2). Once the text exceeds that, it is split into concatenated segments that each reserve 6 bytes for a reassembly header, leaving 153 characters per GSM-7 part and 67 per UCS-2 part.
That header is why a 161-character message costs two segments instead of one, and why a 314-character message costs three. The counter divides your total character units by the per-part limit and rounds up, so the segment number you see is exactly what will be billed by the bulk SMS pricing table.
Why Does SMS Encoding Change Your Cost?
Encoding changes your cost because providers bill per segment, and UCS-2 fits less than half as much text per segment as GSM-7. Switching a campaign from GSM-7 to UCS-2 can more than double the number of billable segments for the same words — with no change to what the customer reads. For high-volume bulk SMS traffic, that difference is the difference between a five-figure and a ten-figure monthly bill.
How Do You Keep a Message in One Segment?
You keep a message in one segment by staying inside 160 GSM-7 characters and removing any non-GSM character before sending. A few practical rules cover almost every case:
- Write in plain Latin characters and avoid emoji unless the campaign truly needs them.
- Replace "smart" punctuation (curly quotes, en/em dashes) with straight ASCII equivalents.
- Watch for hidden characters pasted from Word, Notion, or WhatsApp.
- Keep the body under 160 characters; if you must go longer, try to land just under 306 (two segments) or 459 (three).
- Use this counter as a pre-send checkpoint in your copy workflow.
How Do You Use the SMS Counter for Bulk SMS and API Campaigns?
Use the SMS character counter as a pre-flight check before you push a campaign through the API. Paste your template with a representative variable value, confirm the encoding and segment count, and you will know the exact per-message cost at scale. The estimates here use a representative $0.01 per segment rate; your actual rate depends on destination and volume on the SMS pricing page.
For developers, the same GSM-7/UCS-2 logic is what the smsroute SMS API applies on submit, so the segment count shown here will match what you are billed. That makes the counter a reliable way to validate templated OTP, alert, and marketing copy before it reaches thousands of handsets.
Frequently Asked Questions
How many characters is one SMS?
One SMS holds 160 characters when the text uses plain GSM-7 encoding, or 70 characters if it contains any non-GSM character (emoji, curly quotes, or non-Latin script), which forces UCS-2 encoding.
Why did my message split into multiple parts?
A message splits either because it passed the single-segment limit (160 GSM-7 / 70 UCS-2), or because a non-GSM character forced UCS-2. Each concatenated part holds 153 (GSM-7) or 67 (UCS-2) characters because a header is reserved for reassembly.
Do emojis cost more in SMS?
Yes. A single emoji switches the whole message to UCS-2, cutting the per-segment limit from 160 to 70 characters, so the same text can cost several times more than a plain GSM-7 version.
Is this SMS counter accurate for Twilio, Vonage, and other providers?
Yes — GSM-7 and UCS-2 segmentation is a GSM standard every A2P provider follows, so the segment count matches Twilio, Vonage, Sinch, smsroute and any carrier-grade route. The only difference between providers is the per-segment price.
What is the cheapest way to send long SMS?
Stay in GSM-7 and keep the body at or just under a segment boundary (160, 306, or 459 characters). If you need rich characters, plan for the higher UCS-2 segment count up front rather than discovering it on the invoice.