Documentação completa dos endpoints para gerenciar grupos WhatsApp.
- Listar Grupos
- Informações do Grupo
- Link de Convite
- Criar Grupo
- Gerenciar Participantes
- Configurações do Grupo
- Meus Grupos (Admin)
- Entrar via Link
- Sair do Grupo
Lista todos os grupos que você participa.
Endpoint: GET /group/list
Headers:
apikey: SUA-CHAVE-API
Resposta de Sucesso (200):
{
"message": "success",
"data": [
{
"JID": "120363XXXXXXXXXX@g.us",
"OwnerJID": "5511999999999@s.whatsapp.net",
"GroupName": {
"Name": "Equipe de Vendas",
"NameSetAt": "2025-01-15T10:30:00Z",
"NameSetBy": "5511999999999@s.whatsapp.net"
},
"GroupTopic": {
"Topic": "Discussões sobre vendas e metas",
"TopicID": "abc123",
"TopicSetAt": "2025-01-15T10:35:00Z",
"TopicSetBy": "5511999999999@s.whatsapp.net"
},
"GroupCreated": "2025-01-15T10:00:00Z",
"Participants": [
{
"JID": "5511999999999@s.whatsapp.net",
"IsAdmin": true,
"IsSuperAdmin": true
},
{
"JID": "5511888888888@s.whatsapp.net",
"IsAdmin": false,
"IsSuperAdmin": false
}
],
"ParticipantVersionID": "abc123"
}
]
}Campos da Resposta:
JID: ID único do grupo (sempre termina com @g.us)OwnerJID: Criador do grupoGroupName: Nome e metadadosGroupTopic: Descrição do grupoParticipants: Lista de participantes com permissões
Exemplo cURL:
curl -X GET http://localhost:4000/group/list \
-H "apikey: SUA-CHAVE-API"Obtém informações detalhadas de um grupo específico.
Endpoint: POST /group/info
Body:
{
"groupJid": "120363XXXXXXXXXX@g.us"
}Parâmetros:
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
groupJid |
string | ✅ Sim | JID do grupo |
Resposta de Sucesso (200):
{
"message": "success",
"data": {
"JID": "120363XXXXXXXXXX@g.us",
"OwnerJID": "5511999999999@s.whatsapp.net",
"GroupName": {
"Name": "Equipe de Vendas",
"NameSetAt": "2025-01-15T10:30:00Z",
"NameSetBy": "5511999999999@s.whatsapp.net"
},
"GroupTopic": {
"Topic": "Discussões sobre vendas",
"TopicID": "abc123",
"TopicSetAt": "2025-01-15T10:35:00Z",
"TopicSetBy": "5511999999999@s.whatsapp.net"
},
"GroupCreated": "2025-01-15T10:00:00Z",
"Participants": [
{
"JID": "5511999999999@s.whatsapp.net",
"IsAdmin": true,
"IsSuperAdmin": true
}
]
}
}Exemplo cURL:
curl -X POST http://localhost:4000/group/info \
-H "Content-Type: application/json" \
-H "apikey: SUA-CHAVE-API" \
-d '{
"groupJid": "120363XXXXXXXXXX@g.us"
}'Obtém ou regenera o link de convite do grupo.
Endpoint: POST /group/invitelink
Body:
{
"groupJid": "120363XXXXXXXXXX@g.us",
"reset": false
}Parâmetros:
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
groupJid |
string | ✅ Sim | JID do grupo |
reset |
bool | ❌ Não | Se true, gera um novo link (invalida o anterior) |
Nota: Apenas admins podem obter/resetar links de convite.
Resposta de Sucesso (200):
{
"message": "success",
"data": "https://chat.whatsapp.com/ABCDEFGHIJKLMNOP"
}Exemplo cURL:
# Obter link existente
curl -X POST http://localhost:4000/group/invitelink \
-H "Content-Type: application/json" \
-H "apikey: SUA-CHAVE-API" \
-d '{
"groupJid": "120363XXXXXXXXXX@g.us",
"reset": false
}'
# Gerar novo link
curl -X POST http://localhost:4000/group/invitelink \
-H "Content-Type: application/json" \
-H "apikey: SUA-CHAVE-API" \
-d '{
"groupJid": "120363XXXXXXXXXX@g.us",
"reset": true
}'Cria um novo grupo WhatsApp.
Endpoint: POST /group/create
Body:
{
"groupName": "Equipe de Vendas",
"participants": [
"5511999999999",
"5511888888888",
"5511777777777"
]
}Parâmetros:
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
groupName |
string | ✅ Sim | Nome do grupo |
participants |
array | ✅ Sim | Array de números dos participantes (mínimo 1) |
Resposta de Sucesso (200):
{
"message": "success",
"data": {
"jid": "120363XXXXXXXXXX@g.us",
"name": "Equipe de Vendas",
"owner": "5511999999999@s.whatsapp.net",
"added": [
"5511999999999@s.whatsapp.net",
"5511888888888@s.whatsapp.net"
],
"failed": [
"5511777777777@s.whatsapp.net"
]
}
}Campos da Resposta:
jid: ID do grupo criadoname: Nome do grupoowner: Criador (você)added: Participantes adicionados com sucessofailed: Participantes que falharam (número inválido, bloqueado, etc)
Nota: É normal que alguns participantes falhem (números inexistentes, bloqueados, etc).
Exemplo cURL:
curl -X POST http://localhost:4000/group/create \
-H "Content-Type: application/json" \
-H "apikey: SUA-CHAVE-API" \
-d '{
"groupName": "Meu Grupo",
"participants": ["5511999999999", "5511888888888"]
}'Adiciona, remove ou promove participantes do grupo.
Endpoint: POST /group/participant
Body:
{
"groupJid": "120363XXXXXXXXXX@g.us",
"action": "add",
"participants": ["5511999999999", "5511888888888"]
}Parâmetros:
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
groupJid |
string | ✅ Sim | JID do grupo |
action |
string | ✅ Sim | Ação a executar |
participants |
array | ✅ Sim | Array de números |
Ações Disponíveis:
| Action | Descrição | Requer Admin |
|---|---|---|
add |
Adicionar participantes | ✅ Sim |
remove |
Remover participantes | ✅ Sim |
promote |
Promover a admin | ✅ Sim |
demote |
Remover admin | ✅ Sim |
Resposta de Sucesso (200):
{
"message": "success"
}Resposta de Erro (500):
{
"error": "error create group: 403 forbidden"
}Exemplos cURL:
# Adicionar participantes
curl -X POST http://localhost:4000/group/participant \
-H "Content-Type: application/json" \
-H "apikey: SUA-CHAVE-API" \
-d '{
"groupJid": "120363XXXXXXXXXX@g.us",
"action": "add",
"participants": ["5511999999999"]
}'
# Remover participantes
curl -X POST http://localhost:4000/group/participant \
-H "Content-Type: application/json" \
-H "apikey: SUA-CHAVE-API" \
-d '{
"groupJid": "120363XXXXXXXXXX@g.us",
"action": "remove",
"participants": ["5511888888888"]
}'
# Promover a admin
curl -X POST http://localhost:4000/group/participant \
-H "Content-Type: application/json" \
-H "apikey: SUA-CHAVE-API" \
-d '{
"groupJid": "120363XXXXXXXXXX@g.us",
"action": "promote",
"participants": ["5511999999999"]
}'
# Remover admin (rebaixar)
curl -X POST http://localhost:4000/group/participant \
-H "Content-Type: application/json" \
-H "apikey: SUA-CHAVE-API" \
-d '{
"groupJid": "120363XXXXXXXXXX@g.us",
"action": "demote",
"participants": ["5511999999999"]
}'Define a foto do grupo.
Endpoint: POST /group/photo
Body:
{
"groupJid": "120363XXXXXXXXXX@g.us",
"image": "https://exemplo.com/logo.jpg"
}Ou com base64:
{
"groupJid": "120363XXXXXXXXXX@g.us",
"image": "data:image/jpeg;base64,/9j/4AAQSkZJRg..."
}Parâmetros:
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
groupJid |
string | ✅ Sim | JID do grupo |
image |
string | ✅ Sim | URL ou base64 da imagem |
Formatos Aceitos:
- URL (http:// ou https://)
- Base64 (data:image/jpeg;base64,... ou data:image/png;base64,...)
Nota: Apenas admins podem alterar a foto.
Resposta de Sucesso (200):
{
"message": "success",
"data": "abc123"
}O campo data contém o ID da nova foto.
Exemplo cURL:
# Com URL
curl -X POST http://localhost:4000/group/photo \
-H "Content-Type: application/json" \
-H "apikey: SUA-CHAVE-API" \
-d '{
"groupJid": "120363XXXXXXXXXX@g.us",
"image": "https://exemplo.com/logo.jpg"
}'
# Com base64
curl -X POST http://localhost:4000/group/photo \
-H "Content-Type: application/json" \
-H "apikey: SUA-CHAVE-API" \
-d '{
"groupJid": "120363XXXXXXXXXX@g.us",
"image": "data:image/jpeg;base64,/9j/4AAQSkZJRg..."
}'Altera o nome do grupo.
Endpoint: POST /group/name
Body:
{
"groupJid": "120363XXXXXXXXXX@g.us",
"name": "Novo Nome do Grupo"
}Parâmetros:
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
groupJid |
string | ✅ Sim | JID do grupo |
name |
string | ✅ Sim | Novo nome (máx 25 caracteres) |
Nota: Apenas admins podem alterar o nome.
Resposta de Sucesso (200):
{
"message": "success"
}Exemplo cURL:
curl -X POST http://localhost:4000/group/name \
-H "Content-Type: application/json" \
-H "apikey: SUA-CHAVE-API" \
-d '{
"groupJid": "120363XXXXXXXXXX@g.us",
"name": "Equipe Marketing 2025"
}'Altera a descrição do grupo.
Endpoint: POST /group/description
Body:
{
"groupJid": "120363XXXXXXXXXX@g.us",
"description": "Grupo para discussões sobre marketing e estratégias de vendas."
}Parâmetros:
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
groupJid |
string | ✅ Sim | JID do grupo |
description |
string | ✅ Sim | Nova descrição (máx 512 caracteres) |
Nota: Apenas admins podem alterar a descrição.
Resposta de Sucesso (200):
{
"message": "success"
}Exemplo cURL:
curl -X POST http://localhost:4000/group/description \
-H "Content-Type: application/json" \
-H "apikey: SUA-CHAVE-API" \
-d '{
"groupJid": "120363XXXXXXXXXX@g.us",
"description": "Grupo oficial da empresa - Apenas assuntos profissionais"
}'Lista apenas os grupos onde você é o proprietário/criador.
Endpoint: GET /group/myall
Headers:
apikey: SUA-CHAVE-API
Resposta de Sucesso (200):
{
"message": "success",
"data": [
{
"JID": "120363XXXXXXXXXX@g.us",
"OwnerJID": "5511999999999@s.whatsapp.net",
"GroupName": {
"Name": "Meu Grupo",
"NameSetAt": "2025-01-15T10:30:00Z",
"NameSetBy": "5511999999999@s.whatsapp.net"
},
"Participants": [...]
}
]
}Diferença:
/group/list- Todos os grupos que você participa/group/myall- Apenas grupos que você criou (owner)
Exemplo cURL:
curl -X GET http://localhost:4000/group/myall \
-H "apikey: SUA-CHAVE-API"Entra em um grupo através de um link de convite.
Endpoint: POST /group/join
Body:
{
"code": "ABCDEFGHIJKLMNOP"
}Ou com URL completa:
{
"code": "https://chat.whatsapp.com/ABCDEFGHIJKLMNOP"
}Parâmetros:
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
code |
string | ✅ Sim | Código do link ou URL completa |
Nota: O código é a parte após https://chat.whatsapp.com/.
Resposta de Sucesso (200):
{
"message": "success"
}Resposta de Erro (500):
{
"error": "error create group: 404 not found"
}Erros comuns:
404 not found- Link inválido ou expirado403 forbidden- Você foi banido ou removido406 not acceptable- Grupo cheio (256 participantes)
Exemplo cURL:
# Com código
curl -X POST http://localhost:4000/group/join \
-H "Content-Type: application/json" \
-H "apikey: SUA-CHAVE-API" \
-d '{
"code": "ABCDEFGHIJKLMNOP"
}'
# Com URL completa
curl -X POST http://localhost:4000/group/join \
-H "Content-Type: application/json" \
-H "apikey: SUA-CHAVE-API" \
-d '{
"code": "https://chat.whatsapp.com/ABCDEFGHIJKLMNOP"
}'Sai de um grupo WhatsApp.
Endpoint: POST /group/leave
Body:
{
"groupJid": "120363XXXXXXXXXX@g.us"
}Parâmetros:
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
groupJid |
string | ✅ Sim | JID do grupo |
Nota: Se você for o único admin, o grupo ficará sem admins até que outro seja promovido ou o grupo seja excluído.
Resposta de Sucesso (200):
{
"message": "success"
}Exemplo cURL:
curl -X POST http://localhost:4000/group/leave \
-H "Content-Type: application/json" \
-H "apikey: SUA-CHAVE-API" \
-d '{
"groupJid": "120363XXXXXXXXXX@g.us"
}'# 1. Criar grupo
GROUP_JID=$(curl -X POST http://localhost:4000/group/create \
-H "Content-Type: application/json" \
-H "apikey: SUA-CHAVE-API" \
-d '{
"groupName": "Meu Grupo",
"participants": ["5511999999999"]
}' | jq -r '.data.jid')
# 2. Adicionar foto
curl -X POST http://localhost:4000/group/photo \
-H "Content-Type: application/json" \
-H "apikey: SUA-CHAVE-API" \
-d "{
"groupJid": "$GROUP_JID",
"image": "https://exemplo.com/logo.jpg"
}"
# 3. Adicionar descrição
curl -X POST http://localhost:4000/group/description \
-H "Content-Type: application/json" \
-H "apikey: SUA-CHAVE-API" \
-d "{
"groupJid": "$GROUP_JID",
"description": "Grupo oficial da empresa"
}"
# 4. Obter link de convite
curl -X POST http://localhost:4000/group/invitelink \
-H "Content-Type: application/json" \
-H "apikey: SUA-CHAVE-API" \
-d "{
"groupJid": "$GROUP_JID",
"reset": false
}"# Adicionar novos membros
curl -X POST http://localhost:4000/group/participant \
-H "Content-Type: application/json" \
-H "apikey: SUA-CHAVE-API" \
-d '{
"groupJid": "120363XXXXXXXXXX@g.us",
"action": "add",
"participants": ["5511888888888", "5511777777777"]
}'
# Promover a admin
curl -X POST http://localhost:4000/group/participant \
-H "Content-Type: application/json" \
-H "apikey: SUA-CHAVE-API" \
-d '{
"groupJid": "120363XXXXXXXXXX@g.us",
"action": "promote",
"participants": ["5511888888888"]
}'| Código | Erro | Solução |
|---|---|---|
| 400 | groupJid is required |
Forneça o JID do grupo |
| 400 | groupName is required |
Forneça o nome do grupo |
| 400 | participants are required |
Forneça array de participantes |
| 400 | action is required |
Especifique a ação (add/remove/promote/demote) |
| 500 | invalid group jid |
JID de grupo inválido (deve terminar com @g.us) |
| 500 | 403 forbidden |
Sem permissão (não é admin) |
| 500 | 404 not found |
Grupo não existe ou link inválido |
Sempre verifique se você é admin antes de tentar alterar configurações:
# 1. Obter info do grupo
INFO=$(curl -s -X POST http://localhost:4000/group/info \
-H "Content-Type: application/json" \
-H "apikey: SUA-CHAVE-API" \
-d '{"groupJid": "120363XXXXXXXXXX@g.us"}')
# 2. Verificar se você é admin
echo $INFO | jq '.data.Participants[] | select(.IsAdmin == true)'Valide números antes de adicionar ao grupo:
# 1. Verificar se número existe
curl -X POST http://localhost:4000/user/check \
-H "Content-Type: application/json" \
-H "apikey: SUA-CHAVE-API" \
-d '{"number": ["5511999999999"]}'
# 2. Se IsInWhatsapp=true, adicionar ao grupo
curl -X POST http://localhost:4000/group/participant \
-H "Content-Type: application/json" \
-H "apikey: SUA-CHAVE-API" \
-d '{
"groupJid": "120363XXXXXXXXXX@g.us",
"action": "add",
"participants": ["5511999999999"]
}'Respeite os limites do WhatsApp:
- 256 participantes por grupo
- 25 caracteres para nome do grupo
- 512 caracteres para descrição
- Não adicione mais de 20 participantes de uma vez
Ao criar grupo, sempre verifique o campo failed na resposta:
- O campo
addedcontém os participantes adicionados com sucesso - O campo
failedcontém os que falharam (número inválido, não tem WhatsApp, etc) - Se houver falhas, você pode tentar adicionar novamente após verificação
- API de Mensagens - Enviar mensagens em grupos
- API de Usuários - Gerenciar contatos
- API de Chats - Gerenciar conversas
- Visão Geral da API
Documentação gerada para Evolution GO v1.0