A good mass texting service should do six things for you: register your 10DLC brand and campaign, honor STOP across every campaign, hold sends outside the recipient's quiet hours, catch landlines before you pay for them, report what was delivered, and send from a local number when you want it to. The per-segment price matters, but a service that skips any of those six can cost you more in filtered texts and legal exposure than you save on the rate.
This post is a checklist you can take to any vendor demo. We make Ready, so for each item we show how Ready handles it, what it costs, and where a different kind of tool is a reasonable choice. You can check the claims yourself in the docs links along the way.
What a mass texting service has to handle before you send
Sending one text to 5,000 people is easy. Sending it so that carriers deliver it, opted-out people never see it, and nobody in California gets it at 5 AM takes more work. Here is the checklist in one table:
| Check | Why it matters | Question to ask the vendor | How Ready handles it |
|---|---|---|---|
| 10DLC registration | Carriers filter unregistered traffic | "Do you file the brand and campaign, or do I?" | Filed in-app. $25 at submit. Most approvals take 2 to 7 days |
| Opt-out handling | Texting someone after STOP creates TCPA exposure | "Does STOP apply across every campaign and API send?" | Automatic, applies account-wide, and refused sends aren't charged |
| Quiet hours | Time of day is set by the recipient's location, not yours | "Is the hold based on the recipient's area?" | Held and sent later, charged only when it sends |
| Landline validation | Landlines can't receive SMS | "Do you check before charging me?" | Optional, $0.003 extra per segment when on |
| Delivery reporting | You need to reconcile sends against the bill | "Can I pull message history and get webhooks?" | GET /v1/messages, webhooks, carrier fees itemized |
| Local presence | Contacts see a number from their own area code | "Does it stay on my registered campaign?" | Listed price $0.0015 for each segment of a delivered text |
The sections below go through each row. For a broader version of this checklist aimed at API buyers, see how to choose a CPaaS SMS provider.
1. 10DLC registration handled for you
If you send application-to-person texts from a regular 10-digit US number, carriers expect a registered brand (your business) and a registered campaign (what you send and why). Unregistered traffic gets filtered. If you need the background, read our 10DLC explainer.
Some vendors hand you a form link and leave the rest to you. Ask who writes the sample messages, who handles a rejection and who pays the fees.
On Ready, brand and campaign registration happen inside the app. There's no setup fee. The charge when you submit is the first month, $25. After that the monthly cost is $25 for registration and $2 per number. Most approvals take 2 to 7 days.
While you wait:
- An account can send up to 500 texts a month before it registers, at its normal per-text rate. After that it has to register.
- If you bought a number before registering, it sends on Ready's shared registration at the same per-text rate while your own registration is in review.
- The first 20 texts are free one-to-one sends. A campaign is paid from the first text. The free texts end the moment you pay for a registration, so use them to test before you register. To send, you add a card and get a number, which is $2 a month with the first month charged when you get it.
Most senders don't need optional brand vetting ($79 Standard / $179 Enhanced, one-time). It's worth considering once your volume runs into carrier caps, which we cover in the cost section below.
2. Opt-out handling and quiet hours
STOP has to apply everywhere
The most common way a mass texting setup gets into trouble is a contact who replied STOP to one campaign and then got a text from another. Ask the vendor whether opt-outs apply per campaign, per number or per account.
On Ready, an inbound STOP or UNSUBSCRIBE is honored automatically and applies across the account, so that contact can't be messaged again from any campaign. If you send through the API, opted-out numbers are refused up front and not charged. Your app can also check them directly with GET /v1/opt-outs or GET /v1/opt-outs/:phone (opt-outs docs).
Quiet hours follow the recipient
A campaign scheduled for 8 AM Eastern arrives at 5 AM in Los Angeles. Ready holds sends outside permitted local hours based on the recipient's area, sends them later, and charges only when the text actually goes out. 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.
This reduces risk. It does not make you immune to lawsuits. Compliance is still the sender's responsibility, and that includes having consent in the first place. Ready records your opt-in attestation for each bulk send and each API send that sets consent_attested: who sent it, to how many people and when. That is an audit trail of your promise. It is not a per-contact consent record. Your signup form or store has to keep each contact's opt-in time, wording and page URL. Our post on what a 10DLC compliance platform should do covers who is responsible for what.
3. Landline validation and litigator scrubbing
Landlines can't receive SMS
Lists that came from older forms, imports or a previous CRM often include landlines. Numbers Ready's own sends have already seen as landlines are refused up front on every account, free. With landline validation switched on ($0.003 extra per segment, off by default), numbers a lookup marks as landlines are refused too. You can also validate a single number with GET /v1/validate/:phone before it ever enters a campaign.
Here is the tradeoff. Validation is charged per segment, on every send. On a fresh, opted-in list that is almost entirely mobile numbers, it can cost more than the landline texts it stops. It earns its keep on older or imported lists. Turn it on when you're unsure where a list came from, and leave it off for a list you collected yourself last month.
Scrubbing is the cheaper half of TCPA risk
TCPA damages commonly run $500 to $1,500 per text. Ready offers scrubbing against known TCPA-litigator and DNC-complainer lists in two ways:
- Account switch: $0.003 extra per segment on sends while it's on. Off by default.
- Standalone scrub: $0.005 per contact, checked once, with matches suppressed before you send. Single numbers use
GET /v1/scrub/:phone.
A standalone scrub of 5,000 contacts costs $25. We show that comparison in full in one TCPA lawsuit vs scrubbing your whole list.
One more point: mass texting is for people who opted in or replied to you. If you're reaching cold contacts, use phone and mail. A scrub doesn't turn a cold list into a consented one.
4. Delivery reporting you can reconcile
"98% delivered" on a dashboard tells you very little. You need message-level history you can match against your bill. Ask the vendor for three things:
- Can I read every message by API, not just in a dashboard?
- Do status updates arrive by webhook, or do I have to poll?
- Is the carrier fee shown separately on the invoice?
Ready answers yes to all three. GET /v1/messages returns your message history in pages using before_id, and webhooks are built in (the webhook docs list what they send). Billing uses prepaid credits through Stripe, and carrier fees are itemized separately so you can see what Ready charges and what the carrier charges. Our post on the carrier fee line item explains why that split matters.
If you're sending from your own app, the bulk endpoint looks like this (bulk docs):
POST https://api.tryready.com/v1/messages/bulk
X-API-Key: <key>
Idempotency-Key: 7f3c2a1e-0b9d-4e2f-9a61-2d4c8e5b1f00
{"to": ["+12125550199", "+15559876543"], "body": "Spring hours start Monday: open 8 AM to 6 PM. Reply STOP to opt out.", "consent_attested": true} Send an Idempotency-Key with every request. That way a retry after a network timeout won't send the same text twice.
5. Local presence
With local presence on, Ready sends from the number on your account that's closest to the contact's area code. It is on for every account: leave from out of an API send, or send from GoHighLevel as usual. In GoHighLevel, #from:even# spreads new contacts across the numbers in the local area-code group, and a contact keeps the number it already texts with.
Local presence has a listed price of $0.0015 for each segment of a delivered text. Every number still sits on your registered 10DLC campaign, so local presence chooses among registered numbers and doesn't bypass registration. Teams turn it on because a local area code looks familiar to the recipient. We don't publish a reply-rate lift figure, so test it on your own list.
What it costs: a worked example
Ready has one rate, Standard: $0.0075/segment plus a $0.0045 carrier fee. That all-in figure excludes the compliance surcharges described above. Replies you receive are billed the same way. Enterprise pricing is custom, so talk to us if you need it.
Example assumptions: 5,000 opted-in contacts, local presence off, validation and scrubbing off.
- 160-character text, plain GSM characters: 1 segment each. 5,000 segments × $0.0075 = $38, plus 5,000 × $0.0045 in carrier fees.
- 175 characters, no emoji: 2 segments each (multipart segments hold 153 characters). That's 10,000 segments, or $75 plus 10,000 × $0.0045.
- 175 characters with one emoji: the emoji switches the whole message to unicode, which holds 67 characters per multipart segment, so it becomes 3 segments. That's 15,000 segments, or $113 plus 15,000 × $0.0045.
The same message can cost 1x, 2x or 3x depending on length and one emoji, so editing the copy saves more than switching vendors. Ready swaps curly quotes, long dashes and ellipses for plain ones before sending, so those characters don't change the count.
Throughput is the other number to plan for. A fresh standard campaign with no vetting typically gets about 1 to 4 segments per second. At an assumed 3 per second, 5,000 segments take roughly 28 minutes. T-Mobile also caps daily volume by brand trust score, starting around 2,000 messages a day at the lowest tier. If your campaigns regularly go past that, that's when brand vetting is worth paying for.
To be honest about price: if you only need the lowest per-text rate and have engineers to build registration, opt-out handling and quiet hours yourself, a raw CPaaS like Twilio at about $0.0083/segment charges less per text. GoHighLevel's LC Phone, at roughly $0.0083 per message (about $0.0128 all-in), also costs less per message. What Ready offers instead is self-serve registration (most approvals take 2 to 7 days), plus the full platform included: CRM, pipeline, automations and a unified inbox. Our bulk SMS API guide covers the build-it-yourself route in more detail.
FAQ
What is a mass texting service?
It's a platform that sends one text, or a personalized template, to many opted-in contacts at once, while handling carrier registration, opt-outs and delivery tracking. In the US, that means 10DLC registration for regular 10-digit numbers.
Do I need 10DLC registration to mass text?
Yes, for application-to-person texting on 10-digit numbers. On Ready you can send up to 500 texts a month before registering. Most approvals take 2 to 7 days, and the first month ($25) is charged when you submit.
How much does mass texting cost on Ready?
$0.0075/segment plus a $0.0045 carrier fee on the Standard rate. The rate doesn't change with volume. Scrubbing and landline validation each add $0.003 per segment if you switch them on, and local presence has a listed price of $0.0015 for each segment of a delivered text.
Does Ready stop me from texting people who opted out?
Yes. STOP is honored automatically across all campaigns, and API sends to opted-out numbers are refused and not charged. You're still responsible for collecting consent and keeping each contact's opt-in record.
Can I send mass texts as iMessage?
Not as campaigns. Campaigns and drip campaigns send from regular numbers. The blue line ($99 a month per line plus 6 cents a segment) is designed for conversations, with up to 50 new conversations per line per day.
The short version
Use the six-row table as your checklist. Any vendor you shortlist should answer all six questions clearly, in writing. Then calculate the cost with your real message length, because segments, not contacts, determine your bill. If you want to see how Ready handles each item, create an account, send your 20 free one-to-one texts before you register, and compare the rates on our pricing page.