← Blog

·

WhatsApp API messaging limits: tiers, quality and how to scale up

Updated on October 29, 2026

The WhatsApp Business API messaging limit is the maximum number of unique users your business can message outside the customer service window in a moving 24-hour period. Since October 7, 2025, it is set per business portfolio and shared by all its phone numbers: it starts at 250, rises to 2,000 after you complete a scaling path (such as verifying your business) and from there grows on its own to 10,000, 100,000 and unlimited, as long as your messages are high quality and you use at least half of your limit within 7 days.

Below: what counts toward the limit, how to move up, how quality fits in and how to check everything via API.

What counts toward the limit and what doesn’t

The limit measures unique recipients, not messages. And it only counts people who receive a message outside the 24-hour customer service window, that is, messages the business starts with a template.

SituationCounts toward the limit?
Template sent to a customer who hasn’t written in the last 24 hoursYes, 1 recipient
Three templates to the same customer in the same 24-hour periodYes, but only 1 recipient
Free-form reply to a customer who wrote 2 hours agoNo
Template sent as a reply while the window is openNo, because it’s inside the window
Attempt to send a paused templateNo (the API rejects it without counting)

The customer service window is explained in the article on the WhatsApp 24-hour window. In practice, inbound support barely touches the limit; what runs into it are high-volume notifications and campaigns.

The limit tiers

TierUnique users in 24 hoursHow to get there
Starting250Newly created portfolio
2,0002,000Complete a scaling path and pass Meta’s review
10,00010,000Automatic scaling
100,000100,000Automatic scaling
UnlimitedNo capAutomatic scaling

The limit belongs to the portfolio, not the number

Before October 2025, each number had its own limit. Now the value is calculated and set at the business portfolio level, and all its numbers share the same quota. Two consequences:

  • A new number starts with the portfolio’s limit. There’s no need to “warm up” a number from scratch.
  • One number can use up the whole quota. If the billing number sends to 9,000 customers in a portfolio with a 10,000 limit, 1,000 are left for the sales number in the same 24 hours.

During the migration, Meta set each existing portfolio’s limit to the highest limit among its numbers.

Want to try it while you read? Create a Vectalk account and send your first message through the official API. Create free account →

How to get from 250 to 2,000

Meta offers three scaling paths. Completing one is enough:

  1. Verify your business in Meta’s business portfolio.
  2. Have your business verified by a partner, when you were onboarded by a provider that offers partner-led verification.
  3. Deliver 2,000 messages outside the customer service window, to unique recipients, within a moving 30-day period, using high-quality templates.

Once you complete a path, Meta analyzes your message quality and approves or denies eligibility for automatic scaling.

  • Approved: the limit goes to 2,000 right away. You get an email, a developer alert and the business_capability_update webhook with max_daily_conversations_per_business set to the new limit (on webhooks v24.0 and newer).
  • Denied: the limit stays the same, and the account_alerts webhook gives the reason in alert_type.
alert_typeWhat to do
INCREASED_CAPABILITIES_ELIGIBILITY_DEFERREDDeliver 2,000 messages outside the window, to unique recipients, in 30 days, with high-quality templates
INCREASED_CAPABILITIES_ELIGIBILITY_FAILEDThe same 2,000-message path
INCREASED_CAPABILITIES_ELIGIBILITY_NEED_MORE_INFOVerify your identity with Meta or follow the 2,000-message path

Business verification is usually the fastest path for companies whose registration and documents are in order (in Brazil, that means the CNPJ, the national company registration number). The step-by-step is in Meta business verification.

Automatic scaling: from 2,000 to unlimited

From 2,000 up, Meta raises the limit one tier at a time, without a request, when two conditions are met:

  • you send high-quality messages across all the portfolio’s numbers and templates;
  • in the last 7 days, you used at least half of your current limit.

With both conditions met, the increase happens within 6 hours. For a portfolio at 10,000, that means having sent to at least 5,000 unique users outside the window at some point in the last week.

Anyone who wants to reach 100,000 by a specific date (Black Friday, a payment due date, an enrollment campaign) needs to plan the ramp-up in advance. Each step requires real use of the previous one. The Black Friday on WhatsApp guide has a send calendar built around this.

Don’t confuse the limit with throughput or per-user limits

Four different mechanisms can block a send. Each has its own cause and error code:

MechanismWhat it limitsValueError
Messaging limitUnique users outside the window in 24 hours, per portfolio250 to unlimited—
ThroughputMessages per second, per number80/s by default; up to 1,000/s with an automatic upgrade130429
Pair rate limitToo many messages to the same user in a short timeNo published value131056
Marketing per-user limitMarketing templates a user receives from all businessesDynamic, based on the user’s engagement131049

The upgrade to 1,000 messages per second requires a portfolio with an unlimited limit, a number that has already reached 100,000 unique users outside the window in 24 hours, and a quality rating of medium or high. The details are in WhatsApp API rate limits and throughput. For 131049, Meta advises waiting at least 24 hours before resending to the same user; repeated retries within that period can block further attempts to that user for up to 24 hours. The article on error 131049 goes deeper.

Quality rating

Meta rates message quality based on what happened over the last 7 days, with more weight on the most recent messages. The signals named in the documentation are blocks, reports, mutes, archives and the reasons users give when they block you.

There are two ratings you should track:

RatingWhere it shows upValues
Number qualityThe number’s quality_rating field and WhatsApp ManagerGREEN (high), YELLOW (medium), RED (low)
Template qualityThe template’s quality_score fieldGREEN, YELLOW, RED, UNKNOWN

High-traffic numbers can change quality within short intervals, sometimes within minutes. The meaning of each color is detailed in WhatsApp phone number quality rating.

What changed: low quality no longer lowers the limit

Until October 2025, a number with “Flagged” quality for 7 days lost a limit tier. Meta has removed that state: today, if a number’s quality drops, the limit is not reduced.

That doesn’t make quality irrelevant. It still decides three things:

  • Whether the limit goes up. Automatic scaling requires high-quality messages across all numbers and templates.
  • Whether the template stays live. A template that reaches RED is paused for 3 hours, then 6 hours, and the third time it’s disabled.
  • Whether the business faces enforcement. Meta’s enforcement policy says that excessive user complaints can lead it to limit the business or offboard it from WhatsApp. The article on a banned WhatsApp API number details those measures.

What stalls your growth

The most common reasons the limit stops rising, or messages stop going out, are predictable:

  • A list without opt-in. Contacts who weren’t expecting the message block and report.
  • Generic messages. Meta recommends avoiding open-ended welcome or introduction messages and personalizing the content.
  • High frequency. Several templates a day to the same contact pull the rating down and hit the pair rate limit.
  • A cold audience at volume. Sending to the whole base at once, without testing how a smaller group reacts.
  • Using less than half the limit. Without usage, there’s no automatic scaling.
  • Marketing templates classified as utility. Besides recategorization, this triggers its own restrictions. See the guide to WhatsApp API message templates.

How to check limit and quality via API

On the Graph API, the portfolio’s current limit is in the whatsapp_business_manager_messaging_limit field, which can be read on the business portfolio, on the WhatsApp Business account or on the phone number. The old messaging_limit_tier field is deprecated.

curl 'https://graph.facebook.com/v26.0/PHONE_NUMBER_ID?fields=whatsapp_business_manager_messaging_limit' \
  -H 'Authorization: Bearer META_TOKEN'

# Response
{ "whatsapp_business_manager_messaging_limit": "TIER_250", "id": "PHONE_NUMBER_ID" }

With Vectalk, number data comes from GET /api/phone-numbers, with the number resolved from the instance token. The documentation shows the fields parameter and a response with quality_rating and the throughput level:

curl 'https://apis.vectalk.com.br/api/phone-numbers?fields=id,display_phone_number,verified_name,quality_rating' \
  -H 'Authorization: Bearer YOUR_INSTANCE_TOKEN'

So you don’t have to poll, handle the webhooks. Vectalk forwards the events in Meta’s format:

  • business_capability_update: the portfolio’s new limit in max_daily_conversations_per_business (values 2000, 10000, 100000 or UNLIMITED);
  • phone_number_quality_update: changes to the number’s quality status;
  • account_alerts: scaling denials and next steps;
  • message_template_quality_update and message_template_status_update: template rating and pauses.

Planning a send within the limit

For high-volume sends, track unique recipients over the last 24 hours before calling the API and push the rest to the next day. A sketch:

const LIMIT = 2000;               // read it from the business_capability_update webhook
const WINDOW_MS = 24 * 60 * 60 * 1000;

async function canSend(waId) {
  const since = new Date(Date.now() - WINDOW_MS);
  const alreadyReceived = await db.sends.exists({ wa_id: waId, outside_window: true, sent_at: { $gte: since } });
  if (alreadyReceived) return true; // the same recipient doesn't count twice
  const unique = await db.sends.countDistinct("wa_id", { outside_window: true, sent_at: { $gte: since } });
  return unique < LIMIT * 0.95; // margin for sends from other numbers in the portfolio
}

Remember to add up all the portfolio’s numbers in the count. The article on bulk messaging with the official API covers queues, pacing and segmentation.

Frequently asked questions

Can I ask Meta to raise my limit manually?

The documentation only describes the scaling paths to reach 2,000 and automatic scaling from there. The practical route is to verify your business and use the limit with well-received messages.

Does adding more numbers raise the limit?

No. The limit belongs to the portfolio and is shared by all its numbers. A new number simply starts using the same quota.

Does replying to customers use up the limit?

No. The limit only counts recipients of messages outside the customer service window. Replies within the 24-hour window are excluded.

My quality dropped to yellow. Will I lose my tier?

Under the current rules, no. A quality drop doesn’t reduce the limit, but it can block further increases and lead to template pauses. Review audience, frequency and content before your next send.

Scale your sends with Vectalk

With Vectalk, you connect your numbers through Meta’s Embedded Signup and run all your accounts with one token, receiving the limit and quality webhooks in the format of the official documentation. Billing works with a monthly fee plus a prepaid balance: Vectalk puts its own line of credit on your number, each delivered message is deducted from your balance and no card is registered with Meta. You also get coexistence with the WhatsApp Business app. Create your account at apps.vectalk.com.br/register, read the documentation or talk to the team on the contact page.


Sources checked on October 29, 2026: Messaging limits, Messaging limit changes (in effect since October 7, 2025), Message quality, Throughput, Error codes, Template pausing.

Put your business on the official WhatsApp

Create your account, connect your number to the official API (you can keep the app with coexistence) and start serving customers and sending messages.