Documentação para Desenvolvedores

FlowGate API Docs

Referência completa: verificação de números, envio de mensagens, grupos, IA, webhooks e instâncias.

� Autenticação

Todos os endpoints protegidos requerem o API_SECRET via header ou query param:

Authorization: Bearer SEU_TOKEN
# ou via query param:
?token=SEU_TOKEN
🛡️ Anti-Ban & Limites

Todas as chamadas ao WhatsApp passam por throttle global com delays aleatórios para proteger a conta.

15
Chamadas/min (RPM)
600
Chamadas/dia por slot
2–4s
Delay entre chamadas
24h
Cache verificação
30min
Cache perfil
5 erros
Circuit breaker

⚠️ 429 Requisições acima do limite diário são rejeitadas.

ℹ️ Circuit Breaker Após 5 erros consecutivos, pausa automática de 2 minutos.

✓ Cache Verificações: 24h. Perfis completos: 30min.

� Verificação de Números
GET/exists/:phoneAuth
Verifica se um número possui WhatsApp. Cacheado por 24h.
GET/numero/:phoneAuth
Alias de /exists/:phone para compatibilidade retroativa.
{ "exists": true, "isWhatsapp": "Sim", "phone": "5511999999999", "jid": "5511999999999@s.whatsapp.net" }
👤 Perfil Completo
GET/profile/:phoneAuth
Perfil completo: nome, foto, status, DDD/região. Cacheado 30min. Compatível com ZapGet API.
GET/avatar/:phoneAuth
Retorna apenas a URL da foto de perfil.
{
  "statusCode": 200,
  "data": {
    "nome": "João Silva",
    "numero": "5511999999999",
    "isWhatsapp": "Sim",
    "foto": "https://pps.whatsapp.net/...",
    "status": "Disponível",
    "temFoto": "Sim", "temNome": "Sim",
    "jid": "5511999999999@s.whatsapp.net",
    "ddd": "11", "regiao": "São Paulo",
    "timestamp": "2026-01-01T12:00:00.000Z"
  }
}
📨 Envio de Mensagens
POST/sendAuth
Envia mensagem de texto. Body: { "phone": "5511...", "message": "Olá!" }
// Body:
{ "phone": "5511999999999", "message": "Olá! 🚀" }

// Resposta:
{ "success": true, "messageId": "3EB0..." }
👥 Grupos
GET/groupsAuth
Lista todos os grupos do WhatsApp conectado.
GET/groups/:groupIdAuth
Detalhes de um grupo: participantes, admins, descrição.
POST/groups/:groupId/sendAuth
Envia mensagem para um grupo. Body: { "message": "..." }
POST/groups/createAuth
Cria grupo. Body: { "name": "...", "participants": ["5511..."] }
📥 Mensagens Recebidas
GET/messages/receivedAuth
Lista mensagens recebidas. Query: ?limit=50&offset=0
GET/messages/received/:phoneAuth
Mensagens de um contato específico.
🔔 Webhooks

Registre uma URL para receber notificações em tempo real de todas as mensagens recebidas.

POST/webhook/registerAuth
Registra URL de webhook. Body: { "url": "https://seu-servidor.com/webhook" }
DELETE/webhook/unregisterAuth
Remove URL de webhook registrada.
// Payload enviado ao webhook:
{
  "event": "message",
  "from": "5511999999999@s.whatsapp.net",
  "fromName": "João",
  "message": "Olá!",
  "timestamp": 1700000000
}
🤖 IA — Respostas Automáticas

Configure a IA para responder automaticamente a mensagens recebidas. Suporta GPT-4 e Claude.

POST/ai/configAuth
Configura IA para um usuário. Body: { "phone": "5511...", "prompt": "...", "model": "gpt-4" }
GET/ai/statsAuth
Estatísticas de uso da IA (tokens, conversas, etc).
⚙️ Sistema
GET/health
Status da plataforma e conexão WhatsApp (público).
GET/qrAuth
QR Code para conectar WhatsApp (JSON).
POST/disconnectAuth
Desconecta o WhatsApp e limpa a sessão.
POST/admin/activateAuth
Ativa o WhatsApp manualmente (gera QR code).
💬 WhatsApp Web

Conecte seu próprio WhatsApp em /whatsappweb para usar diretamente no navegador:

Envio em Massa — Múltiplos contatos com delays anti-ban configuráveis

Envio Rápido — Mensagem individual instantânea

Verificação de Número — Consulte foto, nome e status de qualquer número

Log em Tempo Real — Acompanhe cada envio com timestamps

⚠️ Delays mínimos de 2–3s entre mensagens são recomendados para evitar banimento.

⚡ Status do Throttle (Tempo Real)

Estado atual do sistema anti-ban:

{
  "queueLength": 0,
  "dailyCount": 0,
  "maxDaily": 600,
  "rpmCurrent": 0,
  "maxRpm": 15,
  "circuitOpen": false,
  "circuitOpenUntil": null,
  "totalCalls": 0,
  "totalErrors": 0,
  "totalThrottled": 0,
  "consecutiveErrors": 0,
  "delayRange": "2000-4000ms",
  "slotId": 0,
  "maxDailyPerSlot": 600
}