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 template message. The official pricing page lists no platform subscription, only the price per message.
Templates are messages Meta approves in advance, and each one belongs to one of three categories:
| Category | What it is for | When it is billed |
|---|---|---|
| Marketing | Promotions, offers, re-engagement | Whenever delivered |
| Utility | Order confirmation, shipping status, payment reminder | Outside the customer service window; inside it, free |
| Authentication | Verification codes (OTP) | Whenever delivered |
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.
Which messages are free?#
Two situations bring the charge to zero:
- Customer service window (24 hours). It opens when the user writes to you. While it is open, non-template messages and utility templates are free. Once the 24 hours pass, you can only send templates, and those are billed.
- Free entry point window (72 hours). It applies when the user arrives through a Click to WhatsApp ad or a Facebook Page call-to-action button, from the mobile app (desktop and web do not count). If you reply within 24 hours, a 72-hour window opens in which every message, templates included, is free.
In practice, a support bot where the customer always starts the conversation costs little or nothing in Meta fees. The bill grows 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 this article does not pin down a price per message: download the current quarter's rate card and use the calculation below.
The script estimates the monthly cost. 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 };
// DELIVERED messages per month that are billed.
// Utility sent inside the 24 h window is free: do not count it.
const volume = { marketing: 2000, utility: 1500, authentication: 800 };
let total = 0;
for (const [category, count] of Object.entries(volume)) {
const cost = count * rates[category];
console.log(`${category}: ${count} 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,230.00 (in the rate card's currency), of which 1,000.00 comes from marketing. 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, MXN, ARS, CLP, COP and PEN. Check which currency your account is billed in, since each currency has its own rates.
- 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, but per use. Since July 1, 2025, Meta charges for each delivered template message, priced by category and country. Meta's pricing page does not list a platform subscription. Free-form text inside the 24-hour window is not charged.
Which messages are free on the official API?
Non-template messages sent while the 24-hour customer service window is open, and utility templates sent inside that window. When the customer arrives through a Click to WhatsApp ad or a Facebook Page button and you reply within 24 hours, a 72-hour window opens in which every message is free.
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.