Rate limits and quality rating: the invisible ceiling every WABA operates under

A phone number doesn't get one send limit, it gets several stacked ones — and one of them isn't set by any config value at all, but by a rolling score Meta computes from how recipients react.

Intermediate

4 min read

Two completely different kinds of limit, easy to conflate

Throughput rate limit  - how fast messages can be sent, second to second
Messaging limit tier   - how many NEW business-initiated conversations
                          can be started per rolling 24 hours

The first is a technical ceiling: a business phone number can send roughly one message every six seconds to the same recipient (about 10/minute, 600/hour) before hitting error code 131056. That's a pacing problem, solvable with a queue and backoff. The second is a business-level ceiling with nothing to do with request speed — it caps how many people a number is allowed to start a conversation with in a day, and it moves based on behavior, not code.

The messaging limit tiers

A new, unverified number starts at a tier allowing roughly 250 business-initiated conversations in a rolling 24-hour window. From there, tiers step up — commonly cited thresholds are 1,000, 10,000, and 100,000 unique conversations per day, with an effectively unlimited tier above that — and Meta raises a number automatically once it has been sending consistently high-quality messages and using a meaningful fraction of its current tier.

250 -> 1,000 -> 10,000 -> 100,000 -> unlimited
        (each step: consistent quality + real utilization of the current tier)

This is why a product's daily outbound volume, not its code, is often the actual bottleneck early on — hitting the tier ceiling looks identical to a bug (sends start failing) but has nothing to fix in the codebase.

Each step up requires the same two things: consistent quality at the current tier, and real utilization of it — Meta raises the ceiling automatically, there's no manual "request a tier increase" button to click.

Quality rating: a score, not a setting

Every phone number carries a quality rating — Green, Yellow, or Red — visible in WhatsApp Manager's phone number panel. It's computed from real recipient signals: message blocks, "report spam," and negative in-app feedback on recent conversations. Nothing about it is configured; it's an outcome, measured continuously against actual traffic.

Green   - healthy, normal sending continues
Yellow  - degraded, worth investigating before it worsens
Red     - the number's messaging limit tier can be downgraded, or
          sending paused, until quality recovers

The compounding trap this creates

The mechanism that catches teams off guard: a quality drop doesn't just sit there as a bad score — it can shrink the messaging limit tier itself, which means fewer conversations can be started, which for a growing product often means falling further behind demand right when volume matters most. A single ill-targeted marketing blast (sent to people who never really opted in, worded aggressively, sent at an odd hour) can drag a number from Green to Red fast enough to visibly cap throughput within the same day.

Bad send batch -> blocks/complaints spike -> quality drops to Yellow/Red
             -> tier may be downgraded -> lower daily send ceiling
             -> even legitimate, wanted messages start queuing or failing

What actually protects it

Quality rating responds to relevance, not just volume: sending only to people who meaningfully opted in, keeping Marketing-category content honestly separate from Utility and Authentication traffic, honoring opt-outs immediately, and not re-sending to numbers that have gone quiet or unresponsive. None of this is enforced by the API at send time — a send call with unhealthy targeting will succeed and return a message ID exactly like a healthy one. The quality consequence shows up later, in the score, not in the response of any individual call.

Further reading

Check your understanding

A quick comprehension check — not tracked, not graded, just for you.

1. A number is sending well within its per-second throughput limit but still fails to start new conversations one day. What's the more likely cause?

2. What typically causes a WABA's messaging limit tier to increase, e.g. from 1,000 to 10,000?

3. What actually determines a phone number's quality rating (Green/Yellow/Red)?

4. A poorly-targeted marketing blast causes a number's quality rating to drop to Red. Besides the reputational concern, what's the concrete downstream effect?