Evolution API earned its popularity. An open-source REST wrapper over Baileys with native integrations into n8n, Typebot, Chatwoot, and Dify, multi-instance support, and event streaming through RabbitMQ, Kafka, SQS, or plain webhooks. For a lot of teams, it was the fastest route from "we need WhatsApp" to "we have WhatsApp."
Two things send people looking for alternatives. One is recent and specific. The other has always been true and takes about six months to notice.
The licensing change
From version 2.4.0 onward, Evolution Foundation requires each instance to activate against their licensing server before the API will serve traffic. The manager ships with a license-aware login flow that handles an HTTP 503 withLICENSE_REQUIRED, calls a registration endpoint, and completes activation through a callback. The newer Evolution Go project lists license registration, activation, and heartbeat as built-in features.
Pinning to 2.3.7 avoids the activation step, and a lot of deployment templates now do exactly that. But pinning is a pause, not a plan. You stop receiving fixes for a codebase tracking an undocumented protocol that changes without notice, which is precisely the codebase you least want frozen.
Whether this matters to you depends on why you self-hosted. If it was cost, activation may be tolerable. If it was independence, a phone-home check before your API serves traffic is a different product than the one you adopted, and re-evaluating is reasonable rather than reactionary.
The infrastructure you were running anyway
Worth stating separately, because it applies whatever you think of the licensing.
A production Evolution deployment is not one container. It needs PostgreSQL for instances, messages, contacts, and chat history. It needs Redis for cache and session state. It needs a persistent volume at /evolution/instances for authentication data, and if that volume is ephemeral, you re-scan QR codes on every restart. Prisma migrations run on boot, and a missing migration table stops the server rather than degrading gracefully. High-throughput deployments add RabbitMQ, Kafka or SQS to decouple webhook delivery so events are not lost under load.
That is a four-to-six service stack with its own backup story, its own upgrade path and its own failure modes. Community reports consistently trace most Evolution problems to VPS configuration and resources rather than to WhatsApp, which tells you where the maintenance actually lands.
None of this is a criticism of the project. It is what running a multi-tenant messaging backend involves. The question is whether you want to be running one.
The alternatives
WAHA is the closest like-for-like. A Dockerised REST API with a dashboard and Swagger UI under Apache-2.0, with three engines to choose from: WEBJS, NOWEB (Baileys underneath, like Evolution) and GOWS. It changed significantly in 2026, folding the previously paid Plus features including multi-session and media into the free public image from version 2026.6.1, and dropping the tiered subscription model for a symbolic community tier.
For someone leaving Evolution over licensing, this is the obvious first look: same self-hosted shape, same protocol layer available, permissive licence, no activation server. You still own the infrastructure.
Baileys directly if your use of Evolution was narrow. Plenty of deployments use three endpoints and a webhook, and if that is you, the wrapper was carrying more weight than you needed. You take on session persistence, reconnection, and an HTTP layer in exchange for owning a much smaller surface.
A managed API if the licensing question prompted a broader rethink. Flat pricing per connected number, typically $5 to $35 for one to ten numbers, with session management, reconnection, queueing and protocol maintenance absorbed centrally. No Postgres, no Redis, no volume mounts, no migration failures at 2 am, and no activation server either.
The comparison people get wrong is licence cost against subscription cost. The real comparison is a multi-service VPS plus four to eight engineering hours a month against a monthly fee. Infrastructure alone typically lands at $50 to $120; engineering dominates from there.
WasenderAPI and similar hosted providers occupy the same category at comparable prices, and it is worth getting two trials running before deciding.
What migration actually involves
Less than you would think, because Evolution's API is conventional REST and so is everything you would move to.
Endpoint mapping. Evolution's POST /message/sendText/{instance} maps onto whatever the destination calls its send endpoint. Instances become sessions or connections. The shapes differ; the concepts do not. For a typical integration, this is an afternoon.
Webhooks. Evolution's event payloads have their own structure, so your handler needs remapping. If you already normalise inbound events into your own internal type, this is one function. If you pass Evolution's payloads through your codebase, this is where the time goes, and it is a good argument for adding that boundary regardless of what you migrate to.
Re-authentication. Sessions do not transfer between platforms. You re-scan the QR code. The number, chat history, and contacts are unaffected because none of them live in Evolution.
Your data. If you were using Postgres to store message history, decide whether you need it exported before you tear the stack down. Hosted platforms vary in what they retain, and that is worth checking against your retention policy rather than assuming.
Integrations. If you were relying on Evolution's native Typebot, Chatwoot or Dify hooks, check whether the destination has equivalents or whether you rebuild them through n8n or plain webhooks. This is usually the largest single item, and the integrations overview is where to start if you are heading toward a workflow-tool approach.
When to stay
Not everyone should move, and there are clear cases.
You use the native integrations heavily. If Chatwoot and Typebot hooks are load-bearing, rebuilding them may cost more than the licensing friction.
You need multi-provider support. Evolution can front both Baileys and Meta's Cloud API, which is a genuinely useful hedge if you run official and unofficial channels together.
Your data cannot leave your infrastructure. No hosted provider answers this, and it is the strongest reason to self-host anything.
You are running at a scale where per-session pricing exceeds infrastructure. At fifty or a hundred numbers, the arithmetic reverses.
Activation is simply not an issue for you. If you have no objection to a licence check and the project keeps shipping, staying current is better than pinning to 2.3.7 forever.
The thing to fix either way
Whatever you decide, put a boundary between your application and whichever WhatsApp backend you use. A thin internal interface with your own event types and your own send function means the next change is a day rather than a project.
Most of the pain people describe when leaving one of these platforms is not the platform. It is that vendor payload shapes leaked into forty files. That is fixable once and pays for itself the next time something like a licensing change lands. If you are also reconsidering whether to go official at all, the routes around Meta approval cover what that path costs, and our pricing is deliberately simple so the comparison is easy to run.
Common Questions
Does Evolution API require a license now? From version 2.4.0, instances must activate against Evolution Foundation's licensing server before the API serves traffic. Version 2.3.7 and earlier do not require activation, which is why many deployment templates pin to it.
What is the best Evolution API alternative? WAHA for a like-for-like self-hosted REST API under Apache-2.0. Baileys directly if your usage is narrow. A managed flat-rate API if you want to stop running the stack.
Is Evolution API still open source? It is published under Apache-2.0 with brand-protection conditions, so read the licence rather than assuming standard terms. The activation requirement in newer versions is a separate consideration from the licence itself.
How hard is it to migrate off Evolution API? For a typical integration, an afternoon for endpoints and webhook remapping, plus a QR re-scan. It takes longer if Evolution's payload shapes are spread through your codebase, or if you depend on its native Typebot and Chatwoot hooks.
Do I lose my chat history if I switch? No. History lives on WhatsApp and on the phone. If you were storing messages in Evolution's Postgres database, export that before decommissioning it.
Is a hosted API cheaper than self-hosting Evolution? Usually below roughly twenty sessions, once engineering time is counted honestly. Infrastructure runs $50 to $120 a month, and maintenance dominates from there. Above that, self-hosting can win.
Does switching reduce ban risk? No. Risk tracks sending behaviour rather than platform. Hosted providers add server-side pacing, but opted-in traffic is what actually keeps numbers alive.