Learning objectives
After reading this article you will be able to:
- Understand what the official WhatsApp API is and what it requires
- Know which messages Meta charges for and which are free
- Estimate the monthly cost and decide when the official API pays off
The official WhatsApp API is the interface Meta maintains so businesses can send and receive messages from code. Its technical name is WhatsApp Business Platform, and the most common way to use it is the Cloud API, hosted by Meta itself.
There is no single price: it depends on the message category, the recipient's country and who started the conversation. Meta can change prices and rules every quarter, so check the official page before you calculate.
What is the official WhatsApp API and what does it require?#
It is the authorized way to automate WhatsApp for business. You do not pair a phone or scan a QR code: you call Meta's Graph API with a token to send, and you receive messages and delivery statuses through a webhook (a public URL with valid HTTPS).
The requirements, according to the Cloud API documentation:
- a Meta business portfolio;
- a business phone number, real or virtual;
- a server of your own to receive the webhooks.
When you start, Meta creates a test account and a test number, which send templates without asking for a payment method. In production, each number has a default messages-per-second limit and a maximum pace for messages to the same user; the current values are in the Cloud API documentation. For a comparison with the unofficial libraries, see Baileys, whatsapp-web.js or the official API.
What does Meta charge for?#
Since July 1, 2025, billing is per delivered message. The official pricing page lists no platform subscription, and Meta does not charge for messages users send to you.
Every message the business sends falls into a category. Three are templates, messages Meta approves in advance that can go out at any time; the fourth is the free-form reply, with no template:
| Category | What it is for | When it is billed |
|---|---|---|
| Marketing (template) | Promotions, offers, re-engagement | Whenever delivered |
| Utility (template) | Order confirmation, shipping status, payment reminder | Whenever delivered, inside the customer service window too (since October 1, 2026) |
| Authentication (template) | Verification codes (OTP) | Whenever delivered |
| Service (no template) | Free-form replies, only while the customer service window is open | From the 1,001st of the month on each number |
The price depends on the category and the recipient's country code. Utility and authentication have volume tiers: the more you send, the lower the price. Marketing does not. Replies from Meta Business Agent, Meta's own AI agent, form a separate category billed by tokens.
Which messages are free?#
The 24-hour customer service window opens when the user writes to you, and each new message from them resets the clock. While it is open you can reply with free-form text; once it closes, only templates go out. The window decides what you can send, but since October 2026 it no longer brings the bill to zero by itself.
Two situations are still free:
- Free service tier. Each business number gets 1,000 free service messages per month. Unused messages do not roll over, and billing starts at the 1,001st.
- Free entry point window. When the user arrives through a Click to WhatsApp ad, from the Android or iOS app (desktop and web do not count), and you reply inside the customer service window, that reply is free and opens a window that can last up to 7 days. While it is open, marketing, utility, authentication and service messages are free.
In practice, a small support bot where the customer always starts the conversation can stay entirely within Meta's 1,000 free service messages. The bill grows when replies pass 1,000 a month or when the business is the one reaching out.
How do you estimate the monthly cost?#
Meta publishes the rate card by country and currency, as CSV and PDF, on its pricing page. It only changes prices on January 1, April 1, July 1 or October 1, with at least one month of notice. That is why no price per message appears here: download the current quarter's rate card and use the calculation below.
The script estimates the monthly cost of one number. Fill rates with the values from the official rate card; the ones in the example are made up, just so the math runs.
// node estimate.js
// WARNING: made-up rates. Replace them with the values from Meta's official rate card.
const rates = { marketing: 0.5, utility: 0.1, authentication: 0.1, service: 0.05 };
// DELIVERED messages per month on one business number.
// Do not count messages sent inside a free entry point window.
const volume = { marketing: 2000, utility: 1500, authentication: 800, service: 3000 };
const FREE_SERVICE = 1000; // free service messages per month, per number
let total = 0;
for (const [category, count] of Object.entries(volume)) {
const billed = category === "service" ? Math.max(0, count - FREE_SERVICE) : count;
const cost = billed * rates[category];
console.log(`${category}: ${billed} x ${rates[category].toFixed(2)} = ${cost.toFixed(2)}`);
total += cost;
}
console.log(`Estimated total: ${total.toFixed(2)} per month`);With those made-up numbers the total would be 1,330.00 (in the rate card's currency). Marketing accounts for 1,000.00; the 3,000 service replies cost only 100.00, because the first 1,000 are free. That is what the calculation shows: marketing usually dominates the total, so cutting promotional sends lowers the cost more than any other change. And only delivered messages count.
What hidden costs are there?#
- Provider (BSP). You are not required to use one, but many offer a dashboard, a shared inbox and support. Check whether they charge a monthly fee or a margin on top of Meta's price, and ask for the full price list before signing up.
- Server. The webhook needs an application that is always up. It is a small cost, but a real one.
- Currency. Meta publishes rates in several currencies, such as USD, EUR, BRL, MXN, ARS, CLP, COP and PEN, each with its own rates. The currency is chosen when the messaging account is created and cannot be changed afterward (Meta offers a currency migration API), so check which one your account uses.
- Template approval. A rejected template delays campaigns; the cost is your team's time.
When does the official API pay off?#
It pays off when the number belongs to a business that cannot go offline: customer support, sales, order notifications, verification codes. The cost per message is predictable, and you avoid the risk of a banned number that comes with unofficial clients.
It does not pay off when the project is personal or for learning, or when it has to run on a number that cannot become a business number. In those cases the unofficial libraries cost only the server, but they carry the risk of bans and unannounced breakage. The underlying decision is covered in the comparison Baileys, whatsapp-web.js or the official API, and the step-by-step build in how to make a WhatsApp bot.
For bulk sends, the marketing bill adds up and template quality matters. If the bot needs to stay online all the time, see also how to host a WhatsApp bot 24/7.
How to do this on Square Cloud#
Beyond Meta's fees, what is left is hosting the server that receives the webhook. Square Cloud is self-service hosting: you deploy and control memory, variables and restarts from the dashboard. It supports the official Cloud API, as well as Baileys, WPPConnect and whatsapp-web.js. Meta still bills the messages; hosting is a separate cost.
For the webhook, the web application gets a squareweb.app subdomain with HTTPS, which can serve as the callback URL. Containers are always on, with no sleep mode, and automatic restart (on by default for dashboard deploys) when the process exits with an error.
Every plan is paid and billed in Brazilian reais. Hobby costs R$12.49 per month, with 1 GB of RAM shared across your applications (at least 512 MB per web application). You can deploy by ZIP, CLI, GitHub or the VS Code extension. The details are on the WhatsApp bot hosting page.
Bot hosting
Keep your bot online 24/7 with automatic restarts
FAQs
Is the official WhatsApp API paid?
Yes, per use. Meta charges for each delivered message: templates by category and country and, since October 1, 2026, non-template replies beyond the 1,000 free ones each number gets per month. Meta's pricing page does not list a platform subscription.
Which messages are free on the official API?
The first 1,000 service (non-template) messages each month on every business number, and everything you send inside a free entry point window, which opens when the customer arrives through a Click to WhatsApp ad and you reply. Since October 1, 2026, utility templates sent inside the customer service window are billed again.
Do I need a provider (BSP) to use the official API?
It is not required. You can use the Cloud API directly, with a Meta business portfolio and a business phone number. Providers offer a dashboard and support, with their own price list; check what they charge on top of Meta.
Can I use my personal number with the official API?
Not as a personal number. The Cloud API requires a business portfolio and a business phone number, which can be real or virtual.
How much does a marketing message cost?
It depends on the recipient's country and can change every quarter. Meta publishes the rate card by country and currency (CSV and PDF) on its pricing page. Check it before you calculate, because third-party estimates vary widely.
More in Bots
See all 33 articles- How much does it cost to host a Discord bot?The cost of hosting a Discord bot depends on RAM, uptime, database and outside services. Learn how to estimate your own bill and where the money goes.
- Running a bot on your phone or PC vs hosting itA bot on your PC or phone (Termux) goes offline when the device shuts down, sleeps or loses its network. Compare the three options and when each one fits.
- How to host a Discord bot 24/7To keep a Discord bot online 24/7, run its process on an always-on machine with automatic restarts. Compare your PC, a VPS with pm2 or systemd, and bot hosting.
- Why your Discord bot keeps going offline (and how to fix it)A Discord bot goes offline when the process dies, the token is invalid, an intent is disabled or memory runs out. Learn to diagnose each cause and fix it.