📚 Documentação da API

WhatsApp RESTful API - Documentação Completa

v3.0.0

Autenticação

🔐 Bearer Token

Todas as requisições (exceto login) requerem autenticação via Bearer Token no header Authorization.

POST /auth/login
POST

Autentica o usuário e retorna um token JWT.

Requisição:
{
  "username": "admin",
  "password": "sua_senha"
}
Resposta:
{
  "success": true,
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  "user": {
    "username": "admin",
    "role": "admin"
  }
}
💡 Dica

Guarde o token retornado e use-o em todas as próximas requisições no header Authorization: Bearer {token}

Gestão de Sessões

Endpoints para criar, listar e gerenciar sessões do WhatsApp.

GET /sessions
GET

Lista todas as sessões disponíveis.

GET /sessions
Authorization: Bearer {token}
POST /sessions
POST

Cria uma nova sessão e gera QR Code.

Requisição:
{
  "sessionName": "minha-sessao"
}
Resposta:
{
  "success": true,
  "message": "Sessão criada com sucesso",
  "qrCode": "data:image/png;base64,..."
}
DELETE /sessions/:sessionName
DELETE

Deleta uma sessão específica.

DELETE /sessions/minha-sessao
Authorization: Bearer {token}

Envio de Mensagens

Endpoints para enviar diferentes tipos de mensagens.

POST /messages/send/text
POST

Envia uma mensagem de texto.

Requisição:
{
  "to": "5511999999999@c.us",
  "text": "Olá! Esta é uma mensagem de teste."
}
Resposta:
{
  "success": true,
  "message": "Mensagem enviada com sucesso",
  "messageId": "msg_id_123456"
}
POST /messages/send/image
POST

Envia uma imagem com legenda opcional.

Requisição:
{
  "to": "5511999999999@c.us",
  "imageUrl": "https://exemplo.com/imagem.jpg",
  "caption": "Legenda opcional"
}
POST /messages/send/audio
POST

Envia um áudio.

Requisição:
{
  "to": "5511999999999@c.us",
  "audioUrl": "https://exemplo.com/audio.mp3"
}
POST /messages/send/video
POST

Envia um vídeo com legenda opcional.

Requisição:
{
  "to": "5511999999999@c.us",
  "videoUrl": "https://exemplo.com/video.mp4",
  "caption": "Legenda opcional"
}
POST /messages/send/document
POST

Envia um documento.

Requisição:
{
  "to": "5511999999999@c.us",
  "documentUrl": "https://exemplo.com/documento.pdf",
  "filename": "documento.pdf"
}

Gestão de Contatos

GET /contacts
GET

Lista todos os contatos.

Resposta:
{
  "success": true,
  "contacts": [
    {
      "id": "5511999999999@c.us",
      "name": "João Silva",
      "number": "5511999999999",
      "isGroup": false
    }
  ],
  "total": 150
}
GET /contacts/:jid
GET

Obtém detalhes de um contato específico.

GET /contacts/:jid/photo
GET

Obtém a foto de perfil de um contato.

Gestão de Grupos

GET /groups
GET

Lista todos os grupos.

Resposta:
{
  "success": true,
  "groups": [
    {
      "id": "120363123456789012@g.us",
      "name": "Grupo de Trabalho",
      "participants": 25,
      "isAdmin": true
    }
  ]
}

Gestão de Mídias

GET /media/downloads
GET

Lista todos os downloads de mídia.

DELETE /media/downloads/all
DELETE

Deleta todos os downloads.

Webhook

⚡ Eventos em Tempo Real

Configure um webhook para receber notificações de mensagens e eventos.

POST /user/webhooks
POST

Configura o webhook.

Requisição:
{
  "url": "https://seu-servidor.com/webhook",
  "enabled": true,
  "events": ["message", "status"]
}
Eventos Recebidos:
{
  "event": "message",
  "sessionName": "minha-sessao",
  "from": "5511999999999@c.us",
  "body": "Texto da mensagem",
  "hasMedia": false,
  "timestamp": 1699999999
}

Logs do Sistema

GET /logs
GET

Obtém os logs do sistema (últimos 1000).

DELETE /logs/clear
DELETE

Limpa todos os logs.

WebSocket (Tempo Real)

Conecte-se ao WebSocket para receber eventos em tempo real:

ws://localhost:3000

Eventos Disponíveis:

Evento Descrição
qr_generated QR Code foi gerado
connected Sessão conectada
qr_expired QR Code expirou
log Novo log do sistema

Códigos de Status HTTP

Código Status Descrição
200 OK Requisição bem-sucedida
201 Created Recurso criado com sucesso
400 Bad Request Requisição inválida
401 Unauthorized Token inválido ou ausente
404 Not Found Recurso não encontrado
500 Internal Server Error Erro interno do servidor