WhatsApp official rules: phone-number count & message limits
Source: Meta for Developers official docs (WhatsApp Business Platform) Compiled: 2026-07-02 | Applicable model: v24.0 (Portfolio-based messaging limits)
1. Hierarchy (clarify the object relationships first)
Meta Business Account (Business Portfolio)
└── WABA (WhatsApp Business Account)
└── Phone number (Business Phone Number) = one WhatsApp Sender
- One phone number = one Sender (one-to-one; a single number cannot back multiple Senders).
- One Twilio Account can bind only one WABA; therefore the Sender ceiling on the Twilio side = that WABA's phone-number ceiling.
2. Phone number rules (Phone Number Limits)
| Item | Official limit | Notes |
|---|---|---|
| WABAs per Meta Business Account | 20 initially | Can request an increase |
| Phone numbers per WABA (unverified) | 2 | Combined across all WABAs in that Portfolio |
| Phone numbers per WABA (after verification) | up to 20 | Opened automatically by Meta after sustained, organized usage |
| Templates per WABA | 250 unverified; up to 6,000 after business verification | message templates |
Conditions to raise the number ceiling (2 → 20)
- Complete Business Verification, or
- Reach a messaging limit of 2,000
- Once met, Meta raises the number ceiling automatically; going beyond 20 requires sustained active usage + maintaining a high quality rating, released gradually by Meta.
Structural hard constraints
- A WABA can belong to only one Business Portfolio; it cannot be shared across multiple Portfolios.
- A WABA cannot be migrated between different business entities.
3. Message limit rules (Messaging Limits)
Officially, "message limits" are split into two completely independent dimensions:
- Messaging Limit — how many distinct users you can proactively reach within 24h (governs "how many people you send to")
- Throughput — per-second throughput + frequency to the same user (governs "how fast you send")
Dimension 1: Messaging Limit (reach breadth)
Official definition: within a rolling 24-hour window, how many distinct WhatsApp user numbers you can deliver messages to outside the customer service window.
Two core points
- Shared per Portfolio, not counted per number: all numbers under the Portfolio share the same quota; a single number can exhaust the whole Portfolio's quota. (New model since v24.0; the old version counted per number, with a first tier of 1,000.)
- Applies only to proactive (template) messages outside the customer service window: user-initiated messages, and your replies within the 24h window, do not count toward this quota.
Tier ladder
| Tier | Distinct users reachable in 24h |
|---|---|
| Initial (unverified) | 250 |
| First increase | 2,000 |
| Subsequent automatic scaling | 10,000 → 100,000 → Unlimited |
Scaling path from 250 → 2,000 (either one)
- Pass Business Verification, or
- Within a rolling 30 days, deliver 2,000 "outside-service-window" messages to distinct users using high-quality-rated templates
- Once done, Meta analyzes message quality and decides to approve / reject eligibility for automatic scaling.
Automatic scaling conditions after 2,000 (both must be met)
- All numbers and templates send high-quality messages (quality rating stays Green / good)
- At least half of the current limit was used in the past 7 days
- Meta evaluates every 6 hours and raises one tier automatically once met.
Quality Rating impact
- The rating is set by Meta based on user signals (blocks, reports, low engagement), weighted by recency.
- Dropping to Yellow freezes the current tier; dropping to Red may lower the limit.
- Quality takes priority over volume: with poor quality, no amount of volume will move you up a tier.
Dimension 2: Throughput (send rate)
| Item | Official rule |
|---|---|
| Overall throughput | Default 80 messages/sec (MPS), text and media alike; Meta auto-upgrades to 1,000 MPS free of charge (no request needed) once eligible (Unlimited messaging tier + 100k messages in 24h + quality rating ≥ Medium); exceeding returns Cloud API error 130429 (Twilio 63018) |
| Frequency to the same user | A per-recipient pair rate limit applies; exceeding triggers error 131056. The oft-quoted "1 message per 6 seconds" is a widely-cited third-party figure — Meta does not publish the exact rate |
| Burst | Up to 45 messages within 6 seconds, but it borrows from future quota; after a burst you must wait the corresponding time |
Related error codes
63018(Twilio side) / Rate Limit Exceeded — exceeded the per-second throughput tier131056— sending too fast to the same user63104— reached the phone-number count ceiling for that WABA63051— number locked by Meta due to no activity within 30 days (must re-register to reactivate)
4. Character length limits (supplementary)
| Message type | Limit |
|---|---|
| Non-template (free-form in-session message) | 4,096 characters |
| Template message | Body 1,024 characters (each variable {{n}} counts as 1); header 60 / footer 60 / button label 25 |
| Twilio API single request | 1,600 GSM characters |
5. One-line memo
- Phone-number count: unverified = 2; after verification ≤ 20; each Meta Business Account starts with ≤ 20 WABAs.
- How many people you can message: shared per Portfolio; 250 to start → 2,000 → (automatic) 10K → 100K → Unlimited; counts only outside-window template messages.
- How fast you can send: default 80 messages/sec (auto-upgrades to 1,000 once eligible); a per-recipient pair rate limit applies (exact rate not published by Meta).
- Receiving + in-window replies: not constrained by the above limits.
6. Key implications for multi-tenancy / scaling
- Adding numbers ≠ adding capacity: the Messaging Limit is shared across the Portfolio. To isolate capacity per tenant, you must split into separate Business Portfolios.
- Business Verification is the key to every ceiling: without it you are forever stuck at "2 numbers + 250 reach" and cannot enter any scaling path.
- Scaling path: tens to hundreds of distinct numbers require going through the ISV / Tech Provider Program (multiple subaccounts + multiple WABAs).
- Compliance prerequisite: Meta's commerce policy is strict on crypto-adjacent businesses — Business Verification and template review may both be rejected. It's advisable to validate entity eligibility before building out the architecture.
References (Meta official docs)
- Messaging Limits — https://developers.facebook.com/docs/whatsapp/messaging-limits/
- Business phone numbers — https://developers.facebook.com/documentation/business-messaging/whatsapp/business-phone-numbers/phone-numbers
- WhatsApp Business Accounts — https://developers.facebook.com/documentation/business-messaging/whatsapp/whatsapp-business-accounts
- About the Platform (throughput / frequency) — https://developers.facebook.com/documentation/business-messaging/whatsapp/about-the-platform
- Changelog (v24.0 Portfolio-based change) — https://developers.facebook.com/documentation/business-messaging/whatsapp/changelog
Errata — 2026-07-03 (verified against Meta for Developers / Twilio official docs)
- Templates per WABA: 250 applies to unverified businesses only; after business verification the cap is 6,000 per WABA (original text said just 250).
- Character limits: free-form in-session messages allow 4,096 characters (originally misstated as 1,024 — that is the template body cap, variables {{n}} count as 1 character); the "~550 characters, emoji ≤ 10" figure has no official source and was replaced with official values (header 60 / footer 60 / button 25).
- Throughput: upgrades are now automatic and free — Unlimited tier + 100k messages/24h + quality ≥ Medium → auto-upgrade to 1,000 MPS, text and media alike; "text-only 400/1000 needs approval, media ≤ 80" was the old model. Over-throughput returns Cloud API
130429(Twilio 63018).- "1 message per 6 seconds per user": Meta does not publish an exact pair rate; the figure is a widely-cited third-party value. Error 131056 and the ~45-messages-per-6-seconds burst are corroborated by multiple sources.
- All other key figures verified correct: numbers 2 → 20, portfolio-shared limits (since 2025-10-07), 250 → 2,000 → 10K → 100K → Unlimited, the 30-day rolling 2,000-message path, 6-hour evaluation cadence, Twilio 63018/63051/63104, Twilio 1,600 GSM characters per request.