Grupos

Gestiona los grupos de WhatsApp con la API.

  • {session} — nombre de la sesión que creaste con POST /api/session.
  • {groupId} — ID del grupo en formato 123123123123@g.us.

Crear un nuevo grupo

http
POST /api/{session}/groups
jsonBody
{
  "name": "Mi grupo",
  "participants": [
    { "id": "5215551234567@c.us" },
    { "id": "5219999999999@c.us" }
  ]
}

Obtener todos los grupos

http
GET /api/{session}/groups

La respuesta depende del motor (engine) que uses.

Parámetros de consulta:

http
GET /api/{session}/groups?limit=20&offset=0&sortBy=subject&sortOrder=desc
  • limit=10 — limita el número de grupos a devolver.
  • offset=0 — omite N grupos desde el inicio.
  • sortBy — ordena por campo:
    • sortBy=id — por ID del grupo.
    • sortBy=subject — por asunto del grupo.
  • sortOrder=desc|asc — orden:
    • desc — descendente (nuevos primero, A–Z).
    • asc — ascendente (antiguos primero, Z–A).
  • exclude=participants — excluye los datos de participantes de la respuesta.

Obtener el número de grupos

http
GET /api/{session}/groups/count
jsonResponse
{ "count": 10 }

Unirse a un grupo

Si tienes el enlace de invitación, únete mediante el código o la URL completa:

http
POST /api/{session}/groups/join
jsonBody
{
  "code": "https://chat.whatsapp.com/INVITECODE"
}
jsonResponse
{ "id": "5215551234567@g.us" }

Obtener info de invitación del grupo

http
GET /api/{session}/groups/join-info?code=invitecode

O usando el enlace completo (recuerda codificar la URL):

http
GET /api/{session}/groups/join-info?code=https%3A%2F%2Fchat.whatsapp.com%2Finvitecode

Refrescar grupos

http
POST /api/{session}/groups/refresh

Obtener el grupo

http
GET /api/{session}/groups/{groupId}

Eliminar el grupo

http
DELETE /api/{session}/groups/{groupId}

Salir del grupo

http
POST /api/{session}/groups/{groupId}/leave

Foto del grupo

Recuerda codificar el símbolo @ del ID como %40 (ej. 5215551234567%40g.us).

Obtener foto

http
GET /api/{session}/groups/{ID}/picture?refresh=false
jsonResponse
{ "url": "https://ejemplo.com/foto.jpg" }

url puede ser null si el grupo no tiene foto. Usa refresh=true para forzar el refresco (por defecto se cachea 24 horas; no refresques con frecuencia para evitar rate-overlimit).

Cambiar foto

http
PUT /api/{session}/groups/{ID}/picture
jsonBody
{
  "file": {
    "url": "https://ejemplo.com/foto.jpg"
  }
}

O con datos en base64:

jsonBody
{
  "file": {
    "data": "BASE64_DE_LA_IMAGEN"
  }
}

Eliminar foto

http
DELETE /api/{session}/groups/{ID}/picture

Cambiar el asunto del grupo

http
PUT /api/{session}/groups/{groupId}/subject
jsonBody
{ "subject": "Nuevo asunto" }

Devuelve true si el asunto se actualizó correctamente. Puede devolver false si no tienes los permisos necesarios.

Cambiar la descripción del grupo

http
PUT /api/{session}/groups/{groupId}/description
jsonBody
{ "description": "Nueva descripción" }

Devuelve true si la descripción se actualizó correctamente. Puede devolver false si no tienes los permisos necesarios.

Seguridad · editar info solo administradores

Permite que solo los administradores editen la información del grupo (título, descripción, foto).

http
GET /api/{session}/groups/{groupId}/settings/security/info-admin-only
http
PUT /api/{session}/groups/{groupId}/settings/security/info-admin-only
jsonBody
{ "adminsOnly": true }

Devuelve true si el ajuste se actualizó correctamente. Puede devolver false si no tienes los permisos necesarios.

Seguridad · mensajes solo administradores

Permite que solo los administradores envíen mensajes.

http
GET /api/{session}/groups/{groupId}/settings/security/messages-admin-only
http
PUT /api/{session}/groups/{groupId}/settings/security/messages-admin-only
jsonBody
{ "adminsOnly": true }

Devuelve true si el ajuste se actualizó correctamente. Puede devolver false si no tienes los permisos necesarios.

Seguridad · quién puede añadir miembros

Controla si todos los miembros o solo los administradores pueden añadir nuevos miembros.

http
GET /api/{session}/groups/{groupId}/settings/security/member-add-mode
http
PUT /api/{session}/groups/{groupId}/settings/security/member-add-mode
jsonBody
{
  "membersCanAddNewMember": true
}

Devuelve true si el ajuste se actualizó correctamente. Puede devolver false si no tienes los permisos necesarios.

Participantes

Obtener participantes

http
GET /api/{session}/groups/{groupId}/participants
jsonResponse
[
  { "id": "5215551234567@c.us", "role": "participant" },
  { "id": "5219999999999@c.us", "role": "admin" }
]

También disponible con una respuesta casi idéntica entre motores:

http
GET /api/{session}/groups/{groupId}/participants/v2

Roles posibles: left, participant, admin, superadmin.

Añadir participantes

http
POST /api/{session}/groups/{groupId}/participants/add
jsonBody
{
  "participants": [
    { "id": "5215551234567@c.us" }
  ]
}

Quitar participantes

http
POST /api/{session}/groups/{groupId}/participants/remove
jsonBody
{
  "participants": [
    { "id": "5215551234567@c.us" }
  ]
}

Administradores

Promover a administrador

http
POST /api/{session}/groups/{groupId}/admin/promote
jsonBody
{
  "participants": [
    { "id": "5215551234567@c.us" }
  ]
}

Degradar a usuario regular

http
POST /api/{session}/groups/{groupId}/admin/demote
jsonBody
{
  "participants": [
    { "id": "5215551234567@c.us" }
  ]
}

Código de invitación

Obtener código

Con el código puedes formar el enlace https://chat.whatsapp.com/{inviteCode} para compartirlo con tus contactos.

http
GET /api/{session}/groups/{groupId}/invite-code

Revocar código

Invalida el código de invitación actual y genera uno nuevo.

http
POST /api/{session}/groups/{groupId}/invite-code/revoke

Eventos

Recibe eventos de grupos mediante Eventos: group.v2.join, group.v2.leave, group.v2.participants y group.v2.update. Consulta el detalle del payload en la página de Eventos.