Evolution API vs OpenWA vs Meta Cloud API: Which WhatsApp API Should You Use?
"Evolution API" is one of the fastest-rising WhatsApp searches in India this year. Most people find it the same way I found OpenWA: they want WhatsApp automation without a ₹3,000/month BSP subscription. Before you pick one, you need to know how each one actually talks to WhatsApp, because that decides whether your number survives.
I run OpenWA with n8n for my own alerts, and I've set up Evolution API and Meta's Cloud API for clients. This is the comparison I wish I'd had.
The one thing that matters: how it connects
There are only two ways software can send WhatsApp messages:
1. Pretend to be WhatsApp Web. Scan a QR code and the tool runs a WhatsApp Web session for you. Free, works with any normal or Business app number, but it's against WhatsApp's terms and Meta can ban the number.
2. Use Meta's official WhatsApp Business Platform (Cloud API). Verified business, approved templates, pay per template message. No ban risk from the method itself.
Every WhatsApp tool you'll see is one of these underneath, even if its landing page doesn't say so.
| OpenWA | Evolution API | Meta Cloud API | |
|---|---|---|---|
| How it connects | WhatsApp Web via whatsapp-web.js (runs a headless browser) | WhatsApp Web via Baileys (WebSocket, no browser) or the official Cloud API | Official Meta API |
| Cost per message | ₹0 | ₹0 on Baileys; Meta's rates on Cloud API | ₹0.86 marketing, ₹0.115 utility (+18% GST) |
| Ban risk | Yes | Yes on Baileys; no on Cloud API | No (unless you spam) |
| Template approval | Not needed | Not needed on Baileys | Required for messages outside the 24-hour window |
| Needs | Docker (SQLite built in) | Docker + PostgreSQL/MySQL, Redis recommended | Meta Business account, verified number |
| Licence | Open source | Apache 2.0 plus extra conditions (see below) | Proprietary, Meta's terms |
| Built-in integrations | REST API + webhooks | Chatwoot, Typebot, Dify, OpenAI, RabbitMQ, Kafka, SQS, S3/MinIO | Webhooks, any BSP |
OpenWA
OpenWA is an open-source WhatsApp gateway built on NestJS and whatsapp-web.js. You run it in Docker, scan a QR code, and get a REST API plus webhooks.
Good
Not so good
Setup guide: Self-host a free WhatsApp API with n8n and OpenWA.
Evolution API
Evolution API started as a fork of CodeChat on top of the Baileys library and is now maintained by the Evolution Foundation (about 10k GitHub stars). It's the most complete self-hosted option.
Good
Not so good
The licence clause to read before you sell it
Evolution API is Apache 2.0 with extra conditions. From the LICENSE file:
If you don't meet these, you may need a commercial licence. For an agency building a white-label WhatsApp CRM for Indian clients, this matters. Email the maintainers before you build a product on it.
Meta Cloud API (direct)
The official route. You create an app in Meta for Developers, verify your business, register a number, and get approved templates. Meta hosts it; you just call the API and receive webhooks.
Good
Not so good
The full rupee breakdown is in WhatsApp Business API pricing in India.
Which one should you use?
| Your situation | Use |
|---|---|
| Personal alerts, home-lab notifications, your own number | OpenWA |
| Small team needs a shared WhatsApp inbox (Chatwoot), low volume, accepts some risk | Evolution API (Baileys) |
| Same as above, but you'll go official once it works | Evolution API, then switch the instance to Cloud API |
| Messaging customers at scale, broadcasts, OTPs, anything your business depends on | Meta Cloud API |
| Marketing broadcasts to cold lists | None. You'll get banned on a bridge and penalised on the official API |
My rule: if losing the number would hurt the business, use the official API. The bridges are great for internal and personal use, and for proving an idea before paying Meta.
How to lower ban risk on a bridge
None of these make it safe, but they help:
For workflow ideas that stay on the safe side (alerts, replies, internal groups), see WhatsApp n8n workflow varieties.
Quick install comparison
OpenWA: one compose file, zero config.
git clone https://github.com/rmyndharis/OpenWA.git
cd OpenWA
docker compose -f docker-compose.dev.yml up -d
Evolution API: app + Postgres + Redis, best with compose. The official repo ships a docker-compose.yaml. Clone it, set AUTHENTICATION_API_KEY and the database URL in .env, then:
git clone https://github.com/evolution-foundation/evolution-api.git
cd evolution-api
cp .env.example .env # set AUTHENTICATION_API_KEY, DATABASE_CONNECTION_URI
docker compose up -d
Meta Cloud API: nothing to install. Create the app at developers.facebook.com, add the WhatsApp product, and copy the phone number ID and access token into n8n.
Need help picking a route, or moving a bridge-based bot onto the official API without downtime? Get in touch.
Related Posts
Built something similar or want to talk through the architecture? Get in touch.