Enterprise SMS solutions are texting platforms that register many brands, send high volume within carrier limits, and keep opt-outs, access and send history consistent across every team and sub-account. If you're evaluating one, the per-segment price matters less than seven things: registration at scale, throughput, user permissions, API and webhooks, opt-out sync, audit history and number management.
This post is the checklist we would use to evaluate a vendor, with Ready as the worked example. We make Ready, so treat our answers as one vendor's answers and ask every other vendor the same questions. Where Ready is not the right fit, we say so.
The enterprise SMS solutions checklist
"Enterprise grade SMS," "enterprise SMS marketing" and "enterprise texting platform" all describe the same buyer problem. You aren't sending one campaign from one number. You're sending for many brands, teams or customers, and one compliance mistake can hit all of them.
Here is the checklist in one table. The rest of the post covers each row.
| Requirement | What to ask the vendor | How Ready handles it |
|---|---|---|
| Registration at scale | Can each customer or team get its own 10DLC brand and campaign, registered through an API? | Each sub-account gets its own numbers and registration. Most approvals take 2 to 7 days |
| Throughput | What per-second rate and daily cap will my traffic actually get? | Carrier-set. About 1 to 4 segments per second on a fresh standard campaign, more on higher tiers |
| Permissions and isolation | How are teams and customers kept apart? | The sub-account is the isolation unit. GHL locations map one-to-one to sub-accounts |
| API and webhooks | Is there idempotency? What are the batch limits? Are inbound events pushed to you? | REST API with an Idempotency-Key header, 100 recipients per bulk call, webhooks built in |
| Opt-out sync | Does STOP propagate everywhere? Can I read opt-outs back? | STOP is honored across campaigns. GET /v1/opt-outs lists opted-out contacts, the Ban list CSV under Settings, Compliance, Export adds STOPs from deleted contacts and do-not-call entries, and GET /v1/opt-outs/:phone answers for any one number |
| Audit history | What is recorded per send? | Consent attestation per bulk send and per API send that sets consent_attested, plus paged message history |
| Number management | Can I buy numbers through the API and control which one sends? | POST /v1/numbers, from_strategy, local presence |
Registration at scale
Unregistered A2P traffic gets filtered by carriers, so registration is the first thing that breaks when you grow. With 200 customers texting through your product, you have up to 200 brands to register, each with at least one campaign. If you do that in a carrier portal by hand, it takes up a person's whole job.
On Ready, every sub-account carries its own brand and campaign registration, and you can create sub-accounts through POST /v1/sub-accounts and check status with GET /v1/registration. Registration has no setup fee. The charge at submit is the first month, $25. After that the monthly cost is $25/mo for registration and $2 per number. Most approvals take 2 to 7 days.
The harder question for a platform is who the brand is: you or your customer. That decision drives everything downstream. We cover it in 10DLC for SaaS platforms, and the API mechanics are in the 10DLC registration API guide.
Ask any vendor what happens while registration is in review. On Ready, an account can send up to 500 texts a month before it registers, at its normal per-text rate. An account that bought its number before registering sends on our shared registration at the same rate while its own registration is reviewed.
Throughput: per-second rates and daily caps
Carriers set throughput, and they don't publish an official rate card, so treat every figure here as a round approximation.
- Per-second rate (per campaign): about 1 to 4 segments per second for a fresh standard campaign with no vetting. Higher use-case tiers get tens, roughly 10 to 75.
- T-Mobile daily brand cap by trust score: about 2,000, 10,000, 40,000, 100,000 or 200,000 messages a day, lowest trust score first.
- AT&T throttles per second and per minute rather than with a hard daily cap.
Worked example: a 60,000-segment promo day
These are example assumptions, not a measured case: 60,000 segments in one day.
- At an assumed 10 segments per second: 60,000 ÷ 10 = 6,000 seconds, about 1 hour 40 minutes.
- At an assumed 3 segments per second: 60,000 ÷ 3 = 20,000 seconds, about 5.6 hours.
Quiet hours shrink the usable window further. Ready holds sends outside permitted local hours based on the recipient's area, so a slow campaign can roll into the next morning. 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 with 409 QUIET_HOURS_BLOCK and must be resent; a one-to-one reply to someone who texted you in the last 24 hours goes out at any hour.
The daily cap is per brand, which matters a lot for platforms. Suppose those 60,000 segments go out as 20,000 messages split across 20 brands. That's 1,000 messages per brand, under even the lowest T-Mobile tier. If one brand sends all 20,000, it needs a trust score at the ~40,000 tier.
Brand vetting ($79 Standard / $179 Enhanced, one-time) raises the trust score. It moves the daily cap only if the score crosses a tier, and it doesn't change the per-second rate. Whether it pays off depends on your volume, which we work through in is 10DLC brand vetting worth $79.
User permissions and sub-account isolation
Large teams need hard walls. A franchisee should never see another franchisee's contacts, and one customer's bad list should never touch another customer's numbers.
On Ready, the wall is the sub-account. Each one has its own numbers, registration, contacts and conversations. For GoHighLevel users, the native OAuth integration maps each GHL location to its own sub-account, with two-way sync of inbound and outbound messages, so agencies keep each one isolated.
Inside a sub-account, you add each teammate as Admin, Full teammate, Member or Viewer, or build a custom role. A Viewer is read only. The team members docs list what each role can do. That advice applies to every vendor: confirm permissions in a live account, not from a feature grid.
API, webhooks and opt-out sync
The API basics that matter at scale
The base URL is https://api.tryready.com, and requests authenticate with an X-API-Key header. Send an Idempotency-Key (any UUID) with each request so a retry after a timeout never double-sends. At enterprise volume, retries are routine, and a double send means a double bill and an annoyed customer.
POST /v1/messages/bulk
X-API-Key: <key>
Idempotency-Key: 6f1c2b8e-3d4a-4f7e-9a1b-2c3d4e5f6a7b
{"to": ["+12125550199", "+15559876543"], "body": "Your appointment is tomorrow at 10 AM. Reply C to confirm.", "consent_attested": true} A bulk call takes at most 100 recipients, so 50,000 contacts means 500 batched calls. Some numbers are refused up front and not charged: opt-outs, numbers on your Ban list and known landlines. A text that lands in the recipient's quiet hours is held only if the window opens within 6 hours, otherwise it is refused with 409 QUIET_HOURS_BLOCK and has to be sent again; a held text is charged only when it actually sends. Full reference: messages, bulk messages and the quickstart. Webhooks are built in. Use the docs for event details rather than guessing at payloads.
If your team builds with AI agents, Ready also runs a remote MCP server (docs). Agents can use it to send texts, manage contacts and build campaigns, and a test key simulates sends.
Opt-out sync
This is where multi-system setups usually fail. A contact replies STOP in one tool, and another tool texts them the next day. On Ready, inbound STOP and UNSUBSCRIBE are honored, and the opt-out propagates so the contact can't be messaged again across campaigns.
To keep your own database in step, read GET /v1/opt-outs, or check a single number with GET /v1/opt-outs/:phone, before your system queues anything. For GHL-connected accounts, the two-way sync carries the conversation into GHL as well.
Audit history and number management
Audit history
Ready records the sender's consent attestation on every bulk send and every API send that sets consent_attested: who sent it, to how many recipients, and when. That gives you an audit trail of the promises your team made. It is not a per-contact consent record. We don't store each recipient's opt-in time, wording or page URL, and a keyword reply doesn't create one. Your signup form, CRM or app has to keep that evidence. Message history itself is available through GET /v1/messages, paged with before_id. (A contact who signs up on a Ready-hosted opt-in page is the exception: Ready stores that sign-up, with the time, IP address and exact wording, and support@tryready.com can send you a copy.)
Number management
You can list numbers with GET /v1/numbers, buy them with POST /v1/numbers, and choose how a send picks its number with from_strategy (local, even or random). Local presence sends from the account's number closest to the contact's area code, with a listed price of $0.0015 for each segment of a delivered text.
Local presence chooses among registered numbers. It doesn't get around registration: every number still sits on the account's registered 10DLC campaign. Teams use it because a local number tends to look more familiar to the recipient. We don't publish a measured reply-rate lift for it.
What it costs, and where Ready isn't the right fit
Ready's Standard rate is $0.0075/segment plus a $0.0045 carrier fee per segment, and it's the same flat rate for every account. Replies are billed the same way as sent texts. Two compliance options each add $0.003 per segment when switched on: scrubbing and landline validation. Both are off by default and are not included in the rate above. Enterprise pricing is custom, so talk to us.
Worked example (assumptions stated)
Assume a monthly volume of:
- A 140-character plain reminder to 50,000 consented contacts: 1 segment each, so 50,000 segments.
- A 175-character promo with one emoji to 20,000 contacts. The emoji forces unicode, so the message splits at 67 characters per segment: 3 segments each, so 60,000 segments.
The total is 110,000 segments. At the Standard rate, that's 110,000 × $0.0075 = $825, plus 110,000 × $0.0045 in carrier fees. With both compliance options on, add 110,000 × $0.003 × 2 = $660.
Remove the emoji and the promo becomes 2 GSM segments (153 characters each), which saves 20,000 segments, or 20,000 × $0.0075 = $150 in rate before carrier fees. Segment math is the cheapest optimization at enterprise scale. Every fee is broken down in 10DLC cost: every fee explained.
Honest fit
If you have engineers who want to build registration, opt-out handling and quiet hours themselves, raw CPaaS costs less per segment. Twilio lists about $0.0083 per segment, and GoHighLevel/LeadConnector runs about $0.0083 per message. Ready makes sense when you would otherwise build and maintain that compliance and sub-account layer yourself. Prices are on the pricing page.
FAQ
What is an enterprise texting platform? It's an SMS platform built for many senders at once. It handles per-brand 10DLC registration, isolation between teams or customers, an API with idempotent sends, opt-out sync and a send history you can audit.
How is enterprise SMS pricing handled at Ready? Standard is one flat $0.0075/segment plus a $0.0045 carrier fee. The optional compliance surcharge is separate. Enterprise pricing is custom and negotiated, so talk to us.
How long does 10DLC registration take? Most approvals take 2 to 7 days. The first month ($25) is charged at submit, and there's no setup fee.
Do we need brand vetting? Only if your daily volume is near a T-Mobile cap tier. Vetting costs $79 Standard or $179 Enhanced, one-time, and it raises the trust score but not the per-second rate.
Does a compliance stack make us lawsuit-proof? No. Scrubbing, quiet hours and opt-out handling reduce risk. TCPA exposure runs roughly $500 to $1,500 per text, and the standalone TCPA & DNC Litigator Scrub costs $0.005 per contact. Consent and compliance remain the sender's responsibility, and SMS should go only to consented or replied contacts.
The practical takeaway
Send the seven-row checklist to every vendor on your shortlist and compare the answers, not the brochures. Push hardest on registration per brand, throughput per brand, and whether opt-outs can be read back into your own systems.
To test Ready against the list, create an account. To send, you add a card and get a number, which is $2 a month with the first month charged when you get it. The first 20 texts are free, and they must be one-to-one sends. Use them before you register, because they end as soon as a registration is paid for.