WhatsApp APIEvolution APIOpenWAMeta Cloud APIn8nself-hosted

Evolution API vs OpenWA vs Meta Cloud API: Which WhatsApp API Should You Use?

·8 min read

"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

  • Simplest to start: one compose command, no external database
  • Perfect for personal automation: server alerts, reminders to yourself, a family group bot
  • Works well with n8n. I have a full API reference with n8n workflows

  • Not so good

  • Runs a real headless Chromium, so it uses more RAM than Baileys-based tools (plan for 1 GB+ per session)
  • One session per instance in a typical setup
  • Breaks when WhatsApp Web changes, until the library catches up

  • 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

  • Two engines in one: start on Baileys (free), switch an instance to the official Cloud API later without rewriting your integration
  • Multi-instance: many numbers from one server, each with its own API key
  • Native Chatwoot integration: a free shared inbox for your support team. This is the main reason Indian SMBs pick it
  • Baileys talks to WhatsApp over WebSockets with no browser, so it's lighter per session than OpenWA
  • Typebot, Dify and OpenAI hooks for chatbots without writing glue code

  • Not so good

  • More moving parts: PostgreSQL or MySQL, plus Redis for caching
  • Baileys mode has the same ban risk as any WhatsApp Web bridge
  • Docs and community are mostly Portuguese-first (the project is Brazilian), though the English docs are fine for setup

  • The licence clause to read before you sell it


    Evolution API is Apache 2.0 with extra conditions. From the LICENSE file:


  • If you use its frontend components, you can't remove or change the Evolution API logo and copyright in the console.
  • If you use Evolution API in any project, including closed-source software, you must show a clear notice that Evolution API is being used, visible to system administrators in the docs or settings page.

  • 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

  • No ban risk from the connection method
  • No BSP subscription if you integrate directly (n8n's WhatsApp Business Cloud node does this)
  • Green-tick eligibility, catalogs, flows, Click-to-WhatsApp ads with a free 72-hour window
  • Replies inside the 24-hour customer service window are free

  • Not so good

  • Business verification takes days, and some Indian sole proprietors struggle with the documents
  • Templates need approval, and Meta re-categorises "utility" messages that read like promotions as marketing (about 7.5× the price)
  • The number can't be used in the normal WhatsApp app at the same time (coexistence options exist but have limits)

  • 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:


  • Use a number that's been active for months, not a new SIM
  • Message people who saved your number or messaged you first
  • Don't send identical text to hundreds of people. Space messages out
  • Keep the phone online and the linked session stable. Don't re-scan QR codes daily
  • Never use your main business number for testing

  • 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.

    Built something similar or want to talk through the architecture? Get in touch.