Documentação dos endpoints para listar grupos, obter informações, controlar permissões de envio e enviar mensagens em grupos do WhatsApp via API.
Todos os endpoints abaixo usam esta URL base. Envie seu token de autenticação no header token em todas as requisições.
Retorna todos os grupos do WhatsApp conectado à sua instância. Útil para descobrir os IDs (JID) dos grupos antes de interagir com eles.
| Query Param | Tipo | Descrição |
|---|---|---|
| forceopcional | boolean | true = atualiza o cache e busca dados frescos do WhatsApp. Padrão: false |
| noparticipantsopcional | boolean | true = omite a lista de participantes (resposta mais leve). Padrão: false |
curl -X GET "https://plugsend.uazapi.com/group/list?noparticipants=true" \ -H "token: SEU_TOKEN_AQUI"
| Campo (body JSON) | Tipo | Descrição |
|---|---|---|
| searchopcional | string | Filtra grupos por nome ou JID |
| limitopcional | integer | Resultados por página. Padrão: 50, máximo: 1000 |
| offsetopcional | integer | Deslocamento para paginação. Padrão: 0 |
| forceopcional | boolean | Forçar atualização do cache |
| noParticipantsopcional | boolean | Omitir participantes na resposta |
curl -X POST https://plugsend.uazapi.com/group/list \
-H "Content-Type: application/json" \
-H "token: SEU_TOKEN_AQUI" \
-d '{
"search": "Black Friday",
"limit": 10,
"offset": 0,
"noParticipants": true
}'
{
"groups": [
{
"JID": "120363339858396166@g.us",
"Name": "Campanha Black Friday",
"IsAnnounce": false,
"OwnerIsAdmin": true,
"InviteLink": "https://chat.whatsapp.com/AbCdEf123456"
// ... demais campos
}
],
"pagination": {
"totalRecords": 1,
"limit": 10,
"offset": 0
}
}
Recupera todos os dados de um grupo específico: participantes, configurações, link de convite e solicitações pendentes.
| Campo | Tipo | Descrição |
|---|---|---|
| groupjidobrigatório | string | ID do grupo no formato xxxx@g.us |
| getInviteLinkopcional | boolean | Retornar o link de convite do grupo |
| getRequestsParticipantsopcional | boolean | Retornar solicitações pendentes de entrada |
| forceopcional | boolean | Ignorar cache e buscar dados atualizados |
curl -X POST https://plugsend.uazapi.com/group/info \
-H "Content-Type: application/json" \
-H "token: SEU_TOKEN_AQUI" \
-d '{
"groupjid": "120363339858396166@g.us",
"getInviteLink": true,
"force": false
}'
{
"JID": "120363339858396166@g.us",
"Name": "Campanha Black Friday",
"IsAnnounce": false,
"IsLocked": false,
"OwnerIsAdmin": true,
"InviteLink": "https://chat.whatsapp.com/AbCdEf123456",
"Participants": [
{
"JID": "5511999999999@s.whatsapp.net",
"IsAdmin": true,
"IsSuperAdmin": false
},
{
"JID": "5511888888888@s.whatsapp.net",
"IsAdmin": false,
"IsSuperAdmin": false
}
]
// ... demais campos
}
IsAnnounce na resposta indica o estado atual das permissões: true = somente admins enviam, false = todos enviam. Use esse campo para verificar o status antes de alternar.Alterna a configuração de envio de mensagens do grupo — equivalente à opção "Enviar mensagens → Somente administradores" no WhatsApp.
| Campo | Tipo | Descrição |
|---|---|---|
| groupjidobrigatório | string | ID do grupo no formato xxxx@g.us |
| announceobrigatório | boolean | true = somente admins enviam (grupo travado)false = todos enviam (grupo liberado) |
announce: false para liberar o envio de mensagens para todos os participantes.
announce: true para restringir — somente administradores poderão enviar mensagens. Os demais ficam em modo somente leitura.
announce: false novamente para reabrir o envio para todos.
curl -X POST https://plugsend.uazapi.com/group/updateAnnounce \
-H "Content-Type: application/json" \
-H "token: SEU_TOKEN_AQUI" \
-d '{
"groupjid": "120363339858396166@g.us",
"announce": true
}'
curl -X POST https://plugsend.uazapi.com/group/updateAnnounce \
-H "Content-Type: application/json" \
-H "token: SEU_TOKEN_AQUI" \
-d '{
"groupjid": "120363339858396166@g.us",
"announce": false
}'
{
"response": "Group announce enabled successfully",
"group": {
"JID": "120363339858396166@g.us",
"Name": "Campanha Black Friday",
"IsAnnounce": true
},
"needs_refresh": false
}
403.Envia uma mensagem de texto para um grupo. Basta passar o JID do grupo no campo number (o mesmo endpoint usado para contatos individuais).
| Campo | Tipo | Descrição |
|---|---|---|
| numberobrigatório | string | JID do grupo no formato xxxx@g.us (ou número de telefone para chat individual) |
| textobrigatório | string | Texto da mensagem. Aceita placeholders como {{name}} |
| delayopcional | integer | Atraso em milissegundos antes do envio (mostra "Digitando...") |
| mentionsopcional | string | Números para mencionar, separados por vírgula |
| linkPreviewopcional | boolean | Gerar preview automático de links no texto |
| replyidopcional | string | ID de uma mensagem para responder |
curl -X POST https://plugsend.uazapi.com/send/text \
-H "Content-Type: application/json" \
-H "token: SEU_TOKEN_AQUI" \
-d '{
"number": "120363339858396166@g.us",
"text": "🔥 A campanha está aberta! Enviem suas ofertas.",
"delay": 1000
}'
curl -X POST https://plugsend.uazapi.com/send/text \
-H "Content-Type: application/json" \
-H "token: SEU_TOKEN_AQUI" \
-d '{
"number": "120363339858396166@g.us",
"text": "Atenção @5511999999999 e @5511888888888! A campanha encerra em 1h.",
"mentions": "5511999999999,5511888888888"
}'
curl -X POST https://plugsend.uazapi.com/send/text \
-H "Content-Type: application/json" \
-H "token: SEU_TOKEN_AQUI" \
-d '{
"number": "120363339858396166@g.us",
"text": "Confira o catálogo completo: https://exemplo.com/catalogo",
"linkPreview": true
}'
/send/media (imagens, vídeos, áudio), /send/contact, /send/location, entre outros. Basta passar o JID do grupo no campo number.const API_BASE = "https://plugsend.uazapi.com"; const TOKEN = "SEU_TOKEN_AQUI"; // Função base para chamadas à API async function plugsendRequest(endpoint, body, method = "POST") { const options = { method, headers: { "Content-Type": "application/json", "token": TOKEN } }; if (body) options.body = JSON.stringify(body); const res = await fetch(API_BASE + endpoint, options); if (!res.ok) throw { status: res.status, ...await res.json() }; return res.json(); } // 1. Listar todos os grupos async function listarGrupos(search = "") { return plugsendRequest("/group/list", { search, limit: 50, noParticipants: true }); } // 2. Info de um grupo específico async function infoGrupo(groupjid) { return plugsendRequest("/group/info", { groupjid, getInviteLink: true }); } // 3. Travar grupo (somente admins enviam) async function encerrarCampanha(groupjid) { return plugsendRequest("/group/updateAnnounce", { groupjid, announce: true }); } // 4. Liberar grupo (todos enviam) async function iniciarCampanha(groupjid) { return plugsendRequest("/group/updateAnnounce", { groupjid, announce: false }); } // 5. Enviar mensagem no grupo async function enviarMensagem(groupjid, text) { return plugsendRequest("/send/text", { number: groupjid, text, delay: 1000 }); } // Exemplo de uso completo: const grupo = "120363339858396166@g.us"; await iniciarCampanha(grupo); await enviarMensagem(grupo, "🔥 Campanha aberta! Enviem suas ofertas."); // ... quando encerrar: await enviarMensagem(grupo, "⏹️ Campanha encerrada. Obrigado a todos!"); await encerrarCampanha(grupo);
Copie e cole o prompt abaixo na sua ferramenta de vibecoding (Cursor, Bolt, Lovable, Claude, etc.) para gerar a integração completa automaticamente.
📋 Prompt pronto para copiar