WaflyBlog › Consumo de servidor

Quanto de servidor uma API de WhatsApp realmente consome

Atualizado em 31 de julho de 2026 · baseado em dados da nossa própria operação e em fontes primárias citadas ao longo do texto

O custo de rodar WhatsApp API não está no preço da licença, está na RAM por número conectado. Bibliotecas que abrem um navegador headless por sessão consomem cerca de 387 MB de RAM por sessão, e existe relato de 30 GB de 32 GB consumidos em servidor de produção. Bibliotecas que falam o protocolo direto, como o Baileys e o whatsmeow, não pagam esse pedágio. Antes de escolher entre self-host e serviço gerenciado, faça a conta com o número de conexões que você pretende manter no ar, não com o número de mensagens.

Quase todo comparativo de API de WhatsApp discute preço de licença e número de endpoints. Quando alguém decide self-hostear, a surpresa raramente vem da licença: vem da conta de servidor no fim do mês. Esta página faz essa conta com os números que dá para verificar, e diz explicitamente onde a gente não mediu.

De onde vem o consumo: navegador ou protocolo

Existem duas famílias de implementação de WhatsApp não oficial, e elas têm perfis de consumo completamente diferentes.

A primeira automatiza o WhatsApp Web dentro de um navegador headless. É o caso do WPPConnect, que roda Node.js com Chromium por sessão. Cada número conectado carrega um Chromium inteiro, com renderização, JavaScript da página e todo o overhead de um navegador de verdade rodando sem tela.

A segunda implementa o protocolo do WhatsApp diretamente, sem navegador nenhum. É o caso do Baileys (Node.js, protocolo nativo, sem navegador) e do whatsmeow, que é o que roda na nossa infraestrutura. O processo mantém a conexão, as chaves de criptografia e o estado da sessão, e nada mais.

A diferença arquitetural entre as duas famílias explica quase toda a variação de custo de máquina. Não é otimização de código, é o que cada uma decidiu carregar.

Quanto de RAM por número, na prática

ImplementaçãoComo conectaRAM por número conectadoVerificado
WPPConnectNode.js com Chromium por sessãocerca de 387 MB de RAM por sessão27/07/2026
BaileysNode.js, protocolo nativo, sem navegadornão medido por nós27/07/2026
whatsmeowGo, protocolo nativonão medido em bancada isolada30/07/2026
O que não vamos publicar

Não temos medição própria de bancada para Baileys nem para o whatsmeow com metodologia controlada, então não vamos publicar um número para eles. O que dá para afirmar com segurança é qualitativo e vale muito: sem navegador embarcado, o piso de memória por sessão cai em uma ordem de grandeza, porque some o processo mais pesado da conta. Se você encontrar um comparativo com número exato para as três, pergunte qual foi a metodologia.

O caso extremo do lado do navegador está documentado publicamente: relato de 30 GB de 32 GB consumidos em servidor de produção. Não é um bug exótico, é o comportamento esperado quando você multiplica um Chromium por número conectado numa máquina que não foi dimensionada para isso.

A conta do servidor para 1, 10 e 50 números

Trabalhando só com o número que está verificado, cerca de 387 MB de RAM por sessão de WPPConnect, a projeção de memória fica assim:

Números conectadosSó as sessões (navegador)Máquina realista com folga
1cerca de 0,4 GB1 GB
10cerca de 3,9 GB8 GB
50cerca de 19 GB32 GB ou mais

A coluna da direita não é exagero. Sessão de WhatsApp tem pico: sincronização de histórico ao reconectar, recebimento de mídia e reinício de sessão consomem bem acima da média em rajada. Dimensionar pela média é o erro que produz o caso de 30 GB de 32 GB.

Deliberadamente não colocamos preço de VPS nesta tabela. O preço do GB de RAM varia por provedor, região e compromisso de prazo, e um número desses envelhece rápido. Pegue o valor do seu provedor e multiplique. O que essa tabela dá é a variável que quase ninguém considera antes de contratar: você dimensiona por conexões simultâneas, não por volume de mensagens.

O segundo gargalo: banco de dados e conexões

Memória é o custo visível. O que costuma quebrar depois é o banco.

Na nossa operação, o serviço de conexão roda distribuído em 6 deployments do serviço de conexão com um pool de 2 conexões de Postgres por instância. Parece pouco por instância, e é justamente esse o ponto: multiplicado por dezenas de números, o total de conexões abertas encosta no teto do banco muito antes de a CPU ou a memória darem sinal. Quem self-hosteia costuma descobrir esse limite em produção, no dia em que sobe do décimo para o vigésimo número.

O histórico de mensagens é o outro eixo. Ele cresce com o tráfego e não com o número de conexões, então é um custo que aparece meses depois de a arquitetura já estar decidida. Vale planejar retenção antes, não quando o disco encher.

Onde o self-host realmente ganha

Não somos neutros nessa comparação, então vamos ser explícitos sobre onde o self-host é a escolha certa.

E onde ele costuma sair caro: quando o número fora do ar custa dinheiro. O gasto real do self-host não é a máquina, é o tempo de quem religa a sessão às 22h de domingo, acompanha mudança de protocolo do WhatsApp e mantém a biblioteca atualizada. Vale lembrar que o Baileys está com 7.0.0 em release candidate desde outubro de 2025 e carrega CVE-2026-48063, severidade crítica, o que dá a dimensão do trabalho de manutenção que vem junto.

Como medir antes de contratar máquina

Antes de fechar servidor, rode este teste, que leva menos de uma hora:

  1. Suba a biblioteca escolhida com um número real conectado.
  2. Deixe a sessão no ar por 24 horas, com tráfego parecido com o seu.
  3. Meça a memória residente do processo no pico, não na média. Em Linux, acompanhe o RSS do processo ao longo do dia.
  4. Force uma reconexão e meça de novo: a sincronização é o pico verdadeiro.
  5. Multiplique o pico pelo número de conexões que você pretende manter, e some 50% de folga para o sistema operacional e o banco.

Se o resultado couber no seu orçamento de infraestrutura, self-host faz sentido. Se não couber, a mensalidade de um gerenciado provavelmente é mais barata que a máquina que você teria que contratar, e é exatamente essa a conta que a maioria não faz antes de decidir.

O que isso tem a ver com estabilidade do número

Servidor mal dimensionado não bane número, mas produz o sintoma que costuma ser confundido com banimento: sessão caindo sozinha. Memória no limite derruba processo, processo derrubado reconecta, e um número que reconecta o tempo todo é um número instável para quem depende dele.

Na nossa frota, a causa dos bloqueios que registramos é outra e está bem separada disso: 17 eventos de erro 463 registrados, 100% deles em mensagem para contato sem histórico de conversa, nenhum em resposta a quem escreveu primeiro. Ou seja, comportamento de abordagem, não consumo de máquina. Vale mencionar aqui porque os dois problemas se apresentam do mesmo jeito para quem está de fora, com o número parando de funcionar, e o diagnóstico é completamente diferente. Se quiser entender o lado do bloqueio, o assunto está detalhado em número banido no WhatsApp.

Não quer administrar máquina para isso

Instância dedicada rodando whatsmeow, com health score de 0 a 100 e eventos de desconexão com motivo no painel. R$ 59,90/mês, 3 dias grátis, sem cartão.

Criar instância grátis

Perguntas frequentes

Quanta memória RAM cada número de WhatsApp conectado consome?

Depende inteiramente da biblioteca. Implementações que abrem um navegador headless por sessão, como o WPPConnect, consomem cerca de 387 MB de RAM por número conectado, porque cada sessão carrega uma instância de Chromium completa. Implementações que falam o protocolo do WhatsApp diretamente, como Baileys e whatsmeow, mantêm apenas o estado da conexão e o consumo cai em uma ordem de grandeza. A diferença aparece na fatura do servidor a partir do terceiro ou quarto número, não no primeiro.

Qual servidor eu preciso para rodar 10 números de WhatsApp?

Com biblioteca baseada em navegador, 10 sessões pedem por volta de 4 GB só para os processos de Chromium, o que na prática significa uma máquina de 8 GB para ter folga de pico e sistema operacional. Com biblioteca de protocolo nativo, os mesmos 10 números cabem confortavelmente em 1 ou 2 GB. Some a isso o banco de dados, que costuma ser o segundo gargalo e cresce com o histórico de mensagens, não com o número de conexões.

Self-host de API de WhatsApp sai mais barato que serviço gerenciado?

Em custo de servidor puro, quase sempre sim, principalmente com poucas conexões. A conta muda quando você inclui o tempo de operação: reconexão após queda, atualização da biblioteca quando o WhatsApp muda o protocolo, monitoramento de sessão caída e o plantão para religar número fora do ar em fim de semana. Para uma ou duas instâncias de uso interno, self-host costuma valer. Para operação em que número fora do ar causa prejuízo, o gerenciado geralmente sai na frente.

O consumo de servidor influencia no risco de banimento do número?

Não diretamente. O banimento responde a padrão de uso, principalmente abordar contatos que nunca conversaram com você, e não a quanta memória o processo consome. O elo indireto existe: servidor sobrecarregado derruba sessão, sessão derrubada gera reconexão frequente, e reconexão frequente é sinal ruim para a plataforma. Dimensionar mal a máquina não bane o número, mas atrapalha a estabilidade que sustenta a operação.

Continue lendo

Evolution API: o custo real de self-hostearA conta honesta de rodar por conta própria, incluindo o que não aparece na fatura. Baileys em produção em 2026Licença, passkey travado e CVE, com fonte primária para cada item. Quanto custa uma API de WhatsAppA tabela de preços real do mercado brasileiro, incluindo quem é mais barato que a gente.

WhatsApp e Meta são marcas de seus respectivos donos, sem relação com a Wafly. Os preços de terceiros citados foram verificados na data indicada em cada tabela e mudam sem aviso: confira na fonte antes de decidir. Encontrou algo desatualizado ou discorda de alguma conclusão? Fale com a gente.