Límites de Tasa
WhatsApp aplica límites de tasa que pueden resultar en baneos temporales si se exceden. No hay límites publicados oficialmente, pero la comunidad ha observado estos umbrales aproximados:
- Mensajes: ~50-80 mensajes por minuto para chats individuales, menos para números nuevos/no verificados
- Operaciones de grupo: Crear grupos, agregar participantes y modificar configuraciones tienen límites más estrictos
- Subida de media: Límite de tasa más lento que mensajes de texto; archivos grandes cuentan más
- Verificación de contactos (
isOnWhatsApp): ~50 números por solicitud, agrupados automáticamente por whatsmeow - Operaciones de newsletters: Límites más bajos que la mensajería regular
Patrón de envío seguro
async function sendWithBackoff(
client: WhatsmeowClient,
messages: Array<{ jid: string; text: string }>
) {
for (const { jid, text } of messages) {
try {
await client.sendMessage(jid, { conversation: text });
} catch (err) {
if (err instanceof WhatsmeowError && err.code === "ERR_SEND") {
await new Promise((r) => setTimeout(r, 5000));
await client.sendMessage(jid, { conversation: text });
} else {
throw err;
}
}
// Space out messages: 1-3 seconds between sends
await new Promise((r) => setTimeout(r, 1000 + Math.random() * 2000));
}
}
Guía general
- Espacia los mensajes (1-3 segundos entre envíos)
- Evita operaciones masivas con números nuevos/recién emparejados
- Maneja los eventos
temporary_ban— incluyen un tiempo de expiración - Monitorea los eventos
stream_errorykeep_alive_timeoutcomo señales de alerta temprana - Usa
sendPresence("available")antes de enviar para simular el comportamiento normal del cliente