SMS segment calculator

Carriers bill SMS by the segment, not the message. Type what you want to send and watch where it splits, which encoding it lands in, and what each part reserves for reassembly.

What decides a segment

A single SMS carries 140 bytes. How many characters that holds depends on the alphabet. Plain Latin text packs into the 7-bit GSM-7 alphabet at 160 characters per message. The moment you include a character that alphabet can't represent, like an emoji, an accented script, or a curly quote, the whole message switches to 16-bit UCS-2 and the limit drops to 70.

Go past the limit and the message is split into parts. Each part reserves a small User Data Header so the receiving phone can stitch them back together in order, which is why a concatenated message holds 153 GSM-7 characters per part instead of 160 (or 67 instead of 70 in UCS-2). The calculator below shows that split live as you type.

GSM-7

The default 7-bit alphabet: A–Z, digits, common punctuation, and a handful of European letters. 160 characters standalone, 153 per part once split. A few symbols cost two characters each: curly braces, square brackets, ^, ~, |, backslash and €.

UCS-2

The fallback for anything GSM-7 can't encode. 70 characters standalone, 67 per part. One stray emoji moves the entire message here, so it's worth knowing before you hit send.

Check your message

Paste or type below. The counts update as you go, and the character map flags anything that costs extra.

Everything is counted in your browser. Your message never leaves this page.

Zacznij od jednego kanału.
Dodaj kolejne, gdy będziesz gotowy.

Testowy klucz API otrzymasz od razu. Dostęp produkcyjny odblokujesz po dodaniu metody płatności i weryfikacji nadawcy.

Używasz Claude Code, Cursor lub Codex? Skopiuj prompt konfiguracyjny, a Twój agent zainstaluje za Ciebie Bird CLI i umiejętności. Wybierz swój:

Cursor