Cost

Self-hosted Evolution API or WAHA vs a managed WhatsApp API: the real cost (TCO)

Self-hosting Evolution API or WAHA costs less in licensing and more in time: the software is free according to the projects themselves, and the real cost sits in servers, database, monitoring, updates and the hours of whoever keeps it all running. A managed API swaps that work for a fixed price per number. Which one wins depends on how many numbers you run, what your team's hour is worth and what downtime costs you. Bias warning: ZapZap is a managed API, so we measure the bill with an honest ruler and point out the cases where self-hosting is the better call.

Published on · 7 min read

This article is also available in: Português · Español

What TCO is and why the license price misleads

TCO (total cost of ownership) is everything you pay to keep the channel working over a period, not just the visible monthly fee. With open source software the license line is zero, and the bill moves to other lines: infrastructure, engineering time, risk and opportunity cost.

The most common mistake is to compare a zero license with the price of a managed service and conclude that self-hosting is free. The code is free. The server that runs 24 hours a day, the database, the backups, the updates when WhatsApp changes and the person who wakes up when the session drops all cost money, even when that cost is hidden inside someone's salary.

What Evolution API and WAHA say about cost

Checked on October 27, 2026. The WAHA website (waha.devlike.pro) states the project is free and open source, with no message limit, no time limit and no license expiry. The official Evolution API repository (github.com/EvolutionAPI/evolution-api) shows an Apache 2.0 license with extra brand-protection conditions, and lists Node.js 20 or later, PostgreSQL or MySQL, and Redis recommended for caching, with a Docker image available.

Evolution API connects in two ways: through a WhatsApp Web based session (Baileys), which the project describes as free and possibly limited compared with official options, and through Meta's Cloud API, which requires following Meta's policies and may charge per message. So Meta's cost still exists if you use the official mode, wherever the tool is hosted. Current billing rules are in WhatsApp Business API: costs and paths.

For a project by project comparison, see ZapZap vs Evolution API and ZapZap vs WAHA, which carry the sources for each.

Which lines go into the bill

Build the comparison by lines, not by impression. The table below lists what usually goes into the TCO of each model. The values are yours: fill them in with what you pay today.

Cost lineSelf-hosting Evolution or WAHAManaged API
---------
Software licenseFree according to the projectsIncluded in the price
Server (CPU, memory, disk)Yours, per instance or group of instancesThe vendor's
Database and RedisYours (Evolution requires a database and recommends Redis)The vendor's
Backup and restoreYoursThe vendor's
Updates when WhatsApp changesYour timeThe vendor's
Monitoring and downtime alertsYours, or noneThe vendor's, within limits
Security (HTTPS, firewall, keys)YoursShared
SupportCommunity and issuesVendor channel
Per-message chargeNone in unofficial modeDepends on the vendor
Risk of number restrictionYours, same in bothYours, same in both

The last line deserves emphasis: hosting or buying does not change the ban risk of the number, because it comes from unofficial use and your sending behavior, not from where the server sits. Anyone who sells the opposite is promising something they do not control. See anti-ban for WhatsApp.

How to calculate your TCO in an afternoon

Use this monthly formula for the self-hosting path: TCO = server + database and Redis + backup + (maintenance hours per month x hourly value) + expected cost of downtime. For the managed path: TCO = (number of instances x price per instance) + (integration hours per month x hourly value).

Practical steps: 1) count how many numbers you will have in 6 and in 12 months; 2) ask whoever runs infrastructure for an honest estimate of hours per month on updates, session drops and team support; 3) multiply by the hourly value, using the full cost of the professional, not just the salary; 4) estimate what an hour of channel downtime costs your operation (lost sales, stalled support); 5) add it up and compare over the same horizon.

At ZapZap the price is R$15 per active number per month, prepaid, with no per-message charge; the current value is on the pricing page. For the official Meta side, the API cost calculator uses the official rate in Brazilian reais, with the check date visible, and compares it against your volumes.

When self-hosting wins

Self-hosting tends to win when you already have an infrastructure team with spare capacity, when a contract requires data to stay in your own environment, when you want to change the project's code, or when you run many numbers and can automate operations. In those cases the marginal cost of one more instance is small and control is worth it.

It also fits experiments and study: spinning up a test instance on a small server is a great way to learn how WhatsApp Web behaves. Just do not confuse a lab with serving customers.

When the managed API wins

The managed option tends to win when nobody in the company wants to be on call for the connection, when the team is small and each engineering hour is worth more than the price difference, when you need to start today, or when the operation depends on a stable channel to serve customers. Paying per number fixes the cost and turns the rest into forecasting.

There is also the vendor's scale effect: whoever runs many sessions has already hit the reconnection, queue and webhook problems you would face alone. The trade-off is depending on a third party and accepting the product's limits. If that bothers you, self-hosting is a legitimate answer.

A middle path: start managed and migrate if it makes sense

Because the integration layer of both is HTTP with webhooks, you can start on the managed API, measure real volume for a few months and only then decide whether to bring it in-house. Write your code against a thin layer, with the base URL and keys in environment variables, and switching stays cheap.

The reverse works too: anyone who self-hosts and tires of being on call can move numbers to a managed API. Either way, every reconnected number needs a new QR code scan, so plan a window and warn the support team. Before deciding, test the managed API with a secondary number, using the welcome credit (no deposit, one per phone, after verifying the phone).

Quick summary

  • Evolution API and WAHA are free according to the projects themselves (checked on October 27, 2026), but servers, database, backups, updates and on-call time cost real money.
  • TCO = infrastructure + maintenance hours x hourly value + expected cost of downtime. Fill it in with your numbers, not someone else's.
  • Self-hosting wins with spare infrastructure capacity, data-residency requirements or a need to change the code.
  • The managed API wins when nobody wants to be on call for the connection and the team is small.
  • Hosting or buying does not change the ban risk of the number: it comes from unofficial use and sending behavior.

Also read

Frequently asked questions

Are Evolution API and WAHA really free?

According to the projects themselves, checked on October 27, 2026: the WAHA site says it is free and open source, with no message limit or license expiry, and the Evolution API repository shows an Apache 2.0 license with additional conditions. The software is free, but running it (server, database, backups, maintenance) costs money. Reread the official pages before deciding, because terms and editions change.

How much does a server to run Evolution API or WAHA cost?

We do not publish a number because it depends on the provider, the region and how many instances you run. Check your provider's price, add the database, Redis (recommended by Evolution) and backups, and put it in this guide's TCO worksheet.

Does self-hosting reduce the risk of getting banned?

No. The risk of number restriction comes from unofficial use of WhatsApp and from sending behavior, and it is the same in both models. What changes is who looks after the infrastructure. WhatsApp's Terms do not provide for this use.

Is Meta's official API worth it instead of both?

It is when the number is irreplaceable, when a certified channel is required or when transactional volume is large. Meta has charged per delivered message since July 1, 2025, and current values are on its official pricing page. See the WhatsApp Business API guide.

Can I migrate from a self-hosted instance to a managed one later?

Yes. The integration is HTTP with webhooks in both cases, so your code barely changes if you isolate the base URL and keys. Each number must be reconnected with a new QR code scan, so pick a low-traffic window.

Compare with your own numbers before deciding

Use the calculator, count the hours your team spends and test a secondary number. Create the account, verify your phone and receive the welcome credit with no deposit (one per phone, subject to the current campaign).