> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vzaps.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Grupos

> Listar, criar e gerenciar grupos WhatsApp com o SDK TypeScript

Use `vzaps.groups` para operações de grupos WhatsApp de uma instância.

Campos comuns em todas as chamadas:

| Campo           | Tipo     | Obrigatório | Descrição           |
| --------------- | -------- | ----------- | ------------------- |
| `instanceId`    | `string` | Sim         | ID da instância.    |
| `instanceToken` | `string` | Sim         | Token da instância. |

Operações em grupo específico também exigem `groupId` no payload.

## `groups.list(request)`

Lista grupos com páginação.

```ts theme={null}
const groups = await vzaps.groups.list({
  instanceId: 'VZ...',
  instanceToken: 'instance-token',
  page: 1,
  pageSize: 20,
});

console.dir(groups, { depth: null });
```

**Retorno:** envelope `{ code, success, data.groups[] }` com paginacao quando aplicavel.

## `groups.get(request)`

Obtém metadados de um grupo.

```ts theme={null}
const group = await vzaps.groups.get({
  instanceId: 'VZ...',
  instanceToken: 'instance-token',
  groupId: '120363012345678901@g.us',
});

console.dir(group, { depth: null });
```

**Retorno:** envelope `{ code, success, data }` com metadados do grupo (`jid`, `name`, `topic`, participantes, etc.).

## `groups.inviteLink(request)`

Obtém ou reseta o link de convite.

```ts theme={null}
const invite = await vzaps.groups.inviteLink({
  instanceId: 'VZ...',
  instanceToken: 'instance-token',
  groupId: '120363012345678901@g.us',
  reset: false,
});

console.dir(invite, { depth: null });
```

**Retorno:** envelope `{ code, success, data.inviteLink }`.

Com reset:

```ts theme={null}
const newInvite = await vzaps.groups.inviteLink({
  instanceId: 'VZ...',
  instanceToken: 'instance-token',
  groupId: '120363012345678901@g.us',
  reset: true,
});
```

## `groups.setPhoto(request)`

Altera a foto do grupo. Aceita URL pública ou data URL base64.

```ts theme={null}
await vzaps.groups.setPhoto({
  instanceId: 'VZ...',
  instanceToken: 'instance-token',
  groupId: '120363012345678901@g.us',
  image: 'https://cdn.example.com/grupos/foto.jpg',
});
```

**Retorno:** envelope `{ code, success, data.details }` confirmando a alteracao.

## `groups.setName(request)`

Altera o nome do grupo.

```ts theme={null}
await vzaps.groups.setName({
  instanceId: 'VZ...',
  instanceToken: 'instance-token',
  groupId: '120363012345678901@g.us',
  name: 'Suporte VIP',
});
```

**Retorno:** envelope `{ code, success, data.details }` confirmando a alteracao.

## `groups.setDescription(request)`

Altera a descrição do grupo.

```ts theme={null}
await vzaps.groups.setDescription({
  instanceId: 'VZ...',
  instanceToken: 'instance-token',
  groupId: '120363012345678901@g.us',
  description: 'Canal oficial de suporte',
});
```

**Retorno:** envelope `{ code, success, data.details }` confirmando a alteracao.

## `groups.setSettings(request)`

Altera configurações do grupo.

```ts theme={null}
await vzaps.groups.setSettings({
  instanceId: 'VZ...',
  instanceToken: 'instance-token',
  groupId: '120363012345678901@g.us',
  adminOnlyMessage: true,
  adminOnlySettings: false,
  delayMessage: 0,
});
```

**Retorno:** envelope `{ code, success, data.details }` confirmando a alteracao.

## `groups.create(request)`

Cria um grupo com participantes.

```ts theme={null}
await vzaps.groups.create({
  instanceId: 'VZ...',
  instanceToken: 'instance-token',
  groupName: 'Suporte VIP',
  groupDescription: 'Canal de atendimento',
  groupImage: 'https://cdn.example.com/grupos/foto.jpg',
  participants: ['5511999999999', '5511888888888'],
});
```

**Retorno:** envelope `{ code, success, data }` com dados do grupo criado.

## `groups.addAdmin(request)`

Promove participantes a administrador.

```ts theme={null}
await vzaps.groups.addAdmin({
  instanceId: 'VZ...',
  instanceToken: 'instance-token',
  groupId: '120363012345678901@g.us',
  participants: ['5511999999999'],
});
```

**Retorno:** envelope `{ code, success, data.details }` confirmando a alteracao.

## `groups.removeAdmin(request)`

Remove administradores do grupo.

```ts theme={null}
await vzaps.groups.removeAdmin({
  instanceId: 'VZ...',
  instanceToken: 'instance-token',
  groupId: '120363012345678901@g.us',
  participants: ['5511999999999'],
});
```

**Retorno:** envelope `{ code, success, data.details }` confirmando a alteracao.
