WuzAPI - API REST Multi-UsuƔrio para WhatsApp
Ćndice
- O que Ć© a WuzAPI?
- Problemas que Resolve
- Principais Vantagens
- EspecificaƧƵes TƩcnicas
- Implementação em Infraestrutura
- Docker Swarm com Portainer
- Implementação em Cloud
- Escalabilidade
- Recursos e Funcionalidades
- VĆdeo Explicativo
- Documentação da API
O que Ć© a WuzAPI?
A WuzAPI é uma API REST moderna e ultra-eficiente que permite integrar o WhatsApp em qualquer aplicação de forma profissional. Desenvolvida em Go, ela oferece uma solução completa para automação e integração com WhatsApp, suportando múltiplos usuÔrios e dispositivos simultaneamente.
Arquitetura Moderna
- Backend em Go: Performance excepcional e baixo consumo de recursos
- Multi-usuÔrio: Gerenciamento centralizado de múltiplas contas WhatsApp
- Multi-dispositivo: Suporte nativo para WhatsApp Multi-Device
- RESTful API: Interface padronizada e fƔcil de integrar
- Webhook System: Recebimento de mensagens em tempo real
Problemas que Resolve
1. LimitaƧƵes das SoluƧƵes Tradicionais
APIs não-oficiais instÔveis e com bloqueios frequentes
SoluƧƵes baseadas em navegador com alto consumo de recursos
Falta de suporte multi-usuƔrio robusto
Dificuldade de escalabilidade horizontal
2. Desafios de Infraestrutura
Alto consumo de CPU e memória
Complexidade na implementação e manutenção
Dificuldade para implementar em containers
3. Problemas de Integração
APIs inconsistentes e mal documentadas
Falta de webhooks confiƔveis
Ausência de autenticação robusta
LimitaƧƵes para envio de mĆdias
Principais Vantagens
Performance Excepcional
- Ultra-leve: Apenas 75MB de tamanho total
- Baixo consumo: 1 core CPU + 6GB RAM para +1000 instâncias
- Velocidade: Resposta ultra-rƔpida em todas as operaƧƵes
- EficiĆŖncia: Otimizada para ambientes containerizados
SeguranƧa e Robustez
- Autenticação dupla: Tokens de usuÔrio e admin separados
- Isolamento: Cada usuÔrio possui sua própria sessão isolada
- Logs detalhados: Monitoramento completo de todas as operaƧƵes
- Recuperação automÔtica: Reconexão automÔtica em caso de falhas
Facilidade de Implementação
- Docker Ready: Imagem oficial otimizada
- Docker Swarm: Configuração pronta para produção
- Cloud Native: CompatĆvel com qualquer provedor cloud
- Portainer: Interface grƔfica para gerenciamento
Escalabilidade Horizontal
- Multi-instância: Suporte para milhares de instâncias simultâneas
- Load Balancing: Distribuição automÔtica de carga
- Auto-scaling: Escalonamento automƔtico baseado em demanda
- Zero Downtime: Atualizações sem interrupção do serviço
EspecificaƧƵes TƩcnicas
Requisitos MĆnimos
CPU: 1 core
RAM: 6GB (para +1000 instâncias)
Storage: 100MB por instância
Network: 1Mbps por 100 instâncias ativas
Container Specifications
Image Size: 75MB
Base Image: Alpine Linux
Runtime: Go Binary
Ports: 8080 (HTTP)
Health Check: Built-in endpoint
Banco de Dados
Suporte: PostgreSQL, MySQL, SQLite
ConexƵes: Pool otimizado
Migrations: AutomƔticas
Backup: CompatĆvel com ferramentas padrĆ£o
Implementação em Infraestrutura
Docker Swarm com Portainer
1. Configuração do Swarm
# Inicializar Docker Swarm
docker swarm init
# Criar rede overlay
docker network create --driver overlay network_public
2. Deploy com Docker Compose
version: '3.7'
services:
wuzapi-server:
image: setupautomatizado/wuzapi-server:latest
networks:
- network_public
environment:
- WUZAPI_ADMIN_TOKEN=SeuTokenSeguro123
- DB_USER=wuzapi
- DB_PASSWORD=senhaSegura123
- DB_NAME=wuzapi
- DB_HOST=db
- DB_PORT=5432
- TZ=America/Sao_Paulo
- WEBHOOK_FORMAT=json
- SESSION_DEVICE_NAME=WuzAPI
deploy:
mode: replicated
replicas: 3
restart_policy:
condition: on-failure
placement:
constraints: [node.role == manager]
resources:
limits:
cpus: "1"
memory: 512MB
reservations:
cpus: "0.5"
memory: 256MB
labels:
- traefik.enable=true
- traefik.http.routers.wuzapi.rule=Host(`api.wuzapi.seudominio.com`)
- traefik.http.routers.wuzapi.entrypoints=websecure
- traefik.http.routers.wuzapi.tls.certresolver=letsencrypt
- traefik.http.services.wuzapi.loadbalancer.server.port=8080
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
db:
image: postgres:15-alpine
environment:
- POSTGRES_DB=wuzapi
- POSTGRES_USER=wuzapi
- POSTGRES_PASSWORD=senhaSegura123
volumes:
- postgres_data:/var/lib/postgresql/data
deploy:
placement:
constraints: [node.role == manager]
volumes:
postgres_data:
networks:
network_public:
external: true
3. Deploy via Portainer
- Acesse o Portainer:
https://portainer.seudominio.com - Navegue para Stacks ā Add Stack
- Cole a configuração Docker Compose acima
- Configure as variƔveis de ambiente
- Clique em Deploy the stack
Implementação em Cloud
AWS (Amazon Web Services)
# ECS Fargate
aws ecs create-cluster --cluster-name wuzapi-cluster
aws ecs create-service --cluster wuzapi-cluster --service-name wuzapi
Google Cloud Platform
# Google Kubernetes Engine
gcloud container clusters create wuzapi-cluster
kubectl apply -f wuzapi-deployment.yaml
Microsoft Azure
# Azure Container Instances
az container create --resource-group wuzapi-rg --name wuzapi --image setupautomatizado/wuzapi-server:latest
DigitalOcean
# App Platform
doctl apps create --spec wuzapi-app.yaml
Escalabilidade
Configuração para Alta Demanda
Pequena Escala (atƩ 100 usuƔrios)
Resources:
CPU: 1 core
RAM: 2GB
Replicas: 2
Database: PostgreSQL (2 cores, 4GB)
MƩdia Escala (atƩ 500 usuƔrios)
Resources:
CPU: 2 cores
RAM: 4GB
Replicas: 5
Database: PostgreSQL (4 cores, 8GB)
Load Balancer: Traefik/Nginx
Grande Escala (atƩ 1000+ usuƔrios)
Resources:
CPU: 1 core por instância
RAM: 6GB total
Replicas: 10+
Database: PostgreSQL Cluster
Cache: Redis Cluster
Monitoring: Prometheus + Grafana
Auto-scaling Configuration
deploy:
update_config:
parallelism: 2
delay: 10s
failure_action: rollback
restart_policy:
condition: on-failure
delay: 5s
max_attempts: 3
Recursos e Funcionalidades
Gestão de Sessões
Conexão via QR Code
Pareamento por nĆŗmero de telefone
Reconexão automÔtica
Status de conexão em tempo real
Logout seguro
Envio de Mensagens
Texto simples e formatado
Imagens, vĆdeos e documentos
Ćudios e stickers
Localização e contatos
BotƵes interativos (Em Breve)
Listas de opƧƵes (Em Breve)
Enquetes (polls)
Gestão de Grupos
Criar e gerenciar grupos
Adicionar/remover participantes
Promover/rebaixar administradores
Configurar descrição e foto
Link de convite
ConfiguraƧƵes de privacidade
Sistema de Webhooks
Recebimento de mensagens
Status de entrega e leitura
Eventos de presenƧa
Sincronização de histórico
Eventos de grupo
Gestão Multi-usuÔrio
Criação de usuÔrios via API
Tokens individuais de autenticação
Configuração de webhooks por usuÔrio
Isolamento completo entre usuƔrios
Painel administrativo
Recursos AvanƧados
Proxy support (SOCKS5/HTTP)
Integração com S3 para mĆdias
Rate limiting inteligente
Logs estruturados
MƩtricas de performance
Health checks
VĆdeo Explicativo
Tutorial Completo - Implementação da WuzAPI
<div style="position: relative; width: 100%; height: 0; padding-bottom: 56.25%;">
<iframe
style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"
src="https://www.youtube.com/embed/I557BU3_3zE"
title="WuzAPI - Esta API permitiu 1.000 instâncias de Whatsapp em apenas 1 Core"
frameborder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
allowfullscreen>
</iframe>
</div>
ConteĆŗdo do VĆdeo:
Introdução Ć WuzAPI e seus benefĆcios
Configuração do ambiente Docker Swarm
Deploy com Portainer passo a passo
Configuração de usuÔrios e webhooks
Testes de envio e recebimento de mensagens
Monitoramento e troubleshooting
Escalabilidade e otimizaƧƵes
Casos de uso prƔticos
Documentação da API
Endpoints Principais
Autenticação
# Token de usuÔrio para endpoints padrão
Authorization: Bearer SEU_TOKEN_USUARIO
# Token admin para endpoints administrativos
Authorization: Bearer SEU_TOKEN_ADMIN
Gestão de UsuÔrios (Admin)
GET /admin/users # Listar usuƔrios
POST /admin/users # Criar usuƔrio
DELETE /admin/users/{id} # Deletar usuƔrio
DELETE /admin/users/{id}/full # Deletar usuƔrio completo
Sessão WhatsApp
POST /connect # Conectar ao WhatsApp
POST /disconnect # Desconectar
GET /qr # Obter QR Code
POST /pair-phone # Parear por telefone
GET /status # Status da conexão
POST /logout # Logout
Envio de Mensagens
POST /send/text # Enviar texto
POST /send/image # Enviar imagem
POST /send/document # Enviar documento
POST /send/audio # Enviar Ɣudio
POST /send/video # Enviar vĆdeo
POST /send/sticker # Enviar sticker
POST /send/location # Enviar localização
POST /send/contact # Enviar contato
POST /send/buttons # Enviar botƵes
POST /send/list # Enviar lista
POST /send/poll # Enviar enquete
Gestão de Grupos
GET /groups # Listar grupos
POST /groups # Criar grupo
GET /groups/{id} # Info do grupo
POST /groups/{id}/participants # Gerenciar participantes
POST /groups/{id}/photo # Definir foto
POST /groups/{id}/name # Definir nome
POST /groups/{id}/description # Definir descrição
GET /groups/{id}/invite # Link de convite
POST /groups/{id}/leave # Sair do grupo
Webhooks
GET /webhook # Obter webhook configurado
POST /webhook # Configurar webhook
DELETE /webhook # Remover webhook
Exemplo de Uso
1. Criar UsuƔrio
curl -X POST http://localhost:8080/admin/users \
-H "Authorization: Bearer SEU_TOKEN_ADMIN" \
-H "Content-Type: application/json" \
-d '{
"name": "Usuario Teste",
"token": "token_usuario_123",
"webhook": "https://seusite.com/webhook",
"events": ["Message", "ReadReceipt"]
}'
2. Conectar ao WhatsApp
curl -X POST http://localhost:8080/connect \
-H "Authorization: Bearer token_usuario_123" \
-H "Content-Type: application/json" \
-d '{
"subscribe": ["Message"],
"immediate": true
}'
3. Enviar Mensagem
curl -X POST http://localhost:8080/send/text \
-H "Authorization: Bearer token_usuario_123" \
-H "Content-Type: application/json" \
-d '{
"phone": "5511999999999",
"body": "OlĆ”! Esta Ć© uma mensagem da WuzAPI š",
"id": "msg_001"
}'
4. Configurar Webhook
curl -X POST http://localhost:8080/webhook \
-H "Authorization: Bearer token_usuario_123" \
-H "Content-Type: application/json" \
-d '{
"webhookURL": "https://seusite.com/webhook",
"events": ["Message", "ReadReceipt", "ChatPresence"]
}'
Casos de Uso
Empresarial
Atendimento ao cliente automatizado
NotificaƧƵes de sistema
Marketing direto
Suporte tƩcnico
ConfirmaƧƵes de pedidos
E-commerce
Confirmação de compras
Rastreamento de entregas
Recuperação de carrinho abandonado
PromoƧƵes personalizadas
Avaliações pós-venda
SaĆŗde
Lembretes de consultas
Resultados de exames
Campanhas de vacinação
OrientaƧƵes mƩdicas
Agendamentos
Educação
Comunicados escolares
Notas e boletins
Lembretes de eventos
Material didƔtico
Comunicação com pais
ComeƧar Agora
1. Deploy RƔpido
# Clone o repositório
git clone https://github.com/asternic/wuzapi.git
# Deploy com Docker Compose
docker-compose up -d
# Acesse o dashboard
http://localhost:8080/dashboard
2. Configuração Inicial
- Acesse o dashboard administrativo
- Crie seu primeiro usuƔrio
- Configure o webhook
- Conecte ao WhatsApp via QR Code
- Envie sua primeira mensagem!
LicenƧa
A WuzAPI Ć© distribuĆda sob a licenƧa MIT. Consulte o arquivo LICENSE para mais detalhes.
WuzAPI - A solução definitiva para integração WhatsApp em escala empresarial!
Desenvolvido com
pela comunidade open source