Baileys, whatsapp-web.js o la API oficial de WhatsApp

Baileys y whatsapp-web.js son librerías no oficiales que imitan WhatsApp Web, y la Cloud API es la interfaz oficial de Meta. Para uso comercial, la API oficial evita el riesgo de baneo.

Actualizado el 6 min de lectura

Objetivos de aprendizaje

Después de leer este artículo podrás:

  • Entender cómo se conecta cada opción a WhatsApp
  • Comparar riesgo de baneo, costo, funciones y consumo de memoria
  • Elegir la opción adecuada para tu tipo de proyecto
En esta página

Quien quiere crear un bot de WhatsApp se topa pronto con una decisión: usar una librería de la comunidad o la API oficial. Las dos librerías más citadas, Baileys y whatsapp-web.js, se conectan sin aprobación de Meta y funcionan con cualquier número. La Cloud API exige una cuenta comercial, pero es el camino que WhatsApp autoriza.

No hay un ganador universal: un bot personal, la atención al cliente de una empresa y un servicio de notificaciones piden soluciones distintas.

WhatsAppBaileysno oficialWebSocket directosin navegadorwhatsapp-web.jsno oficialChromiumPuppeteer controlaWhatsApp WebCloud APIoficialGraph APIwebhook HTTPSMeta
Baileys va directo, whatsapp-web.js carga un navegador entero y la Cloud API pasa por Meta, con webhook.

¿Qué es Baileys?#

Baileys es una librería TypeScript que habla directamente con los servidores de WhatsApp por WebSocket, como un dispositivo vinculado a tu número. No abre un navegador. Es de código abierto (MIT) y la mantiene la comunidad WhiskeySockets.

La versión 7 trajo cambios incompatibles con la 6.x (la línea anterior recibió la etiqueta legacy en npm), así que los tutoriales viejos pueden no funcionar. Consulta la versión actual en npm antes de seguir un ejemplo. El proyecto aclara que no tiene vínculo con WhatsApp y que no apoya usos que violen los términos del servicio. Para el código completo de un bot con sesión persistente, mira cómo hospedar un bot de WhatsApp 24/7.

¿Qué es whatsapp-web.js?#

whatsapp-web.js usa Puppeteer para controlar una instancia real de WhatsApp Web dentro de Chromium y llamar a sus funciones internas. Requiere una versión reciente de Node.js. Mantén la librería actualizada, porque tiene que seguir los cambios de WhatsApp Web.

Como ejecuta un navegador completo, consume más memoria y CPU que Baileys, y al instalarlo se descarga Chromium. A cambio, la API es directa y la comunidad es grande. El README es claro: WhatsApp no permite bots ni clientes no oficiales, así que la librería no debe considerarse totalmente segura.

Un bot mínimo, tras npm install whatsapp-web.js qrcode-terminal:

js
const { Client, LocalAuth } = require("whatsapp-web.js");
const qrcode = require("qrcode-terminal");

const client = new Client({
  authStrategy: new LocalAuth({ dataPath: process.env.AUTH_DIR ?? ".wwebjs_auth" }),
  // En un servidor sin interfaz gráfica, Chromium necesita estas flags.
  puppeteer: { args: ["--no-sandbox", "--disable-setuid-sandbox"] },
});

client.on("qr", (qr) => qrcode.generate(qr, { small: true }));
client.on("ready", () => console.log("Conectado a WhatsApp."));
client.on("message", async (msg) => {
  if (msg.body.trim().toLowerCase() === "!ping") await msg.reply("pong");
});

client.initialize();

En la primera ejecución, escanea el QR de la terminal en Dispositivos vinculados del celular. LocalAuth guarda la sesión en la carpeta .wwebjs_auth (o en tu dataPath), así que solo sobrevive a los reinicios si el disco es persistente. Para varios clientes, usa un clientId por sesión.

¿Qué es la Cloud API oficial?#

La Cloud API es la interfaz alojada por Meta. Necesitas un portafolio empresarial, una cuenta de WhatsApp Business y un número de teléfono comercial. No hay sesión ni emparejamiento: llamas a la Graph API con un token para enviar, y recibes mensajes y estados de entrega por webhook, que exige una URL pública con HTTPS válido.

Dos reglas marcan el uso. La primera es la ventana de atención de 24 horas: se abre cuando el usuario te escribe, y dentro de ella respondes con texto libre. Fuera, solo con plantillas (templates) preaprobadas. La segunda es el precio: desde el 1 de julio de 2025 Meta cobra por mensaje de plantilla entregado, y el texto libre dentro de la ventana no se cobra. Las tarifas varían por categoría y país, así que revisa la página de precios de Meta. La guía cómo hacer un bot de WhatsApp muestra una implementación, y cuánto cuesta la API de WhatsApp Business detalla las cuentas.

Meta también limita el ritmo: cada número comercial tiene un tope de mensajes por segundo, y hay un intervalo mínimo entre mensajes al mismo usuario. Consulta los valores actuales en la documentación de la Cloud API.

¿Cómo se comparan las tres?#

Baileys whatsapp-web.js Cloud API
Oficial No No Sí
Cómo se conecta WebSocket directo Chromium + Puppeteer Webhook HTTPS + Graph API
Navegador No Sí No
Memoria Menor Mayor (ejecuta Chromium) Solo tu servidor web
Sesión Carpeta de autenticación Carpeta .wwebjs_auth Token, sin sesión
Número Cualquiera, incluso personal Cualquiera, incluso personal Comercial, en cuenta de Meta
Riesgo de baneo Sí Sí Sin el riesgo del cliente no oficial
Iniciar conversación Libre Libre Solo con plantillas aprobadas
Costo Servidor Servidor Servidor + mensajes de plantilla
Estabilidad Cambia con WhatsApp Cambia con WhatsApp Web Versionada por Meta

El riesgo de baneo es el mismo para las dos librerías, porque ambas se hacen pasar por un cliente que WhatsApp no autorizó. Mira también por qué banean un bot de WhatsApp y por qué se desconecta.

¿Cuándo elegir cada una?#

  • Bot personal, aprendizaje o proyecto de bajo riesgo: Baileys si quieres poca memoria y aceptas una documentación que aún evoluciona. whatsapp-web.js si prefieres la API más simple y te sobra RAM.
  • Automatización en tu número personal: solo sirven las librerías no oficiales, porque la Cloud API exige un número comercial. Acepta que el número puede ser baneado y no uses el principal.
  • Atención de empresa, ventas o notificaciones: Cloud API. El costo por plantilla es predecible, y el número no corre el riesgo de baneo por usar un cliente no oficial.
  • Envíos masivos: no uses una librería no oficial. Los mensajes automatizados en volumen son justo lo que termina en baneo. En la Cloud API, el envío queda sujeto a los límites y a la calidad de las plantillas.

Si aún dudas, pregúntate: ¿el número es de un negocio que no puede quedar fuera de línea? Si la respuesta es sí, Cloud API.

Cómo hacerlo en Square Cloud#

Elijas la opción que elijas, el bot necesita un proceso encendido todo el tiempo. Square Cloud es un hosting self-service: tú haces el deploy y controlas memoria, variables y reinicios en el panel. Soporta Baileys, WPPConnect, whatsapp-web.js y la Cloud API oficial, así que la decisión sigue siendo tuya.

La carpeta de autenticación queda en el disco de la aplicación, por lo que la sesión de Baileys o de whatsapp-web.js sigue conectada después de un reinicio. Los contenedores están siempre encendidos, sin modo de suspensión, con reinicio automático (activado por defecto en el deploy desde el panel) cuando el proceso termina con error. Como whatsapp-web.js ejecuta Chromium, prueba el consumo y ajusta la RAM de la aplicación en la configuración. Para la Cloud API, una aplicación web recibe un subdominio squareweb.app con HTTPS, que puede servir como URL del webhook.

Todos los planes son de pago y se cobran en reales. El Hobby parte de R$12,49 al mes, con 1 GB de RAM compartido entre tus aplicaciones. El mínimo es de 256 MB por aplicación de fondo, como un bot, y de 512 MB por aplicación web. El deploy puede hacerse por ZIP, CLI, GitHub o la extensión de VS Code. Mira la página de hosting para bots de WhatsApp.

Hosting de bots

Tu bot en línea 24/7, con reinicio automático

Más información

Preguntas frecuentes

¿Cuál es mejor, Baileys o whatsapp-web.js?

Depende del proyecto. Baileys se conecta por WebSocket, sin navegador, y consume menos memoria. whatsapp-web.js controla el WhatsApp Web real en Chromium mediante Puppeteer, y su API es más fácil para empezar. Ambas son no oficiales y tienen el mismo riesgo de baneo.

¿Baileys y whatsapp-web.js son gratuitas?

Son de código abierto y no cobran licencia. Tu costo es el servidor que ejecuta el proceso. El riesgo es otro: WhatsApp no autoriza los clientes no oficiales.

¿La API oficial de WhatsApp es de pago?

La Cloud API cobra por mensaje de plantilla entregado desde el 1 de julio de 2025. El texto libre dentro de la ventana de atención de 24 horas no se cobra. Consulta la página de precios de Meta para ver las tarifas actuales.

¿Puedo usar la API oficial con mi número personal?

No. La Cloud API exige un portafolio empresarial en Meta, una cuenta de WhatsApp Business y un número de teléfono comercial. Para usar tu número personal solo sirven las librerías no oficiales.

Siguiente artículoCómo monitorear si tu bot está en línea (alertas en Discord/Telegram)Monitorea el uptime de tu bot con un heartbeat que el propio bot envía a un monitor externo, que te avisa en Discord o en Telegram cuando la señal se corta.