Skip to content
imessageapi

The real cost of iMessage vs SMS for a small business

One is free to deliver and costs you access. The other has a carrier fee per segment and gets expensive precisely when it works. Here is how to model it before you commit.

7 min readUpdated August 14, 2026Why iMessage

Messaging bills surprise people because the unit is not the message. It is the segment. An SMS is 160 characters of GSM-7; go over and the carrier splits it, and you pay for each piece. Add a single emoji and the whole message switches to UCS-2 encoding, dropping you to 70 characters per segment. A cheerful 200-character text with one emoji can cost three times what you budgeted.

The emoji tax is real

One 👍 in a 150-character SMS turns a one-segment message into a three-segment message. Over 5,000 sends that is a genuine line item. On iMessage it costs nothing — which is one more reason to want the blue path.

The three cost layers

  1. Platform access. What your provider charges monthly for a number and API access. Fixed, predictable, and the number most people compare on.
  2. Per-message delivery. iMessage sends have no carrier fee. SMS and MMS do, and MMS costs meaningfully more than SMS. This is where volume bites.
  3. Everything around it. Number provisioning, registration, and — if you self-host — the Mac, the power, and the hours. The self-hosting comparison prices that honestly.

Model it before you buy

Work out the split in your own list first. If 60% of your customers are on iPhone, 60% of your sends are free at the carrier layer, and your bill is much less scary than the SMS-only quote suggests. If you serve a market skewed to Android, plan for the SMS rate as your baseline and treat iMessage as the upside.

cost-model.ts
// Rough monthly model. Substitute your provider's live rates.
const CUSTOMERS = 1200;
const MSGS_PER_CUSTOMER = 2; // per month
const IPHONE_SHARE = 0.55; // measure this in your own list
 
const SMS_RATE = 0.012; // per segment — check your provider
const IMESSAGE_RATE = 0; // no carrier fee
const PLATFORM_MONTHLY = 49;
 
const sends = CUSTOMERS * MSGS_PER_CUSTOMER;
const blue = sends * IPHONE_SHARE;
const green = sends - blue;
 
// Assume 1.4 segments average — most templates run slightly long.
const monthly =
PLATFORM_MONTHLY + blue * IMESSAGE_RATE + green * 1.4 * SMS_RATE;
 
console.log(`~$${monthly.toFixed(2)}/mo for ${sends} sends`);

The cost that actually matters

None of the above. For a service business, one recovered no-show usually pays for a month of messaging. The question is not what the channel costs, it is what a kept appointment is worth — and if you cannot answer that, you cannot evaluate any channel. Measuring the ROI of texting sets up that calculation properly.

Set the comparison against your current spend, not against zero. If messaging costs $80 a month and lets you cut $400 of ad spend that was buying the same repeat customers, the messaging bill is not a cost at all.

Write short and you pay less

Short messages are cheaper on SMS, more readable everywhere, and better received. The constraint improves the writing. Put the detail behind a tagged link instead of in the body — see the UTM guide for keeping those links short.

Next step

Generate a tagged link for whatever you send next with the UTM builder, see what this looks like in your industry, or compare the services that can send it on the providers page.