Skip to main content
Carriers split a long message into parts and bill each part. POST /v1/sms/send charges country credit rate × segments. The limit is six segments. So the ceiling is 918 GSM-7 characters, or 402 UCS-2 characters. One character outside the GSM alphabet moves the whole message to UCS-2. French OTP copy is held to GSM-7 so a French code costs the same number of segments as English. The send response reports segments and encoding. OTP sends are single-segment templates; you do not control the body.

Character rewriting

Most UCS-2 messages are an accident. A naira sign, a curly apostrophe pasted from a word processor, or a single emoji is enough to halve how much fits in a part — a 191-character rent notice costs three parts instead of two over one ₦. Workspaces therefore have sanitize_symbols on by default (Settings → General → Message characters). With it on, the body is rewritten before it is measured and billed: Three rules bound it:
  • Characters GSM-7 already carries are never touched — $, £, ¥, €, §, and the accented letters in the GSM alphabet, so Réservé passes through unchanged.
  • A letter or digit is never removed. One with no ASCII equivalent — Chinese, Arabic, Cyrillic — is kept as written, and the message stays in UCS-2.
  • The rewrite is dropped whenever it would not lower the part count, so it can never make a send cost more.
The send response’s sanitized field says whether the body was rewritten. Turn the setting off to have bodies delivered exactly as sent.