The short answer to how to avoid paying for MMS is to leave files off the message, send a link to the image instead, and keep the text in plain GSM-7 characters so it stays a short SMS. Pay for a picture only when the picture is the message itself, such as a product shot that is the offer or a listing photo that gets the reply.

Only one thing turns a business text into MMS: an attachment. Emoji and long messages don't, but they inflate your SMS bill in a way that can cost as much as the MMS you were trying to avoid. This post covers both: what makes a text MMS, what quietly multiplies your segment count, and how to decide when the picture earns its price. The math uses Ready's Standard rate of $0.0075/segment plus a $0.0045 carrier fee, because that's the rate we can show you line by line.

What actually turns a text into MMS

MMS (multimedia messaging) is a different message type from SMS. Carriers and providers price it separately from SMS segments, and on most platforms one MMS costs more than one SMS segment. A text becomes MMS for these reasons:

  • An attachment. A photo, GIF, short video, PDF, contact card or audio file makes the message MMS. Through our API, adding a media_url to a send is what does it. Leave that field out and the message goes as SMS.
  • A group thread. On phones, a single conversation with several people in it is MMS. A bulk send through a platform isn't a group thread: POST /v1/messages/bulk sends each recipient their own text.
  • Some platforms convert long texts. A few providers and some phone messaging apps turn long messages into MMS automatically. On Ready, a long text goes out as multipart SMS and you're billed per segment. Before you write long copy on any other platform, check which behavior it uses.

Here's what does not make a text MMS, even though people often assume it does:

  • Emoji. An emoji changes the character encoding, not the message type. It's still SMS, just with smaller segments (more on that below).
  • Links. A URL is plain text. If an iPhone shows a preview card, the phone built that card after the text arrived. You weren't billed for an image. Carriers and phones often strip or skip those previews anyway, which our post on link unfurls explains.

How SMS segments are counted (and why emoji cost so much)

You pay for segments, not messages. The rules:

EncodingSingle-segment limitPer segment when splitTriggered by
GSM-7 (standard)160 characters153 charactersPlain letters, numbers, common punctuation
Unicode (UCS-2)70 characters67 charactersAny emoji or other non-GSM character

A single non-GSM character switches the whole message to unicode. You don't pay extra for the emoji alone. The other 140 characters get re-counted at the smaller limit too.

On Ready, curly quotes, long dashes and ellipses are swapped for plain versions before sending, so text pasted from a word processor won't flip your encoding. Emoji and accented or non-Latin characters outside the GSM set still will.

The same message, three ways

Take a 140-character appointment reminder:

  • Plain text: 140 GSM-7 characters fits in 1 segment.
  • Plain text plus one 🎉: 140 unicode characters, split at 67 each, is 3 segments.
  • Plain text at 175 characters: goes over 160, so it splits at 153 into 2 segments.

That one emoji triples the cost of the reminder. Nothing visible changed in the copy, and no attachment was added. The bill is just three times higher.

Worked example: photo vs. link vs. emoji on a 5,000-contact campaign

Assumptions for this example: 5,000 opted-in contacts, Ready Standard at $0.0075/segment plus the $0.0045 carrier fee per segment, and a promo about 150 characters long.

Option A: MMS with a product photo. 5,000 MMS messages. On Ready Standard an MMS is priced per message, not per segment: a flat $0.021 plus a $0.0095 carrier fee, $0.0305 in all, at any length. 5,000 × $0.0305 = $152.50. The thing to compare is whether that is worth it against Option B.

Option B: plain SMS with a link to the photo. 150 GSM-7 characters is 1 segment.

  • 5,000 × 1 = 5,000 segments
  • 5,000 × $0.0075 = $38, plus 5,000 × $0.0045 in carrier fees

Option C: the same SMS with two emoji added "for energy." 150 unicode characters at 67 per segment is 3 segments.

  • 5,000 × 3 = 15,000 segments
  • 15,000 × $0.0075 = $113, plus 15,000 × $0.0045 in carrier fees

Option C costs three times Option B. On Ready that is $180.00 all-in, more than the photo would have cost. The two emoji got you the price of a picture without the picture. If you're going to pay extra, pay for the thing that sells.

Replies also count. On Ready, a reply you receive is billed like a sent text (per-segment rate plus the carrier fee). A campaign that gets a 30% reply rate adds those inbound segments on top of the send cost, so build them into your budget.

When a picture is worth the MMS charge

A picture is worth paying for when it changes what the person does, and a link wouldn't do the same job. Good cases:

  • The image is the offer. One product at a specific price, a new menu item, a listing photo for a buyer who asked to see new listings. If the reply comes from seeing the picture, a link adds a step that loses people.
  • The image is the instruction. A parking map for an event or a photo of the entrance. People look at it on the spot, sometimes on a weak connection where loading a page fails.
  • The image gets scanned. A barcode or QR code that staff scan at a register works better inline than behind a link.
  • It's one-to-one. A contractor sending a before/after photo to one customer, or a clinic sending prep instructions as an image. The MMS cost on a single message is small, and the picture does the explaining.

Using MMS on a 10-message one-to-one thread costs almost nothing. Using MMS on a 20,000-contact campaign is a budget decision. Treat it as one.

For a longer look at the tradeoffs, see SMS vs MMS: when the extra cost is worth it.

When a link or plain SMS does the job

Most business texts don't need an image:

  • More than one image. A gallery, a catalog or a product page with variants belongs on a web page. One MMS can't show it well anyway.
  • Anything with detail. Order tracking, invoices, appointment details, policy changes. The words carry the meaning.
  • Reminders and confirmations. "Your appointment is Tuesday at 9 AM. Reply C to confirm." No picture improves that.
  • When you can measure clicks. A link tells you who opened it. An inline image doesn't.

Links have costs too. A URL adds characters, and a long tracking URL can push a 1-segment message to 2. Public shorteners like bit.ly cause bigger problems because carriers filter them. Our post on shared shorteners explains why a dedicated short domain is worth the setup.

How to avoid paying for MMS: a pre-send checklist

Run every campaign template through this list before it goes out:

  1. Is there an attachment? If so, check that the image is the reason someone replies. If it's decoration, cut it and link to it.
  2. Search for non-GSM characters. Emoji, accented letters and symbols such as ™ or €. Delete them, or decide on purpose that they're worth tripling the segment count.
  3. Count characters against the real limit. 160 if plain, 70 if unicode. If you're at 162, cut two characters. Those two characters double the cost.
  4. Shorten the link. Use your own short domain, not a public shortener and not a 90-character tracking URL.
  5. Cut the opt-out language down, but don't drop it. "Reply STOP to opt out" is short and required. Keep it, and trim the rest of the message instead.
  6. Check merge fields at their longest. {first_name} might be "Al" or "Maximiliana." Test the template with a long name so a 158-character message doesn't turn into 2 segments for some contacts. Names with accents can also switch the encoding to unicode for those contacts only.
  7. Do the multiplication before sending. Contacts × segments × (rate + carrier fee). If the result surprises you, fix the copy, not the budget.

If you rebill clients for texting, item 6 is usually why your provider's bill and your invoice don't match. The segment-count audit post walks through finding those mismatches.

What this looks like in the API

If you send from your own app, the difference between SMS and MMS is one field. This is a plain SMS:

POST https://api.tryready.com/v1/messages with header X-API-Key: <key>, an Idempotency-Key header set to any UUID, and body:

{"to": "+12125550199", "body": "Your order #1042 has shipped.", "consent_attested": true}

Adding media_url to that body sends a picture as MMS. If your code adds media_url by default, for example by always attaching a logo, every message you send is MMS. That's the most common way teams end up paying for MMS without meaning to. Make the field opt-in per message type. The messages API docs cover the full request.

Two more details matter for cost. Opt-outs, numbers on your Ban list and known landlines are refused up front and you aren't charged for them. A text held for the recipient's quiet hours is charged only when it actually sends. An inbox or API text is held only if sending reopens within 6 hours; otherwise it is refused with the reopen time.

The practical takeaway

The MMS charge is easy to avoid: an attachment is the only thing that turns a business text into MMS. The bigger cost leak is usually SMS segment inflation from emoji, unicode characters, merge fields and long links, because none of it shows up in the copy. Count segments before every campaign, attach a picture only when it is the offer or the instruction, and send a link for everything else.

If you want per-segment billing that shows exactly what each send cost, with the carrier fee itemized separately, our rates are on the pricing page. You can sign up and use the first 20 free one-to-one texts to test your templates' segment counts before you register.

Frequently asked questions

Does adding an emoji turn a text into MMS?

No, an emoji keeps the message as SMS but switches it to unicode encoding. That drops the limit from 160 characters to 70, or 67 per segment when the message splits. A 140-character text with one emoji becomes 3 segments instead of 1.

Is it cheaper to send a link than a picture by text?

Usually, yes. A link in a short plain-text message is one SMS segment, while an attachment makes the whole message MMS, which is priced separately. Long tracking URLs can push a message into a second segment, so use a short custom domain.

Why did my long text message cost more than one message?

Texts over 160 characters split into multiple segments of 153 characters each, and every segment is billed. A 175-character plain message is 2 segments. On Ready a long text stays multipart SMS, but some other platforms convert long texts to MMS.

When is MMS worth paying for in a marketing campaign?

MMS is worth it when the image itself drives the response: a single product at a price, a listing photo, a map, or a scannable code. If the picture is decoration, or there's more than one image to show, a link to a web page does the job for the price of plain SMS.

How do I calculate what an SMS campaign will cost before sending?

Multiply contacts by segments per message, then by the per-segment rate plus the carrier fee. On Ready Standard that's contacts × segments × ($0.0075 + $0.0045), excluding the optional compliance surcharge. Budget for inbound replies as well, since they're billed like sent texts.

Ready's all-in prices per segment include the carrier fee but not screening: Scrub lists and Number validation, the two switches in Settings under Compliance, each add $0.003 per segment when switched on, shown as screening on your bill, and both are off by default. Unless you turn the opt-out footer off, the first text to each contact, and one again from time to time, also gets "Reply STOP to opt out" and your business name if the message does not already have them, so a text close to the segment limit can bill one more segment.