
Deploy Evolution API vs WAHA
Two self-hosted WhatsApp HTTP APIs compared honestly
Just deployed
/var/lib/postgresql/data
evolution-api
Just deployed
/evolution/instances
Redis
Just deployed
/data
Deploy and Host self hosted Evolution API vs WAHA (Open-Source WhatsApp API) on Railway
This template deploys Evolution API v2.3.7 with Postgres and Redis on Railway, so you can test the Baileys engine on real numbers before you commit to WAHA. It is written for developers choosing a self-hosted WhatsApp HTTP API.
About Hosting Evolution API vs WAHA open-source software on Railway (self hosted Evolution API template)
This template runs Evolution API v2.3.7, pinned by digest, with Postgres and Redis in the same Railway project. No vendor sits between your numbers and your database.
Railway supplies the public domain, TLS, the generated AUTHENTICATION_API_KEY and the volume, so you open /manager and scan a QR.
Why Deploy Evolution API vs WAHA, the WAHA alternative on Railway (Railway Free Trial)
Both are free to self host, so the real comparison is fit, not price: WAHA gives you four engines and a lean websocket path, while this template ships Evolution API v2.3.7 with Postgres and Redis wired up. Try it on the 5 USD Railway trial and decide with your own number linked.
Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.
By deploying Evolution API vs WAHA on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.
Railway vs Other Hosting Providers and VPS for Evolution API vs WAHA self hosting
The image is the same everywhere; the setup work around it is not.
| Provider | What You Get with Railway | What You Get with the Other Provider |
|---|---|---|
| DigitalOcean | Postgres, Redis and TLS wired up on deploy. | Droplet or App Platform plus managed databases, billed apart. |
| AWS | Same stack, public domain, no VPC or security group work. | EC2 with RDS and ElastiCache, more setup and more knobs. |
| Hetzner | Volume for sessions, managed Postgres and Redis. | Cheap VPS; you run Compose, backups and TLS. |
Common Use Cases for hosted Evolution API vs WAHA
- Many client numbers, one server: Evolution API puts several instances on one container, each with its own token, so an agency hosts ten numbers against shared Postgres and Redis.
- A Chatwoot inbox: turn an instance into a shared support channel; enable the Chatwoot integration in the manager instead of writing a bridge yourself.
- Single-number alert bot: one instance posting to a webhook covers uptime or order notifications; WAHA's NOWEB engine does the same job with less RAM.
- Typebot flow on WhatsApp: wire the built-in Typebot integration for lead capture or booking, then hand off to a human when the flow ends.
- Cloud API later: start on Baileys with a dedicated number, then add an official Cloud API instance when volume or compliance demands it.
Dependencies for Evolution API vs WAHA Docker hosted on Railway
This template runs three services: evolution-api pinned to evoapicloud/evolution-api:v2.3.7 by digest on port 8080, Postgres, and Redis.
Deployment Dependencies for Managed Evolution API vs WAHA Service (WhatsApp API)
- Database: DATABASE_CONNECTION_URI from Railway Postgres DATABASE_URL, with the DATABASE_SAVE flags true for instances, messages, contacts and chats.
- Cache: CACHE_REDIS_URI from Railway Redis REDIS_URL.
- Auth and volume: AUTHENTICATION_API_KEY is the global apikey header; /evolution/instances holds session files, so redeploys keep numbers linked. TELEMETRY_ENABLED is false.
Implementation Details for Evolution API vs WAHA (Using Evolution API official docker image)
The pinned digest matters: a floating tag can change Baileys behavior between deploys and drop linked numbers. Comparing engines? Sessions do not transfer, so each number is re-linked by QR.
How does Evolution API vs WAHA compare against other self-hosted WhatsApp APIs
Evolution API vs WAHA (WAHA Alternative)
- Instance model: Evolution runs many numbers in one Node.js server; WAHA's free Core image has unlimited sessions too.
- Engines: WAHA swaps WEBJS, WPP, NOWEB or GOWS via WHATSAPP_DEFAULT_ENGINE; Evolution ships Baileys plus an official Cloud API instance type.
- Integrations: Chatwoot, Typebot, OpenAI and Dify are built in behind a /manager UI; WAHA gives you Swagger and glue code.
- RAM: WAHA's browser engines cost more memory; Baileys and NOWEB keep small boxes happy.
Evolution API vs WPPConnect (WPPConnect Alternative)
- Both unofficial: neither is safer from bans; use dedicated numbers either way.
- Where WPPConnect wins: finer low-level control of WhatsApp Web and a mature TypeScript client.
- Batteries: Evolution adds Postgres, Redis and Chatwoot wiring; WPPConnect leaves storage to you.
Evolution API vs Twilio WhatsApp (Twilio Alternative)
- Official by default: Twilio only speaks Meta's Cloud API, so no QR and no unofficial bans, but templates and verification are mandatory.
- Cost shape: Twilio adds a per-message fee on top of Meta's; self-hosted Evolution costs hosting only.
- Where Twilio wins: support SLAs and deliverability at volume; Evolution keeps sessions on the /evolution/instances volume so redeploys hold.
Evolution API vs Whapi.Cloud (Whapi.Cloud Alternative)
- Managed vs yours: Whapi.Cloud is hosted, billed per instance; Evolution is free software and you pay Railway.
- Where Whapi wins: no Postgres or Redis to size, fastest path to a first message.
- Control: Evolution exposes webhooks, WebSocket, RabbitMQ and SQS, plus the Cloud API instance type.
How to use Evolution API vs WAHA (the OSS WhatsApp HTTP API)?
- Open https://your-domain/manager and log in with AUTHENTICATION_API_KEY from your Railway variables; it is also the apikey header.
- Create an instance, then scan the QR code from WhatsApp Linked devices with a dedicated number, not your main one.
- Send a test message:
curl -X POST https://your-domain/message/sendText/INSTANCE -H "apikey: YOUR-KEY" -H "Content-Type: application/json" -d '{"number":"5511999999999","text":"hello"}'
- Set a webhook URL on the instance so events reach your app.
- Connect Chatwoot in the manager if you need an inbox.
Opening the root URL returns a welcome JSON with the version, a fast health check before you blame the QR.
How to self host Evolution API vs WAHA on other VPS Services (Evolution API self hosting guide)
Clone the Repository
git clone https://github.com/EvolutionAPI/evolution-api
cd evolution-api
Install Dependencies
Docker Engine and the Compose plugin. The repo's compose file joins an external dokploy-network, so create it (or delete it from the file), and pin the image to v2.3.7 instead of latest.
docker network create dokploy-network
Configure Environment Variables
Copy .env.example to .env, then set:
AUTHENTICATION_API_KEY=your-key
DATABASE_PROVIDER=postgresql
POSTGRES_USERNAME=evolution
POSTGRES_PASSWORD=change-me
POSTGRES_DATABASE=evolution
DATABASE_CONNECTION_URI=postgresql://evolution:change-me@evolution-postgres:5432/evolution
CACHE_REDIS_URI=redis://evolution-redis:6379/6
Start the Evolution API vs WAHA Application
docker compose up -d
The API binds 127.0.0.1:8080, so put a reverse proxy on the same host. Open https://your-domain/manager, log in with the key, create an instance, scan the QR. Railway handles the domain, TLS, Postgres and Redis wiring, and restarts.
Official Pricing of Evolution API vs WAHA (Evolution API pricing)
Neither project charges for the software itself. Your real cost is infrastructure: roughly 5-15 USD/mo on Railway for the API plus Postgres and Redis at light use.
Evolution API vs WAHA cloud vs self hosted comparison (Pricing, features, costs, and more)
Both are free software with no per-instance license. You pay for hosting, and the engine you pick moves the bill more than the API does.
Monthly cost of self hosting Evolution API vs WAHA on Railway
This template runs about 5-15 USD/mo at light use, covering the API, Postgres and Redis. WAHA sits in the same range on a websocket engine, but a browser engine adds RAM and the bill drifts up with it.
System Requirements for Hosting Evolution API vs WAHA on a VPS
Evolution API is fine on 1 vCPU and 1-2 GB RAM for a handful of numbers, with Postgres and Redis on the same host. WAHA on NOWEB or GOWS is close. WEBJS and WPP spawn Chromium per session, so budget 2-4 GB. Session files live on disk, so size the volume for the numbers you connect.
Frequently Asked Questions (FAQs)
Is WAHA Plus still paid?
No. Since WAHA 2026.6.1 the former Plus features, including unlimited sessions, media and all storages, are in the free devlikeapro/waha image.
Which one handles more numbers on a single server?
Evolution API, which is built around many instances in one deployment, each with its own token. WAHA goes multi-session too, but browser engines cost RAM per session.
Can I move sessions between Evolution API and WAHA?
No. Session formats are not portable, so each number must be re-linked by QR, and you should keep the old stack alive until the new one confirms.
Which is safer from bans?
Neither unofficial engine is safe by default. Use dedicated numbers, warm them up, avoid bulk sends, and send real volume through the official Cloud API.
Does WAHA support the official WhatsApp Cloud API?
Not as an engine; WAHA focuses on web-protocol engines. Evolution API can run a Cloud API instance next to Baileys ones on the same server.
Which uses less RAM?
Websocket engines: WAHA NOWEB or GOWS, and Evolution on Baileys. Puppeteer-based WEBJS and WPP spin up Chromium per session, so budget more on Railway.
Template Content
evolution-api
evoapicloud/evolution-api:v2.3.7Redis
redis:8.2