Skip to content
SocialMate
Blog · Comparisons · · 17 min read

Who Sets Your WhatsApp Send Rate? Cloud API Limits vs Self-Hosted Pacing

No Meta product is called broadcast pacing. The rate you actually get is decided by throughput, 24-hour messaging limits and template quality — or by you, if you own the connection.

Three parallel columns of glowing pulse points in dark indigo space, showing gated, uneven and evenly paced message flow

There is no Meta broadcast pacing setting. WhatsApp send rate is set by Cloud API throughput ceilings, 24-hour messaging limits, template quality and delivery throttling. SocialMate, a self-hosted WhatsApp app, makes pacing yours: Safe, Balanced or Fast profiles, per-number caps and a live risk score.

Is there a Meta broadcast pacing setting?

No. Meta publishes throughput ceilings, 24-hour messaging limits, template rules and delivery throttling as reference documentation, but no product, panel or setting called broadcast pacing exists. The phrase fuses four separate mechanisms, and which one you need depends on which wall you have already hit.

  • Throughput. How many messages per second Meta's servers accept from your app, documented in Meta's Cloud API throughput guide.
  • Messaging limits. How many distinct people you may message in a rolling 24 hours, tiered by account history and business verification, per Meta's messaging-limits page.
  • Marketing delivery pacing. How fast approved marketing templates actually arrive. Template quality ratings and per-recipient marketing rules shape this; there is no dial you can turn.
  • "Broadcast". A model imported from the consumer app: per WhatsApp's Help Center, a broadcast list caps how many recipients it holds and reaches only contacts who have saved your number. Check the live article for the current cap.

Match the complaint to the mechanism. "We hit a wall on messages per second" is throughput. "Our sends trickle out over hours" is template quality. "How many people can we reach today" is messaging limits.

One discipline before you size anything: open the live page the week you build. Meta revises these documents without notice, and a ceiling copied from a 2024 blog post is a liability rather than a fact.

Who sets your WhatsApp send rate? Three routes compared

Whoever owns the connection sets the rate. Meta owns it on the Cloud API, where the ceiling is published and revised without asking you. Your engineering team owns it on an open-source self-hosted API, where pacing is code you write and maintain. You own it on SocialMate — a self-hosted desktop app you run on your own machine with your own number — through settings you can read.

The table below is the argument of this post, and its ban-risk row matters most: exposure exists on all three routes. Full side-by-sides live in the comparison hub and in SocialMate vs the WhatsApp Cloud API.

How fast can the WhatsApp Cloud API send messages?

Faster than most teams need, and not yours to set. Meta's throughput guide describes a per-second ceiling that applies to every app and scales automatically for eligible accounts, with media handled separately. The published figures change, so read them on the page rather than from a post like this one. Exceed the ceiling and the API returns HTTP 429.

Meta's error-code reference documents rate-limit and pair-rate errors separately. Your only correct response is to back off and retry; nothing on your side raises the ceiling.

The second constraint counts people, not seconds. Meta's messaging-limits page expresses it as unique users per rolling 24 hours, tiered by account history and verification. Meta has restructured those tiers more than once, so confirm the live structure before you size a launch.

The third constraint is delivery. Business-initiated messages need an approved template, and Meta's template documentation describes quality ratings that reflect how recipients respond; a low rating can limit or pause a template. The thresholds are not published, so the rating is the only signal you get. Meta's pricing documentation sets out the current per-message model, which replaced the older conversation-based pricing. Confirm the live terms before modelling unit economics.

Do BSPs add a fee on top of Meta's WhatsApp pricing?

Yes, on top of Meta's own per-message charge. Twilio, 360dialog, WATI, AiSensy and Gallabox resell the Cloud API, so Meta's throughput ceilings, 24-hour limits and price revisions pass straight through while each vendor charges its own platform fee. Twilio's published WhatsApp pricing lists $0.005 per message, charged in both directions.

Reselling Meta's Cloud API is a pass-through model, and that is not a criticism of any one company. A reseller can document its supplier's constraints accurately and still be the wrong party to ask whether you should queue behind someone else's ceiling at all. It is why "WhatsApp broadcast limits" tends to be published as a feature guide — how to work inside the limits, pick the template category, avoid 429s — rather than as a structural question.

For the line-item maths on the platform fee, see what Twilio's $0.005 actually covers.

How many people can a WhatsApp broadcast list reach?

WhatsApp caps it, and delivers only to contacts who have saved your number. Per WhatsApp's Help Center, a consumer broadcast list reaches only people who have added you, which makes it a personal convenience feature rather than a business channel. Open the live article for the current recipient cap. The cap is why teams graduate to automation once a list grows.

Two consequences follow from that. First, the broadcast mental model — one identical message to a crowd — does not survive contact with WhatsApp's enforcement on any route, official or otherwise. Second, the word you want is batch: one batch is many individual, personalised messages, each paced separately. Identical text to many contacts is exactly what gets flagged.

SocialMate enforces the distinction mechanically. Its duplicate-content guard blocks identical text or images to many contacts by design, and no bulk-broadcast endpoint is enabled out of the box. Unsolicited bulk messaging is the fastest route to a ban.

What does a self-hosted WhatsApp API actually let you control?

A self-hosted WhatsApp API gives you the connection, the pacing, the storage and the admin surface — and hands you the work of building all four. Evolution API, WAHA and Baileys speak the WhatsApp Web multi-device protocol, need no Meta approval and charge nothing per message. What differs between them is how much each leaves to you.

The parts you inherit:

  • Deployment, which varies by project. Evolution API's documentation has called for Docker plus Postgres and Redis; WAHA takes a lighter shape; Baileys is a TypeScript library, not a server, so you write the process that hosts it. Check each project's current requirements before you commit.
  • Pacing. No Safe/Balanced/Fast profiles and no adaptive throttle. You write the delays, jitter, caps and backoff, then tune them by feel.
  • Anti-ban. You build it and maintain it as the client protocol changes underneath you.
  • GUI and storage. You build the admin surface and own the database and its backups.

The risk is contractual as well as technical. This protocol class is unofficial, and WhatsApp's Terms of Service restrict access to legal, authorised purposes. Accounts that breach those terms can be restricted, on every tool in this class, SocialMate included.

That does not make the open-source route wrong. It makes it a trade: no licence cost, paid in engineering time and operational risk. Our explainer on Evolution API, plus the head-to-head pages for SocialMate vs Evolution API and SocialMate vs WAHA, set out what each leaves on your desk.

What does user-controlled pacing look like in practice?

Named profiles, hard per-number caps and a risk score that moves while you watch. SocialMate's pacing is explicit rather than opaque: you pick the profile, you see the throttle react, and the volume ceilings are published numbers rather than a tier someone else grants you. The anti-ban engine runs on Free and Pro alike.

The shipped stack includes pacing profiles (Safe / Balanced / Fast), per-number rate limits, randomised delays and jitter, session warming for new numbers, a real "typing…" indicator and read receipts before replies go out, an adaptive throttle that slows sends as risk climbs, a duplicate-content guard, cold-outreach detection, live 8-factor risk scoring, and risk-based auto-resume for accounts that were cooled.

One operational detail matters more than any feature list. On Pro, a send that hits a cap returns a 429 and lands in the smart queue for a paced retry instead of failing — text and URL media queue, while polls, locations and contact cards do not, returning 429 with queueable:false on every tier.

Volumes are explicit. Free sends up to 200 messages a day on one account. Pro starts at a safe 500 a day per account and, after 72 hours of warming, High-Volume Mode scales to 5,000 a day per account. The burst window allows 3 sends in 10 seconds on Free, 5 on Pro.

Two consequences follow, and neither is a marketing line. Warming is not optional: the 72 hours is the price of the higher ceiling. And higher volume is never risk-free. The stack changes the shape of your send pattern, not the existence of enforcement.

What does a flat licence cost compared with per-message pricing?

A flat licence replaces the meter rather than discounting it. SocialMate costs $0 on Free, $99 a year (about $8.25 a month) or $10 a month on Pro, with no per-message fee at any tier and unlimited WhatsApp accounts on Pro. Cost tracks devices, not volume.

  • Free: $0 forever, no card, 200 messages a day on one account.
  • Pro Annual: $99 a year. Pro Monthly: $10 a month, cancel anytime.
  • Seats: one device included; extra seats are about $4/mo each on Monthly, about $40/yr each on Annual.
  • Per message: nothing, at any tier.

Metered pricing does the opposite: cost tracks volume permanently and rises whenever Meta or a reseller reprices. A flat licence does not get cheaper at low volume and does not get more expensive at high volume, which suits anyone sending thousands of individual messages a month and is wrong for anyone sending fifty.

The 7-day Pro trial is opt-in, started inside the app with an email and no card, never applied automatically on install. Full split on /pricing.

What is the real ban risk of self-hosting, and how do you reduce it?

Ban risk is real, and it is the correct thing to price before you commit. This protocol class is unofficial, WhatsApp's Terms of Service restrict access to authorised purposes, and accounts on any route can be restricted, SocialMate included. No tool can guarantee otherwise, and a vendor who says it can is selling something that does not exist.

What you can change is the shape of the risk.

  • Desktop app. It runs on your machine and connects from your own residential IP, ideally the same home network as the phone that owns the number — the network picture WhatsApp already associates with the account. It removes a risk factor; it does not prevent bans.
  • VPS or Docker. The anti-ban pipeline is identical, but the connection egresses from a datacenter IP, which carries lower network reputation. That is the one thing a server cannot match a home connection on.
  • Per-account proxy routing (Pro). A VPS account can egress through your own residential or mobile SOCKS5/HTTP proxy to reclaim a residential path. It changes the network route only; it never bypasses rate limits and never lets you send faster.

Our default recommendation: keep safety-critical numbers on the desktop app at home, and use a VPS when always-on matters more. If an account does get restricted, what a disabled account means and what self-hosting can change is the honest version.

How do you move a consent-first contact list off the Cloud API?

Move only people who are already waiting on you: they ordered, they booked, they asked a question. Confirm consent contact by contact — a bought, scraped or guessed list is the fastest route to a ban, and no pacing profile makes it safe. Then warm the number before you raise volume.

  1. Confirm consent, person by person. If you cannot point to the moment someone opted in, they do not move.
  2. Drop the broadcast mental model. The consumer list cap was never the target. You are sending individual, personalised messages, not one message to many.
  3. Install SocialMate on Free. $0, no card, from /download. Link the number and let it sync.
  4. Warm the new number on the Safe profile. The built-in warming protocol is the point: low volume, human-like timing, no bursts. Give it roughly 72 hours and watch the risk score rather than a stopwatch.
  5. Stay at the Free 200/day ceiling before you ask for more. Watch the risk score before touching anything else. A score that spikes and settles is the throttle doing its job; a score that climbs and stays up is a signal to stop.
  6. Upgrade to Pro and start at 500/day, not 5,000. Hold that for several days, then let High-Volume Mode scale only while the score stays low. The duplicate-content guard blocking identical text is the product working, not failing.
  7. Keep the pace boring. No spikes, no bursts, no identical copy in sequence — the pattern is what enforcement reacts to.

Still deciding whether self-hosted automation is the right shape for your channel at all? Channels versus business automation covers that fork honestly.

Can I drive this from n8n, MCP or my own backend?

The local HTTP API runs on every tier, including Free: read endpoints and plain-text send, with 9 of 35 webhook events free. Pro adds media, group operations, scheduled batches, the named tunnel, unlimited webhooks and Agent Memory. Your own model stays the brain.

  • n8n. A first-class native community node, n8n-nodes-socialmate, MIT, version 2.7.0, with a scope-aware credential, an action node and a trigger node. Every operation is exposed as an n8n AI-Agent tool (usableAsTool), and its Get AI Context operation returns a whole conversation, role-mapped and token-windowed, so an agent keeps recall without the fragile memory node. Details at the n8n hub.
  • MCP. A native socialmate-mcp server exposing 44 WhatsApp tools to Claude Desktop, Claude Code, Cursor, Cline or any MCP client. Switch on the local API first; it is off by default, and that is the most common reason the tools never appear. MCP is request/response with no inbound push, so pair it with the n8n trigger or a webhook. Setup at /docs/mcp-server.
  • Everything else. Make, Zapier, WooCommerce, Shopify, HubSpot and WordPress connect through the HTTP API and outbound webhooks. No native connector is implied.

One clarification matters: SocialMate does not generate replies, summaries or triage. Those are coming soon. It is the WhatsApp hands and memory your model controls. Start at /docs, or take the free app from /download. The local API works on Free with read endpoints and plain-text send; Pro adds media, group operations, scheduled batches and the named tunnel when volume justifies them.

Dimension Cloud API and BSPs (Twilio, 360dialog, WATI, AiSensy, Gallabox) Self-hosted OSS (Evolution API, WAHA, Baileys) SocialMate (desktop or VPS)
Meta approval Required: business portfolio, verification, template review None None
Pricing model Per message, metered: Meta's fee plus a platform fee (Twilio: $0.005 per message, both directions) Free software; you pay in build and maintenance time Flat licence: $0 Free, $99/year or $10/month Pro. No per-message fee
Who sets pacing Meta. A published per-second throughput ceiling that scales automatically for eligible accounts, plus 24-hour messaging limits and delivery throttling You do, by writing it into your own code You do, via Safe/Balanced/Fast profiles, per-number caps and a 10-second burst window (3 Free, 5 Pro)
Ban / account risk Policy, approval and cost are the commercial exposure; account enforcement still applies Present. Unofficial protocol class, no safety layer built in Present. Reduced by warming, jitter, caps and risk scoring — not removed
Visible risk signal Template quality rating and error codes, after the fact Session status only; no pacing-risk model Live 8-factor risk score, cold-outreach detection, adaptive slow-down
Data location Meta's cloud and the vendor's cloud Your server Your machine or your own server, local storage; nothing routed through SocialMate
GUI Yes No, you build it Yes: desktop app, plus a browser admin console on a server
Deployment effort Low: sign up, verify, integrate Varies by project: Evolution API documents Docker plus Postgres and Redis; Baileys is a library you host. Check current requirements Low: desktop installer, or Docker/systemd on a VPS
Best for Teams that must be on the sanctioned path Developers who want a free REST layer they fully own Founders and agencies who want pacing visible without building it
Who sets your WhatsApp send rate: the Cloud API and its resellers, self-hosted open-source APIs, and SocialMate

How to move a consent-first WhatsApp list onto a self-hosted setup

  1. Confirm consent, person by person If you cannot point to the moment someone opted in, they do not move. A bought, scraped or guessed list is the fastest route to a ban.
  2. Drop the broadcast mental model WhatsApp's consumer broadcast list is capped and reaches only saved contacts. Send individual, personalised messages instead of one message to many.
  3. Install SocialMate on Free $0, no card, from /download. Link the WhatsApp number you already own by QR or pairing code and let it sync.
  4. Warm the number for roughly 72 hours on the Safe profile Low volume, human-like timing, no bursts. Watch the live risk score rather than a stopwatch; warming is the protocol, not a suggestion.
  5. Stay at the Free 200/day ceiling Watch the risk score before changing anything else. A score that spikes and settles is the throttle working; a score that climbs and stays up means stop.
  6. Upgrade to Pro and start at 500/day, not 5,000 Hold the safe baseline for several days, then let High-Volume Mode scale only while the risk score stays low. The duplicate-content guard blocking identical text is the product working as designed.
  7. Keep the send pattern boring Vary copy per contact, spread sends across the day, and never follow a spike with another spike. The pattern is what enforcement reacts to.

Frequently asked questions

Is there a Meta broadcast pacing setting?

No. Meta publishes throughput ceilings, 24-hour messaging limits and template rules as reference documentation, but there is no control panel, dial or product called broadcast pacing. What people mean by the phrase is usually one of three things: messages per second, unique users per 24 hours, or how fast marketing templates deliver.

What are WhatsApp's messaging limits?

Messaging limits cap how many distinct people you may message in a rolling 24 hours, tiered by account history and business verification. Meta has restructured those tiers before, so open Meta's live messaging-limits page before you plan a launch rather than trusting a tier count from an older blog post — the figures on this page are the ones that matter on the day you build.

Is there a WhatsApp broadcast API?

Not in the consumer sense. WhatsApp's consumer broadcast lists are capped and reach only contacts who saved your number. Business-initiated messaging on the Cloud API requires approved templates and a verified business, and it is metered per message. SocialMate deliberately ships no bulk-broadcast endpoint: identical text to many contacts is blocked by its duplicate-content guard.

Can I use the WhatsApp Cloud API for free?

Partly. Meta's pricing documentation describes service messages within the 24-hour customer service window as free of charge, while business-initiated template messages are billed. Meta has moved to per-message pricing and revises terms without notice, so confirm the live rates on Meta's pricing page before modelling costs.

Is there a WhatsApp Cloud API limit on messages per second?

Yes. Meta's Cloud API throughput guide documents a per-second ceiling that scales automatically for eligible accounts, with media handled on a separate ceiling. It is not something you configure, and Meta edits the page without notice, so confirm the live values there before sizing infrastructure.

What does a Cloud API 429 error mean?

A 429 means you exceeded a rate limit. Meta's error reference documents the rate-limit and pair-rate codes separately. Your app must back off and retry. There is no negotiation and no way to raise the ceiling from your side, because the throttle belongs to the platform.

Do template messages get throttled differently?

Yes. Business-initiated messages need an approved template, and Meta's template documentation describes quality ratings that reflect how recipients respond to each template; a low rating can limit or pause a template. The thresholds are not published, so the rating is the only feedback you get — which is why template copy and audience match matter more than send timing.

Do I need Meta business verification to set my own pacing?

Not on a self-hosted route. Business portfolio setup, verification and template review belong to the Cloud API. A desktop app using your own number needs none of them: you link the number by QR or pairing code and choose a pacing profile. SocialMate is independent and not affiliated with Meta.

Will self-hosting get me banned?

It can. WhatsApp's Terms of Service restrict access to authorised purposes, and any account on any route can be restricted, SocialMate included. An engineered anti-ban stack with warming, jitter, caps and live risk scoring reduces the exposure. It does not eliminate it, and no honest vendor claims otherwise.

Is number warming optional?

No. Warming is a gradual ramp on a new number: low volume, human-like timing, no bursts, for roughly the first 72 hours. SocialMate's High-Volume Mode reaches 5,000 messages a day per account only after warming, and the ramp is what makes that ceiling defensible rather than reckless.

Does SocialMate charge per message or need Meta approval?

Neither. Pricing is a flat licence: Free at $0 forever with no card, Pro at $99 a year or $10 a month, one device seat included, unlimited WhatsApp accounts on Pro. There is no per-message fee at any tier, and the 7-day Pro trial is opt-in from inside the app, not automatic on install.

Is SocialMate affiliated with WhatsApp or Meta?

No. SocialMate is independent and is not affiliated with, endorsed by or partnered with WhatsApp or Meta. The names appear for identification only. It is not the official WhatsApp Business API, and nothing here implies Meta approval of the product.

Free forever · no card Download free