Alternativa ao WAHA para quem não quer manter container

O WAHA é uma API HTTP de WhatsApp open source que você sobe como container Docker no próprio servidor. Ele funciona bem para começar, e a busca por alternativa costuma surgir quando as sessões se multiplicam e a operação passa a ocupar o time. A D-API oferece o mesmo tipo de API como serviço, com conexão oficial e não oficial, e as rotas se traduzem quase uma a uma.

O que o WAHA oferece hoje

Pela documentação oficial, o WAHA roda em Docker e expõe uma API REST com Swagger. Cada conta de WhatsApp é uma sessão, criada com um nome, e a autenticação é feita pelo header X-Api-Key. Ele trabalha com motores de conexão diferentes:

  • WEBJS e WPP: rodam uma instância real do WhatsApp Web num navegador controlado pelo Puppeteer.
  • NOWEB e GOWS: falam com o WhatsApp Web direto por WebSocket, sem navegador, o que economiza CPU e memória. O GOWS é escrito em Go.

Sobre as versões: por muito tempo existiram o WAHA Core, gratuito, e o WAHA Plus, com recursos extras liberados por doação. A documentação informa que, desde a versão 2026.6.1, os recursos do Plus foram incorporados ao Core. Se você usa uma versão anterior, vale checar em qual das duas está antes de planejar qualquer mudança.

A própria documentação é transparente sobre o risco: o WhatsApp não permite clientes não oficiais, então o uso não deve ser considerado totalmente seguro. Esse aviso vale para qualquer API não oficial, incluindo a D-API, e é por isso que isolamento e boas práticas de envio pesam tanto.

Quando faz sentido procurar uma alternativa ao WAHA

O projeto resolve bem o "conectar e enviar". As dores aparecem em outra camada:

  • Muitas sessões num mesmo host. Um container com dezenas de números concentra risco: se ele reinicia, todos caem juntos, e sem proxy configurado todos saem pelo mesmo IP.
  • Consumo de recursos. Engines com navegador pesam em memória; escalar significa mais máquinas e distribuir sessões entre elas.
  • Cliente pedindo a API oficial. Os motores do WAHA descritos na documentação se conectam ao WhatsApp Web; quem precisa também da Cloud API da Meta quer as duas atrás da mesma integração.
  • Ninguém quer ser o plantão do WhatsApp. Atualizar imagem, acompanhar mudanças do protocolo e recuperar sessões presas consome horas que não viram produto.

WAHA e D-API em critérios objetivos

CritérioWAHAD-API
Onde rodaSeu servidor, via DockerInfraestrutura da D-API
CustoSoftware gratuito; você paga servidor e operaçãoPor conexão, com valor menor conforme o volume
Conexão oficial (Cloud API)Verifique com o projetoSim, na mesma API da não oficial
Isolamento entre númerosDepende de como você distribui sessões e containersAmbiente isolado por instância
IP por númeroDepende da sua configuração de redeProxy com IP único por conexão
AutenticaçãoHeader X-Api-KeyHeader Authorization
SuporteComunidade e tier de apoioTime da D-API, em português

Uma comparação mais ampla entre hospedar e contratar está em self-hosted vs gerenciada, e o funcionamento da conexão por QR Code está em API de WhatsApp com QR Code.

Mapeamento de rotas do WAHA para a D-API

Como as duas são REST e organizadas em torno de sessões, a tradução é quase mecânica. As principais diferenças estão no formato do destinatário e no nome dos campos:

WAHAD-API
POST /api/sessions com namePOST /api/v1/sessions com sessionId
POST /api/sendText com session, chatId e textPOST /api/v1/messages/send/text com sessionId, to e text
chatId no formato [email protected]to só com o número: 5511999999999
Header X-Api-KeyHeader Authorization com a API Key, sem Bearer
Webhooks configurados na sessãowebhookUrl na criação da sessão ou webhook-config com URL por evento

Se o seu código chama o WAHA a partir de uma função própria, a troca pode ficar restrita a ela. Um adaptador de envio de texto em JavaScript fica assim:

// antes: fetch('http://seu-waha:3000/api/sendText', ...)
async function sendText(session, chatId, text) {
  const to = chatId.replace('@c.us', '')

  const res = await fetch('https://api.d-api.cloud/api/v1/messages/send/text', {
    method: 'POST',
    headers: {
      Authorization: process.env.DAPI_API_KEY,
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({ sessionId: session, to, text }),
  })

  if (!res.ok) {
    const { error, statusCode } = await res.json()
    throw new Error(`D-API ${statusCode}: ${error}`)
  }
}

Manter a assinatura antiga da função (session, chatId, text) evita mexer em quem a chama. Em Node.js, o SDK d-api-sdk substitui o fetch manual por dapi.messages.sendText.

Roteiro de migração em cinco passos

  1. Liste as rotas do WAHA que o seu sistema chama e os eventos de webhook que ele consome.
  2. Escreva o adaptador para a D-API e um receptor para o envelope de evento, que traz event, sessionId e data.
  3. Crie na D-API uma sessão por número, com o mesmo nome que você usava no WAHA para facilitar o rastreio.
  4. Conecte cada número pelo QR Code (GET /api/v1/sessions/SEU_ID/qr) e aguarde o evento connection.status com connected.
  5. Pare a sessão correspondente no WAHA e, quando não restar nenhuma, desligue o container.

A D-API é uma API de WhatsApp pensada para quem precisa de muitas conexões estáveis, e a API não oficial é o ponto de partida natural para quem vem do WAHA. O teste de 3 dias basta para validar o adaptador com um número real. Se estiver avaliando outras opções, veja também a alternativa à Twilio.

Perguntas frequentes

O que é o WAHA?

WAHA significa WhatsApp HTTP API. É um projeto open source distribuído como imagem Docker, que você roda no seu servidor para expor uma API REST não oficial de WhatsApp, com sessões, webhooks e painel.

Qual a diferença entre WAHA Core e WAHA Plus?

Até a versão 2026.6.1 o Plus reunia recursos como várias sessões por container e mensagens de mídia, liberados por doação. Segundo a documentação oficial, a partir dessa versão tudo foi incorporado ao Core, que é gratuito, e o apoio financeiro passou a ser um tier de comunidade sem recursos exclusivos.

O número conectado no WAHA pode ser usado na D-API?

Pode. O número não pertence ao provedor. Você cria uma sessão na D-API, lê o QR Code ou usa o código de pareamento com o mesmo aparelho, e depois encerra a sessão antiga no WAHA.

A D-API também usa um navegador por conexão?

O detalhe do motor de conexão fica do nosso lado e não muda a forma de integrar. Para quem integra, o que importa é que cada conexão roda em ambiente isolado, com IP próprio e recuperação automática.

Vale a pena migrar se meu WAHA roda sem problemas?

Se roda bem, com poucas sessões e alguém que cuida dele, talvez não. A troca começa a fazer sentido quando o número de sessões cresce, quando você precisa da API oficial para alguns clientes ou quando manter o container compete com o roadmap.

Teste a API de WhatsApp da D-API

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