Mass texting means sending one message to many phone numbers at once: a sale announcement to 3,000 customers, a schedule change to 400 parents, a restock alert to everyone who asked for one. If you searched the slang term in this page's URL, this is the same thing. That word comes from the era when businesses loaded a spreadsheet into a gateway, hit send, and hoped for the best.
The hit-send-and-hope approach no longer works. US carriers filter unregistered business traffic, the TCPA puts statutory damages of roughly $500 to $1,500 on each unwanted text, and a list that never opted in gets your number blocked within days. This post covers how a bulk send moves from your screen to a phone, what separates a compliant campaign from spam, what it costs per message, and the habits that keep you out of carrier filters.
How a bulk SMS send actually works
A bulk campaign is many individual messages, not one broadcast. When you send to 2,000 contacts, the platform builds 2,000 separate messages and hands them to carrier infrastructure, which delivers each one to the recipient's carrier (T-Mobile, AT&T, Verizon and so on).
Each step has a gate:
- Your platform checks that the recipient hasn't opted out and, if you've switched them on, runs litigator/DNC scrubbing and landline validation.
- Quiet hours hold any message that would land outside permitted local hours for the recipient's area. It sends later. 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.
- Carrier throughput limits meter how fast segments leave. A fresh standard 10DLC campaign gets roughly 1 to 4 segments per second, and higher use-case tiers get tens.
- Carrier filtering inspects content and sender reputation. Unregistered senders, shortened links and spam-pattern wording get flagged.
Throughput surprises a lot of people. At an assumed 2 segments per second, 10,000 segments takes about 5,000 seconds, which is roughly 83 minutes, not the instant send you might picture. T-Mobile also caps daily volume per brand by trust score, starting around 2,000 messages a day at the lowest tier and rising through roughly 10,000, 40,000, 100,000 and 200,000.
Mass texting vs. a compliant campaign
The difference comes down to who is on the list and whether the sender is registered.
| Old-style mass send | Compliant bulk campaign | |
|---|---|---|
| List source | Bought, scraped, or "everyone in the CRM" | Contacts who opted in to texts |
| Sender registration | None, or a personal phone | A2P 10DLC brand + campaign registered |
| Opt-out | Ignored or manual | STOP honored automatically, across all campaigns |
| Timing | Whenever you hit send | Held to permitted local hours |
| Deliverability | Filtered, then blocked | Carried on registered routes |
| Legal exposure | High | Reduced, though still the sender's responsibility |
Our stance on cold contact: cold outreach goes by phone and mail, and SMS goes to people who consented or who already replied to you. Texting a purchased list is the fastest way to lose a number, and it's where most TCPA suits start.
The rules you need to know
10DLC registration
Any business texting from a standard 10-digit number in the US has to register a brand and a campaign with the carriers. That campaign describes your use case and includes sample messages. Unregistered traffic gets filtered. Our 10DLC explainer covers the background. If your sample messages get bounced, this rewrite guide walks through what reviewers are looking for.
On Ready, registration runs in the app. It costs $25/mo for registration plus $2 per number. There's no setup fee: the charge at submit is the first month, $25. Most approvals take 2 to 7 days. While you wait, an account can send up to 500 texts a month before registering, at the normal per-text rate.
TCPA consent
The TCPA requires prior express written consent for marketing texts. That means a checkbox, a keyword opt-in or a signed form that clearly says the person agrees to receive marketing texts. Keep that record in your own store or CRM: the opt-in time, the wording and the page URL. Ready records the sender's attestation on each bulk send and each API send that sets consent_attested (who sent, to how many, when), which builds an audit trail. It doesn't replace your per-contact consent records. If you're building opt-ins from scratch, text-to-join keywords are the cleanest way to start.
Opt-outs and quiet hours
Every recipient must be able to reply STOP and never hear from you again. Ready honors STOP and UNSUBSCRIBE automatically, and the opt-out applies to every campaign, so a contact who opts out of promos doesn't get your next newsletter either. Quiet hours hold sends based on the recipient's area, so an 8 AM Eastern send doesn't wake up your California list at 5 AM. 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.
Special cases
Advocacy alerts, donation appeals and voter outreach need our written OK before the first send. Email support@tryready.com and wait for our reply; signing up and registering isn't enough on its own for these.
None of this makes a sender immune to lawsuits. Compliance stays your responsibility. The tooling just removes the most common ways senders get it wrong.
What a bulk campaign costs: worked examples
Carriers bill by segment, not by message, so length and characters change the price.
- A plain-text (GSM-7) message fits 160 characters in one segment. Longer messages split into 153-character segments.
- One emoji switches the whole message to unicode: 70 characters for a single segment, 67 per segment when it splits.
Ready's Standard rate is $0.0075 per segment plus a $0.0045 carrier fee per segment, $0.012 all-in.
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.
Example 1, assumptions: 2,000 opted-in contacts, a 150-character message, no emoji.
- 1 segment each, so 2,000 segments
- Rate: 2,000 × $0.0075 = $15
- Carrier fee: 2,000 × $0.0045 = $9
- Total: $24
Example 2, assumptions: the same message with one emoji added.
- 150 characters at 67 per unicode segment means 3 segments each, so 6,000 segments
- Rate: 6,000 × $0.0075 = $45
- Carrier fee: 6,000 × $0.0045 = $27
- Total: $72
That one emoji triples the bill. If scrubbing is on for your account, add 6,000 × $0.003 = $18. It stays on for every send until you turn it off.
On price, Twilio and GoHighLevel/LeadConnector cost less per segment than Ready Standard. Raw CPaaS APIs are priced at or below our rate too. What Ready adds is the stack around the send: in-app registration, STOP handling, quiet hours, scrubbing, an Inbox and native GoHighLevel sync. Per-seat texting tools and subscription plans are where the math usually tips the other way.
Best practices to avoid filtering
- Text only opted-in contacts. Complaint rates drive most blocking.
- Ramp a new number. Don't send thousands of messages from a day-old number. Start small and grow volume over a week.
- Hold the link in a first-touch message. A link in the very first text to a new contact is a strong filter signal. This post explains the two-message approach.
- Use your own domain, not a public shortener. Shared shorteners are heavily abused and widely filtered.
- Identify yourself and include opt-out language. "Ready Coffee: 20% off beans this weekend. Reply STOP to opt out."
- Match your registered use case. Promos sent on a campaign registered for appointment reminders get flagged.
- Segment instead of sending to everyone. Smaller, relevant sends get fewer complaints. See five segmentation splits.
- Run copy through a spam check. Ready's AI message writer includes a spam-filter check before you send.
Sending in bulk from code
Platforms and developers can send the same message to up to 100 recipients per call:
POST https://api.tryready.com/v1/messages/bulk
X-API-Key: <key>
Idempotency-Key: <uuid>
{"to": ["+12125550199", "+15559876543"], "body": "Ready Coffee: new roast drops Friday. Reply STOP to opt out.", "consent_attested": true} For larger lists, split them into batches of 100. The API refuses opt-outs and numbers on your Ban list up front and doesn't charge for them. Details are in the bulk messages docs.
The practical takeaway
Mass texting still works. What changed is the price of doing it carelessly. Register your brand and campaign, text people who said yes, keep messages in plain text when you can, and let the platform handle STOP and quiet hours. Do that and a bulk send is a reliable channel rather than a liability.
If you want to try it, sign up with a card on file. The first 20 texts are free one-to-one sends, so use them to test before you register. Campaigns are paid from the first text. Full pricing is at tryready.com/pricing.