Alternativa à Evolution API: quando vale sair do self-hosted

A Evolution API é um projeto open source que você instala no próprio servidor, com suporte à conexão não oficial e à Cloud API da Meta. Quem busca uma alternativa costuma querer manter a mesma flexibilidade sem carregar a operação: servidor, banco, atualização e plantão. A D-API entrega a API como serviço gerenciado, e esta página mostra quando a troca compensa e como fazer.

O que você realmente opera quando hospeda a Evolution API

Pelo README oficial, rodar a Evolution API em produção pede Node.js 20 ou superior, PostgreSQL ou MySQL e, de forma recomendada, Redis. Também há imagem Docker pronta. Instalar é rápido. O custo aparece no dia a dia:

  • Servidor dimensionado para o número de conexões e com espaço para crescer.
  • Banco de dados com backup, migração de schema a cada versão e monitoramento.
  • Atualização do projeto quando o WhatsApp muda algo no protocolo do WhatsApp Web.
  • Alguém de plantão para descobrir por que as conexões de um servidor caíram às duas da manhã.
  • Rede: todas as conexões de um servidor saem pelo mesmo IP, a menos que você configure proxies.

Para um time pequeno, isso compete diretamente com o roadmap do produto. É esse o ponto que costuma levar à busca por uma alternativa: não um defeito do projeto, e sim o tempo que ele pede. A comparação mais ampla entre os dois modelos está em self-hosted vs gerenciada.

Motivos comuns para buscar uma alternativa

  • Escala sem virar time de infraestrutura. Passar de dez para trezentas conexões exige mais servidores, balanceamento e observabilidade.
  • Isolamento entre clientes. Num SaaS, um cliente com comportamento de envio arriscado não deveria afetar os outros que estão no mesmo servidor.
  • Custo previsível. Servidor e horas de engenharia variam mês a mês; um valor por conexão entra direto na planilha de margem.
  • Suporte com prazo. Comunidade ajuda muito, mas não responde a um incidente com hora marcada.

Evolution API e D-API comparadas

CritérioEvolution APID-API
ModeloOpen source, você hospedaServiço gerenciado
Licença e custoApache 2.0 com condições de marca; custo é o da sua infraestruturaCobrança por conexão, não por mensagem
Tipos de conexãoWhatsApp Web (Baileys) e Cloud API oficialNão oficial (QR Code) e Cloud API oficial
AutenticaçãoHeader apikey, com tokens por instânciaAPI Key no header Authorization
IP por conexãoDepende de como você configura a rede e os proxiesProxy com IP único para cada conexão, incluído
Integrações prontasTypebot, Chatwoot, RabbitMQ, Kafka, SQS, S3/MinIO e outrasn8n, RabbitMQ e S3/MinIO; demais via webhook e HTTP
Quem mantém de péSeu timeA D-API, com self-healing e ambiente isolado por instância

A Evolution tem mais integrações nativas com ferramentas de atendimento. Se o seu fluxo depende de várias delas, pese isso. Se o que pesa é tempo de operação e isolamento, a balança vai para o lado gerenciado.

O que muda ao migrar para a D-API

Você continua com uma API de WhatsApp REST, com webhooks e as duas modalidades de conexão. O que sai da sua lista é o servidor. Cada instância roda em ambiente próprio, com credenciais e webhook próprios, e sai por um IP que não é dividido com outros números. Se uma conexão cai, a plataforma tenta recuperá-la sozinha, e você recebe o evento connection.status para avisar o cliente.

Os webhooks também mudam de responsabilidade: se o seu endpoint falhar, a D-API faz até 7 tentativas com intervalo crescente, com timeout de 30 segundos por tentativa. Para quem já usava fila, também dá para receber os eventos por RabbitMQ, configurado por sessão.

Guia de migração da Evolution API

1. Traduza os conceitos

Na Evolution APINa D-API
InstânciaSessão, com um sessionId definido por você
Header apikey globalHeader Authorization com a API Key da conta, sem Bearer
Token específico da instânciaNão há: a API Key da conta vale para todas as sessões, e o sessionId vai no corpo
Webhook e eventos por instânciaWebhook por sessão, com uma URL para tudo ou uma URL por evento
Conexão Cloud APISessão com type: "cloud_api"

2. Crie as sessões e aponte os eventos

O exemplo cria a sessão de um cliente e separa mensagens recebidas e status de conexão em URLs diferentes, o que ajuda quem hoje trata tudo num único endpoint gigante:

curl -X POST https://api.d-api.cloud/api/v1/sessions \
  -H "Authorization: SUA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "sessionId": "loja-centro", "type": "unofficial", "connectionMode": "qr" }'

curl -X POST https://api.d-api.cloud/api/v1/sessions/loja-centro/webhook-config \
  -H "Authorization: SUA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "enabled": true,
    "type": "per_event",
    "events": {
      "messages.received": { "enabled": true, "webhookUrl": "https://seu-app.com/wa/mensagens" },
      "connection.status": { "enabled": true, "webhookUrl": "https://seu-app.com/wa/conexao" }
    }
  }'

curl "https://api.d-api.cloud/api/v1/sessions/loja-centro/qr?image=1" \
  -H "Authorization: SUA_API_KEY" -o qr.png

3. Troque as chamadas de envio

O envio de texto vira POST /api/v1/messages/send/text com sessionId, to e text. Mídia, listas e grupos seguem o mesmo padrão, com rotas próprias. Em Node.js, o pacote d-api-sdk encapsula essas chamadas; veja o SDK de Node.js.

4. Reconecte os números e desligue os servidores

Cada número precisa ler um QR Code novo, ou usar o código de pareamento. Migre em lotes, confirme que o status chegou como connected e que o webhook de mensagens está recebendo, e só então desligue a instância correspondente no seu servidor. Quando o último número sair, o servidor, o banco e o Redis dedicados à Evolution podem ser desativados.

Para comparar com outra opção self-hosted, veja a alternativa ao WAHA. Os planos estão em preços, e o teste de 3 dias permite validar a migração com um número antes de mover os demais.

Perguntas frequentes

A Evolution API é gratuita?

O código é aberto, sob licença Apache 2.0 com condições adicionais de marca. O software não tem mensalidade, mas quem hospeda paga servidor, banco de dados, Redis e o tempo do time que mantém tudo funcionando.

Por que trocar uma solução open source por uma paga?

Não é obrigatório trocar. Faz sentido quando o custo de operar passa a ser maior que o de contratar: plantão para conexão caída, atualização quando o WhatsApp muda algo, escala de servidor e monitoramento. Se o seu time faz isso bem e com folga, self-hosted continua sendo uma boa escolha.

A Evolution API também tem API oficial?

Sim. Segundo o repositório oficial, ela suporta a conexão baseada no WhatsApp Web, pela biblioteca Baileys, e a WhatsApp Cloud API da Meta. A D-API também oferece as duas, com a diferença de que a infraestrutura é operada por nós.

Perco as integrações com Typebot e Chatwoot ao sair da Evolution?

A Evolution tem integrações nativas com essas ferramentas. Na D-API a ligação com elas é feita via webhook e chamadas HTTP, sem conector pronto. Vale mapear quais integrações você usa antes de decidir.

Quanto tempo leva a migração?

Depende de quanto o código conhece a Evolution. Se as chamadas estão num único módulo, o trabalho é trocar rotas, header e formato de evento. O tempo maior costuma ser reconectar os números, porque cada um precisa ler um QR Code novo.

Teste a API de WhatsApp da D-API

Trial de 3 dias com acesso completo. Sem cartão, sem fidelidade.