WhatsApp Cloud API Throughput and Rate Limits Explained
WhatsApp Cloud API throughput and rate limits: messages per second, how to raise them, pair and Graph API limits, error codes, and retry with backoff.
By OmniChannels.ai Editorial Team · Reviewed by BroadNet Messaging Solutions Team
Integration
Short answer
Meta's documentation says each WhatsApp Cloud API business phone number supports up to 80 messages per second by default, rising to 1,000 by automatic upgrade for eligible numbers. Separate limits apply to the same recipient (pair rate limit), to Graph API management calls and to how many people you can message per day. When you exceed throughput the API returns error 130429; slow down, queue the work and retry with backoff.
On this page
- What is WhatsApp Cloud API throughput?
- How do I raise WhatsApp throughput to 1,000 mps?
- What other WhatsApp limits apply?
- Which error codes appear when I hit a limit?
- How should I queue and retry?
- How do I plan a large send?
- Worked example: a flash sale in Dubai
- What are the common mistakes?
- How OmniChannels.ai helps
Key takeaways
- Per Meta's throughput documentation, a business phone number supports up to 80 messages per second by default and up to 1,000 by automatic upgrade; the cap covers inbound and outbound messages of all types.
- Automatic upgrade to 1,000 mps requires an unlimited messaging limit, messaging 100,000 or more unique users outside customer service windows in a moving 24 hours, and a quality score of medium or higher.
- Four different limits exist: throughput per number, a pair rate limit per recipient, Graph API call limits, and daily messaging limits; each has its own error.
- Error 130429 means throughput was reached, 131056 means too many messages to the same recipient, and 80007 means the WhatsApp Business Account hit its rate limit.
- A large send needs a queue, a rate limiter below your limit, retries with exponential backoff and jitter, and a webhook server sized for status traffic.
This guide is for engineers and campaign owners who plan large WhatsApp sends and want to know how fast they can go and what happens when they go too fast. It explains the limits Meta documents, how throughput is raised, which errors you will see, and how to queue and retry a big send safely.
Numbers are Meta's documented values at the time of writing (7 November 2026). Meta can change them, so confirm them in the linked sources before a launch.
What is WhatsApp Cloud API throughput?
Throughput is the number of messages per second a single business phone number can handle. Meta's documentation says up to 80 messages per second (mps) by default, and up to 1,000 mps by automatic upgrade.
Details from Meta's throughput page:
- The cap applies to each business phone number and counts inbound and outbound messages of all types.
- Numbers used with both the WhatsApp Business app and the Cloud API have a fixed 20 mps.
- You can read a number's current level with
GET /<PHONE_NUMBER_ID>?fields=throughput.
Throughput is about speed, not volume. How many unique people you can start conversations with per day is a separate messaging limit.
How do I raise WhatsApp throughput to 1,000 mps?
Meta upgrades eligible numbers automatically, at no cost, when all three conditions hold.
| Requirement | Detail |
|---|---|
| Messaging limit | Unlimited on the business portfolio |
| Volume | 100,000 or more unique WhatsApp user numbers messaged outside customer service windows in a moving 24-hour period |
| Quality | Quality score of YELLOW (medium) or higher |
The upgrade can take up to 1 minute, and during that time the number is unusable. Meta reports it through a phone_number_quality_update webhook with the event THROUGHPUT_UPGRADE. If you send a message while the number is being upgraded, error 131057 is returned.
You cannot buy a higher level or request it by form in Meta's documented process, so if you are below the requirements, plan the send around 80 mps. Ask our team about your account.
What other WhatsApp limits apply?
Four limits can stop a send. They are independent, so check each one.
| Limit | What it caps | Typical error | Where it is defined |
|---|---|---|---|
| Throughput | Messages per second per number | 130429 |
Meta throughput page |
| Pair rate limit | Messages from one number to the same recipient in a short time | 131056 |
Meta error codes |
| Graph API limits | Management calls per app and account | 4, 80007, 80008 |
Meta Graph API docs |
| Messaging limit | Unique people reached per moving 24 hours | Restrictions on sending | Our limits guide |
How does the pair rate limit work?
It prevents a business from sending too many messages to one person quickly. Meta describes error 131056 as too many messages sent from the sender phone number to the same recipient phone number in a short period, and suggests waiting and retrying if you still intend to send. Meta's throughput page mentions the pair rate limit but states no number. Do not hard-code one; instead avoid sending several messages to the same person back to back, and combine them where you can.
What are the Graph API rate limits?
They apply to management calls, such as reading templates or accounts, not to sending messages. Meta's Graph API documentation lists, for the WhatsApp Business Management API, 200 calls per hour per app per WhatsApp Business Account by default, and 5,000 calls per hour per app for an active account with at least one phone number attached. The limit is reached with error 80008 for this API, 4 for the app limit, and Meta's error table also lists 80007 for a WhatsApp Business Account rate limit.
Cache template lists and account data, and avoid polling in a tight loop.
Which error codes appear when I hit a limit?
Match the code to the limit, then choose the response.
| Code | Meta's description | Response |
|---|---|---|
130429 |
Cloud API message throughput has been reached | Slow down, then retry |
131056 |
Too many messages from the sender to the same recipient in a short time | Wait, then retry only if needed |
131057 |
Number used during a throughput upgrade | Retry after the upgrade completes |
80007 |
The WhatsApp Business Account has reached its rate limit | Reduce API calls, try later |
4 |
The app reached its API call rate limit | Reduce API calls, check the App Dashboard |
131048 |
Restrictions on how many messages the number can send | Check quality status in WhatsApp Manager |
131049 |
Not delivered to maintain healthy ecosystem engagement | Wait at least 24 hours before resending the template |
Codes 131048 and 131049 relate to quality and engagement rather than speed, so retrying faster will not help. See WhatsApp API error codes troubleshooting.
On the OmniChannels.ai API, an upstream rejection arrives as HTTP 502 with Meta's error code and text in message, and our own rate limiting returns 429 with a Retry-After header. See errors and limits for the full table and the default limits.
How should I queue and retry?
Put a queue between your application and the API, limit the rate below your cap, and retry only what can succeed later.
- Queue every send. Your application writes messages to a queue and a worker pool drains it. Never loop over a customer list in one request handler.
- Limit the rate with a token bucket set below your throughput, leaving room for replies and other traffic that share the same cap.
- Record each attempt first. Write a row per message keyed by your own operation ID, store the returned message ID, and skip anything already accepted.
- Retry transient failures. Throttling and temporary server errors are retried; validation errors (
400), authentication errors and template errors are not. - Back off with jitter. Wait longer after each attempt, add randomness so workers do not retry together, and cap both the delay and the number of attempts.
- Honour
Retry-Afterwhen the response includes it. - Check before resending after a timeout. A lost response does not mean a lost message; look at status events first.
const RETRYABLE = new Set([429, 500, 502, 503, 504]);
async function sendWithBackoff(send, { maxAttempts = 5, baseMs = 500, capMs = 30000 } = {}) {
for (let attempt = 1; attempt <= maxAttempts; attempt++) {
const res = await send();
if (res.ok) return res;
if (!RETRYABLE.has(res.status) || attempt === maxAttempts) throw new Error(`failed: ${res.status}`);
const wait = Math.random() * Math.min(capMs, baseMs * 2 ** (attempt - 1)); // full jitter
await new Promise((r) => setTimeout(r, wait));
}
}
Meta's throughput page gives no backoff rule for error 130429, so this is standard engineering practice. For a 502 that carries a Meta throttling code, treat it as retryable; for any other upstream code, read the message first. Our errors and limits page has the full retry table and duplicate-send protection.
How do I plan a large send?
Work out the time, the limits and the webhook load before you start.
- Count unique recipients and compare with your messaging limit. Start with the safe scaling plan if the list is bigger than your tier.
- Estimate duration. Messages divided by your throughput gives seconds. As arithmetic, 100,000 messages at 80 per second take 1,250 seconds, about 21 minutes, if nothing else uses the cap.
- Reserve capacity. The cap also counts inbound messages, so leave headroom for customer replies during the send.
- Size your webhook server. Meta says webhook servers should handle three times your outgoing message traffic plus your expected incoming traffic, with a median latency not above 250 ms and under 1% of requests above 1 second. See the webhooks guide.
- Check template health and quality first, and stage the send in batches so you can stop if failures or blocks rise. See bulk messaging without getting banned.
- Use media IDs rather than links when sending files at volume, as Meta advises. See media types and limits.
On OmniChannels.ai, bulk endpoints take many recipients in one request and a delay field can throttle delivery. Agree peak plans with our team in advance.
Worked example: a flash sale in Dubai
"Marina Gadgets" (synthetic) plans a flash-sale template to 60,000 opted-in customers.
- Their limit allows it, so volume is not the constraint; speed is. At 80 mps, 60,000 messages need 750 seconds.
- They send in six batches of 10,000 with a rate limiter at 60 mps, which leaves room for replies.
- A batch shows several
131056errors for customers who also got an order update that minute. They delay those sends by a few minutes. - A worker retries throttled requests with jittered backoff, and no message is retried after it has an ID.
- The webhook endpoint stores events and returns
200, then a worker updates statuses. - After each batch they check failures and template quality before continuing.
What are the common mistakes?
- Confusing limits. Throughput, pair, Graph API and messaging limits are different problems.
- Retrying immediately, which keeps the number at the cap and extends the problem.
- Sending at the cap, so replies and statuses compete with the campaign.
- Resending after a timeout without checking status, which duplicates messages.
- Polling Graph API endpoints in a loop and hitting the hourly limit.
- Undersized webhook servers that fall behind and trigger retries.
- Limits change. This guide gives Meta's values at the time of writing.
How OmniChannels.ai helps
BroadNet is an official Meta Business Solution Provider, and OmniChannels.ai sends WhatsApp through one API with bulk endpoints, a delay field for throttling, scheduling and delivery statuses in one normalised webhook format. Resellers get separate webhooks and credit per sub-account. Plan peaks with our team, and read the WhatsApp API docs, errors and limits and the campaigns page.
Frequently asked questions
What is the WhatsApp Cloud API rate limit?
There are several. Meta documents up to 80 messages per second per business phone number by default, and up to 1,000 by automatic upgrade. Separately there is a per-recipient pair rate limit, Graph API call limits for management endpoints, and daily messaging limits that cap how many unique people you can reach. Each returns a different error.
How do I get higher WhatsApp throughput than 80 messages per second?
Meta upgrades eligible numbers to up to 1,000 messages per second automatically at no cost. Eligibility needs an unlimited messaging limit on the business portfolio, messages to 100,000 or more unique users outside customer service windows within a moving 24 hours, and a quality score of yellow or higher. The upgrade can take up to a minute, during which the number is unusable.
What does error 130429 mean?
Meta defines 130429 as Cloud API message throughput reached, with the title Rate limit hit. The suggested action is to try again later or reduce how often the app sends messages. It clears when your send rate is back inside the allowed level, so a rate limiter and a retry with backoff normally resolve it.
What is the WhatsApp pair rate limit?
It limits how many messages one business number can send to the same recipient in a short period. Meta's error 131056 describes too many messages from the sender number to the same recipient number in a short time, and advises waiting and retrying. Meta's throughput page gives no number for it, so do not rely on a fixed figure.
Are messaging limits the same as throughput?
No. Throughput is how fast you can send, in messages per second. A messaging limit is how many unique people you may start conversations with in a moving 24 hours. You can be inside one limit and over the other. Read our messaging limits guide for the daily tiers, and this one for speed.
How should I retry after a WhatsApp rate limit error?
Retry only throttling and transient server errors, wait longer after each attempt, add random jitter, and cap both delay and attempts. Meta's throughput page gives no specific backoff for error 130429, so this is standard practice rather than a Meta rule. Record each send first so a retry never sends the same message twice.
Sources
Keep reading
More guidesIntegration
Send a WhatsApp Message via API: cURL, Node, Python, PHP
How to send a WhatsApp message with an API: working cURL, Node.js, Python and PHP examples for templates and session messages, plus status tracking and errors.
10 min read
Integration
WhatsApp Webhooks Guide: Events, Security and Retries
How WhatsApp webhooks work: message and status events, a reliable handler, Meta's signature check, retries, idempotency and recovery when events go missing.
10 min read
Marketing
WhatsApp Marketing Metrics: What to Track and How to Read It
WhatsApp marketing metrics explained: delivered, read, replies, clicks and opt-outs, what read receipts miss, attribution with ads and UTM links, a dashboard.
9 min read
