Blue Reacher
Message formatting and limits36 / 46

Message formatting and limits

Text, media, links, emoji encoding, and exactly what survives when a message falls back from iMessage to SMS.

Every message you send through Blue Reacher delivers on one of two channels: imessage, or sms when the recipient cannot take a blue bubble. The two do not accept the same content. This page tells you what each one carries, what gets rewritten on the way down, and what to build so a single payload works on both. (RCS columns below are reference for recipients whose devices render rich SMS; the platform's own fallback is SMS.)

Text

Message text goes in the message field as UTF-8. Whitespace is preserved, including line breaks (\n). There is no markdown rendering on any channel. Asterisks stay asterisks.

Length

The API does not publish a length limit for message. Keep a first touch on a cold thread short, a few sentences. Save the long version for the reply.

SMS segment math

SMS is the only channel where character count costs money. The encoding your text triggers decides how many characters fit per segment.

EncodingSingle messagePer segment when splitTriggered by
GSM-7160 chars153 charsPlain ASCII letters, digits, basic punctuation
UCS-270 chars67 charsAny emoji, curly quote, ellipsis character, em dash or en dash character, accented letter, non-Latin script

One curly apostrophe pasted from a doc editor cuts your SMS capacity by more than half. Strip smart punctuation before you send: replace curly quotes with straight quotes, the ellipsis character with three periods, and long dash characters with a comma or a period. In GSM-7, the characters ^ { } [ ] ~ \ | and the euro sign each count as two.

Emoji

iMessage and RCS render the full current Unicode emoji set, including skin tone and multi-person sequences. SMS renders whatever the receiving handset supports, so emoji added after roughly 2021 can land as an empty box on older Android devices.

Two rules that matter operationally:

  • One emoji in an SMS-fallback message costs you 90 characters of capacity. Decide whether it earns that.
  • A skin tone modifier or a family sequence is several code points, not one character. A single such emoji can consume 7 to 11 characters of your budget.

Emoji in the message field never affect iMessage deliverability. They affect SMS cost and SMS rendering only.

Media

Attach one file per message with attachments, which takes a single public https:// URL.

Your media URL must:

  • Use HTTPS with a valid certificate
  • Be publicly reachable, with no login or authentication wall
  • Answer a HEAD request with Content-Length and a correct content type

Supported types and size limits

One attachment per message, up to 5 MB. Sending more than one URL is refused with a 400.

Voice memos

An audio file in attachments is sent as a voice note. mp3, m4a, ogg and wav work, and mp3 is the safe choice. On iMessage a line with Advanced Mode on sends it as a real audio bubble, and a line without it sends a file the contact taps to play. SMS fallback carries no audio, so set channel to imessage rather than default.

A bare URL in message renders as a rich preview card on iMessage. The preview is built on the recipient's device from your page's Open Graph tags, not by Blue Reacher. For the card to appear you need og:title, og:description, and an og:image on a page that returns 200 to an anonymous request. If your page sits behind a bot filter or a cookie wall, the card fails and the recipient sees a plain blue link.

Put the URL on its own line at the end of the message. A URL in the middle of a sentence still previews, but the card pushes the rest of your copy down.

Why public URL shorteners hurt you

Do not send bit.ly, tinyurl.com, or any other shared shortener domain. Four concrete reasons:

  1. Reputation is shared. Carrier SMS filters score the domain, not your account. Every spam campaign that used that shortener this month is part of your score.
  2. Several public shortener domains are already on US carrier blocklists. The message is dropped silently and you are billed for it.
  3. Each redirect hop is another chance for the preview fetch to time out. Two hops means the iMessage card usually fails to build.
  4. Recipients cannot see the destination. A hidden destination in an unsolicited message reads as a scam, which drives the report rate that governs your line health.

Use a subdomain you control, like go.yourcompany.com, with a valid certificate and exactly one redirect. Send it on warm threads first. Never put a link in the first message of a cold thread.

What survives the fallback

When a recipient is not reachable on iMessage, the message steps down to SMS. Content is rewritten on the way. Assume the SMS version is what a fallback recipient will see and write the copy so it still works there.

FeatureiMessageRCSSMS
Plain textYesYesYes, split into segments
EmojiFull supportFull supportHandset-dependent, costs capacity
Line breaksYesYesYes
ImagesYesYesDownscaled
Animated GIFYes, animatedYes, animatedFirst frame only
VideoYes, inlineYes, transcodedHosted link
Voice memo bubbleYes, with waveformAudio file, plain playerHosted link
PDFYes, inlineHosted linkHosted link
Link preview cardYesYesNo, raw URL
Typing indicatorYesYesNo
Read receiptsYes, if recipient enables themYes, if recipient enables themNo
Delivery receiptYesYesCarrier-level only
Inbound reactionsYes, as the reaction field on the messageYes, as the reaction field on the messageText like "Liked ..."
Blue bubbleYesNoNo

Every Blue Reacher line is a dedicated iMessage line, managed for you, with no A2P registration required. The fallback channels carry the same content rules described above.

Sending media

Pass one public https:// URL in attachments. A message can carry one file of up to 5 MB, with or instead of text.

curl -X POST https://api.bluereacher.com/v1/messages \
  -H "Authorization: Bearer <ACCESS_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "workspace_id": 7,
    "phone": "+14155550199",
    "channel": "default",
    "message": "Here is the walkthrough I mentioned.",
    "attachments": "https://cdn.yourcompany.com/clips/walkthrough.mp4"
  }'
{
  "success": true,
  "message": "Message queued for delivery.",
  "data": {
    "id": 84213,
    "status": "webhook_sent",
    "message_id": "84213",
    "conversation_id": 512,
    "channel": null,
    "queued_at": "2026-11-05T09:00:00.000Z"
  }
}

Serve the file over public HTTPS with no auth wall. An audio file (mp3, m4a, ogg or wav) in attachments is sent as a voice note on iMessage, so name one of those in channel rather than default, which may route to SMS. Check the outcome with GET /v1/messages/{id}.

On this page