Referência completa da API
A WAAS gerencia várias sessões do WhatsApp, QR dinâmico, envio e acompanhamento de mensagens, grupos, contatos, webhooks, usuários, planos e todas as capacidades públicas disponíveis no socket Baileys.
URL base: https://apiwpp.audreynogueira.com/api/v1. Envie JSON em UTF-8 com Content-Type: application/json; charset=utf-8.
Autenticação e escopos
Use o JWT retornado pelo login em Authorization: Bearer TOKEN ou uma chave em x-api-key: waas_....
POST /api/v1/auth/login
{"email":"admin@waas.local","password":"Admin@123456"}
Authorization: Bearer SEU_TOKEN
# ou
x-api-key: waas_SUA_CHAVE
/auth/loginAutentica e retorna JWT./auth/refreshRenova um JWT válido./auth/meUsuário, plano e cota efetiva.Escopos de chave
| Escopo | Permite |
|---|---|
* | Acesso total do usuário. |
instances:write | Criar, editar e excluir instâncias. |
instances:connect | Iniciar, parar, atualizar QR e desvincular. |
instances:advanced | Executor genérico de funções públicas Baileys. |
messages:send | Enviar, editar, reagir e excluir mensagens. |
groups:write | Administrar grupos e participantes. |
webhooks:write | Criar, editar e excluir webhooks. |
Instâncias, conexão e QR Code
/instancesLista instâncias do usuário./instancesCria com name, rejectCalls, readMessages, markOnline, syncFullHistory./instances/:idEstado e configuração completos./instances/:idAtualiza nome e preferências./instances/:idApaga sessão e dados persistidos./instances/:id/startInicia ou restaura a conexão./instances/:id/stopPara sem desvincular./instances/:id/logoutDesvincula o WhatsApp./instances/:id/qrQR atual, versão, geração, expiração e segundos restantes; sem cache./instances/:id/qr/refreshForça sessão e QR novos./instances/:id/pairing-codePareamento por telefone: {"phoneNumber":"5511..."}.Sincronização correta do QR
Consulte GET /qr a cada segundo ou acompanhe instance.qr por SSE/webhook. Substitua a imagem quando version aumentar. O painel executa esse fluxo e detecta a conexão automaticamente.
{
"dataUrl": "data:image/png;base64,...",
"status": "QR_CODE",
"version": 3,
"generatedAt": "2026-07-16T12:00:00.000Z",
"expiresAt": "2026-07-16T12:00:55.000Z",
"secondsRemaining": 41,
"expired": false
}
Mensagens
/instances/:id/messagesHistórico da instância. Filtros: chatJid, limit, page, includeRaw. A resposta inclui metadados de mídia quando aplicável./instances/:id/messages/:messageId/media?chatJid=...Transmite a mídia do WhatsApp sob demanda, com Cache-Control: no-store; o arquivo não é gravado no servidor./instances/:id/messages/historySolicita até 50 mensagens anteriores ao aparelho: {"chatJid":"...","count":50}. A disponibilidade depende do WhatsApp e do telefone conectado./instances/:id/messages/textTexto, menções, citação e preview./instances/:id/messages/mediaImagem, vídeo, áudio/PTT, documento ou figurinha via URL HTTPS ou base64./instances/:id/messages/contactContato em vCard./instances/:id/messages/locationLatitude, longitude, nome e endereço./instances/:id/messages/pollEnquete com 2 a 12 opções./instances/:id/messages/reactionAdiciona ou remove reação./instances/:id/messages/editEdita mensagem enviada./instances/:id/messages/deleteApaga para todos./instances/:id/messages/readMarca chaves como lidas./instances/:id/presenceavailable, unavailable, composing, recording, paused.POST /api/v1/instances/INSTANCE_ID/messages/text
{
"to": "5511999999999",
"text": "Olá!",
"mentions": ["5511888888888"],
"linkPreview": true
}Destinos aceitam telefone com DDI, JID individual @s.whatsapp.net ou grupo @g.us. Não existe limite de mensagens na WAAS; a única cota comercial é o número de instâncias.
Grupos
/instances/:id/groupsLista grupos participantes./instances/:id/groupsCria grupo com nome e participantes./instances/:id/groups/:jidMetadados e participantes./instances/:id/groups/:jidNome, descrição, anúncios, bloqueio e mensagens temporárias./instances/:id/groups/:jid/participantsadd, remove, promote, demote./instances/:id/groups/:jid/inviteCódigo e URL do convite./instances/:id/groups/:jid/invite/revokeRevoga o convite./instances/:id/groups/joinEntra por código ou URL./instances/:id/groups/:jid/leaveSai do grupo.Conversas, contatos e eventos em tempo real
/instances/:id/chatsConversas individuais e grupos, não lidas e última mensagem./instances/:id/contactsContatos sincronizados./instances/:id/eventsLog persistido de eventos./instances/:id/streamServer-Sent Events autenticado em tempo real.const response = await fetch('/api/v1/instances/ID/stream', {
headers: { Authorization: 'Bearer ' + token }
});
// Leia blocos "event: waas" e "data: {...}" de response.body.Eventos: conexão, QR, mensagens novas/atualizadas/excluídas, confirmações, histórico, contatos, conversas, grupos, participantes, presença, chamadas, etiquetas e credenciais.
Webhooks assinados
/webhooks/eventsCatálogo de eventos./webhooksLista endpoints./webhooksCria e retorna o segredo uma vez./webhooks/:idAtualiza URL, eventos e estado./webhooks/:idExclui endpoint e entregas.Use events: ["*"] para tudo. Entregas têm assinatura HMAC-SHA256 e retentativas automáticas. Guarde o segredo retornado na criação.
{
"name": "CRM produção",
"url": "https://seusistema.com/webhooks/waas",
"events": ["messages.upsert", "instance.connected"],
"enabled": true
}
Todas as funções públicas do Baileys
/instances/:id/capabilitiesDetecta em runtime todas as funções públicas do socket instalado./instances/:id/actions/:actionExecuta função pelo nome com {"args":[]}.O API Lab do painel preenche a lista automaticamente. Funções de protocolo bruto, término interno e logout ficam bloqueadas no executor genérico; use os endpoints seguros dedicados.
POST /api/v1/instances/ID/actions/profilePictureUrl
{"args":["5511999999999@s.whatsapp.net","image"]}
Administração, planos e cotas
/dashboard/summaryResumo e cota efetiva./api-keysLista chaves./api-keysGera e exibe o valor uma vez./api-keys/:idExclui definitivamente./admin/usersLista usuários (ADMIN)./admin/usersCria com plano e cota individual opcional./admin/users/:idEdita cadastro, plano, status, senha e cota./admin/users/:idExclui usuário./admin/plansLista planos./admin/plansCria plano personalizado./admin/plans/:idEdita preço, retenção e máximo de instâncias./admin/plans/:idExclui plano sem usuários./admin/auditAuditoria administrativa e avançada.A cota efetiva é instanceQuotaOverride quando informada; caso contrário, maxInstances do plano. Mensagens, chaves e webhooks não têm cota.
Erros, paginação e exemplos
| HTTP | Significado |
|---|---|
| 400 | JSON ou parâmetros inválidos. |
| 401 | Credencial ausente, expirada ou revogada. |
| 403 | Escopo insuficiente, usuário suspenso ou recurso ADMIN. |
| 404 | Recurso não encontrado ou QR ainda indisponível. |
| 409 | Conflito, duplicidade, conectado ou limite de instâncias. |
| 429 | Proteção contra excesso de requisições. |
| 500/503 | Falha interna ou socket desconectado. |
Listagens aceitam ?limit=100&offset=0. Erros usam {"error":"CODIGO","message":"Descrição"}.
cURL com chave de API
curl -X POST https://apiwpp.audreynogueira.com/api/v1/instances/INSTANCE_ID/messages/text \
-H "x-api-key: waas_SUA_CHAVE" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{"to":"5511999999999","text":"Olá pela WAAS"}'
Para executar requisições no navegador, use o Swagger interativo. No painel, as mensagens são isoladas por instância e divididas em Contatos e Grupos.