Most bulk SMS price quotes show one number per message. The invoice shows several. A single US business text usually involves a provider rate, a carrier fee, a monthly registration charge and a phone number fee. Depending on how you write the message, it can also count as two or three billable units instead of one. If you budget from the headline rate alone, you will underestimate the bill.
This post breaks down every line that appears on a US bulk SMS bill. It uses our own pricing at Ready as the worked example because those are the numbers we can state accurately. It then runs the math at 1,000, 10,000 and 100,000 messages. It also says plainly where a raw carrier API will cost you less per text.
The four things you pay for
Every registered US business text from a 10-digit number carries four kinds of cost:
- The provider's per-segment rate. This is what the platform or API charges to send.
- The carrier fee fee. This is what the mobile carriers charge for business traffic. Some providers bury it inside their per-message price. Others itemize it. We wrote a whole post on how that carrier line item gets hidden.
- Registration (A2P 10DLC). This is a monthly charge for your brand and your campaign. Without it, carriers filter your traffic.
- Phone numbers. This is a monthly fee per number.
There are also optional extras, such as compliance scrubbing, landline validation and brand vetting. We cover those below because they change the per-segment math when you switch them on.
You pay per segment, not per message
This is the line item that surprises people most. Carriers meter segments, not messages, and every segment is billed.
- A plain-text message (GSM-7 characters) fits 160 characters in one segment.
- Longer than 160, it splits into segments of 153 characters each.
- Add one emoji or other non-GSM character, and the whole message switches to unicode. Each segment then holds 70 characters, or 67 when the message is split.
Ready swaps curly quotes, long dashes and ellipses for plain ones before sending, so those characters never change your count. Emoji still do.
A quick example
Here is the same 175-character promo written two ways:
| Version | Encoding | Segments |
|---|---|---|
| Plain text, no emoji | GSM-7 (153 per part) | 2 |
| Same text plus one emoji | Unicode (67 per part) | 3 |
That one emoji raises the cost of every send by 50%. On a 10,000-contact list, it adds 10,000 billable segments. Pictures are a separate issue; this post on avoiding MMS charges covers when an image is worth paying for.
Ready's rates, line by line
Here is what Ready charges. These are the only numbers we will use in the math.
- Per segment: $0.0075 on Standard, one flat rate for everyone, plus a $0.0045 carrier fee per segment. The carrier fee is itemized separately so you can see it on the bill.
- Inbound replies: billed like a sent text, at the same per-segment rate plus the carrier fee.
- Registration: no setup fee. When you submit, you pay the first month, $25. After that, the monthly cost is $25/mo for registration + $2/mo per number. Most approvals take 2 to 7 days.
- Compliance surcharges (optional, off by default): TCPA/DNC scrubbing adds $0.003 per segment and landline validation adds $0.003 per segment, each only if you switch it on for the account. Our quoted rate excludes these, so when we say "all-in" below, we mean the rate plus the carrier fee and nothing else.
- Brand vetting (optional): $79 Standard or $179 Enhanced, one-time. It is only worth it for higher-volume senders. This post explains when it pays off.
- Enterprise: custom pricing, so talk to us.
Billing is prepaid credits through Stripe, and to send any text you need a card and a number ($2 a month, the first month charged when you get it).
Free texts: your first 20 texts are free, and they must be one-to-one sends. A campaign is paid from its first text. Before you register, an account can send up to 500 texts a month at the normal rate. The free texts end the moment you pay for registration, so use them before you register.
For a deeper breakdown of the registration side, see 10DLC cost: every fee explained.
Worked math at 1,000, 10,000 and 100,000 messages
The examples below rest on four assumptions:
- Each message is a single segment: plain text, under 160 characters, no emoji.
- You have one brand, one campaign and one number, so registration is a fixed monthly cost, the same in every row below.
- Compliance surcharges are off.
- The list is opted-in. Cold contacts get a phone call or mail, not a text.
| Monthly volume | Ready rate (segments × $0.0075) | Carrier fee | Registration + number | Total a month |
|---|---|---|---|---|
| 1,000 | 1,000 × $0.0075 = $8 | 1,000 × $0.0045 = $4.50 | 1 brand + 1 campaign + 1 number = $27 | $39.00 |
| 10,000 | 10,000 × $0.0075 = $75 | 10,000 × $0.0045 = $45 | 1 brand + 1 campaign + 1 number = $27 | $147 |
| 100,000 | 100,000 × $0.0075 = $750 | 100,000 × $0.0045 = $450 | 1 brand + 1 campaign + 1 number = $27 | $1,227 |
1,000 messages
At this volume, the fixed monthly registration cost is large next to the send cost. Registration is a big share of the bill for small senders.
Unregistered accounts have a monthly text cap (see Free texts above). Once you regularly go past it, you have to register.
10,000 messages
The send cost is 10,000 × $0.0075 plus 10,000 × $0.0045, and fixed costs fade into the background. Now replies matter.
Assume a reply rate of around 10%. That number is an assumption, not a benchmark, since opted-in lists vary widely. At 10%, you receive 1,000 inbound segments, which adds 1,000 × $0.0075 plus 1,000 × $0.0045. Budget for replies, because they are billed like sends.
If you send through the API, POST /v1/messages/bulk takes at most 100 recipients per call. A 10,000-contact campaign is therefore 100 calls, each with its own Idempotency-Key header so a retried request never double-sends. See the bulk messages docs.
100,000 messages
The rate portion is 100,000 × $0.0075, and the carrier portion is 100,000 × $0.0045. At this volume, the cost questions shift from price to throughput.
- Send speed. A fresh standard campaign without vetting typically gets around 1 to 4 segments per second. At an assumed 3 segments per second, 100,000 segments take about 9.3 hours to send. Quiet-hours enforcement holds sends outside permitted local hours, so plan to spread a send this size across more than one day. Campaigns, drip campaigns and automations wait up to 24 hours for the window; a one-to-one or API text is held only if the window opens within 6 hours, otherwise it is refused and must be resent; a one-to-one reply to someone who texted you in the last 24 hours goes out at any hour.
- Daily caps. T-Mobile caps daily messages by brand trust score, at roughly ~2,000, ~10,000, ~40,000, ~100,000 or ~200,000 per day, lowest score first. Those figures are approximate. At this volume, the $79 or $179 vetting fee can earn its keep, but only if it moves your score across a tier.
The emoji tax, revisited
Rerun the 10,000-message example with the 175-character promo from earlier:
- Plain text: 2 segments × 10,000 = 20,000 segments. The rate portion is 20,000 × $0.0075, and the carrier portion is 20,000 × $0.0045.
- With one emoji: 3 segments × 10,000 = 30,000 segments. The rate portion is 30,000 × $0.0075, and the carrier portion is 30,000 × $0.0045.
That one emoji adds 10,000 segments at $0.0075 each, plus 10,000 more carrier fees. Trim the copy before you trim the provider.
If you switch on scrubbing
TCPA and DNC scrubbing on every send adds $0.003 per segment. Landline validation is another $0.003 per segment if enabled.
For context, TCPA exposure runs $500 to $1,500 per text, so a scrub is cheap risk reduction. It does not make you lawsuit-proof, and compliance is still the sender's responsibility. If you only want to clean a list once rather than every send, the standalone scrub is $0.005 per contact.
Where you will pay less per segment, honestly
Raw carrier APIs cost less per segment than our Standard rate. Twilio runs around $0.0083 per segment. GoHighLevel's LeadConnector is about $0.0083 per message, or roughly $0.0128 with fees. Telnyx, Plivo and Bandwidth sit in similar territory on the underlying carrier cost.
If you have engineers who will build registration flows, opt-out handling, quiet hours, scrubbing and an inbox themselves, a raw CPaaS gives you the lowest per-text bill.
What you pay for with Ready is everything around the send:
- registration handled in-app
- automatic STOP propagation across campaigns
- quiet-hours holds based on the recipient's area
- consent attestation logging for each bulk send and each API send that sets
consent_attested - a two-way inbox
- a native GoHighLevel integration
You can be live in minutes, and most approvals take 2 to 7 days. Whether that is worth the difference depends on what your team's time costs. Our comparison of bulk SMS pricing models goes provider by provider.
Where the comparison does favor a flat per-segment rate is against per-seat texting tools and subscription plans with overage tiers. At low or uneven volume, those charge you for capacity you don't use. Run your own monthly segment count against their plan before assuming either way.
How to estimate your own bill
- Count segments, not contacts. Paste your actual message into a segment counter and multiply by your list size.
- Add replies. Use your own reply history, or a cautious assumption.
- Multiply segments by the per-segment rate plus the carrier fee.
- Add fixed monthly costs: brand, campaign and numbers.
- Add any surcharges you switch on, such as scrubbing or landline validation.
- Check throughput if a single send goes past a few thousand.
The practical takeaway
The per-message price in an ad is one of four or five lines on a real bill. Segment count drives the biggest swings, so one emoji can raise a campaign's cost by half. Registration dominates at low volume and fades at high volume. Replies bill like sends.
If you want to run these numbers against your own list, the pricing page shows the per-segment card. You can sign up and use your 20 free one-to-one texts to test real messages before you register.