> ## 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.

# Groups

> List, create, and manage WhatsApp groups with the Java SDK

Use `client.groups()` for listing, metadata, invite links, settings, and group admin actions.

Common fields on every call:

| Field           | Type     | Required | Description     |
| --------------- | -------- | -------- | --------------- |
| `instanceId`    | `string` | Yes      | Instance ID.    |
| `instanceToken` | `string` | Yes      | Instance token. |

Group-specific operations also require `groupId` in the payload.

## `client.groups().list(...)`

Lists groups with pagination.

```java theme={null}
var options = InstanceRequestOptions.builder().instanceToken(instanceToken).build();
JsonNode result = client.groups().list(GenericInstanceRequest.builder()
    .instanceId(instanceId)
    .instanceToken(instanceToken)
    .build());
// Example: tipagem estrita com DTOs publicados quando disponivel
```

**Return:** envelope `{ code, success, data.groups[] }` with pagination when applicable.

## `client.groups().get(...)`

Gets group metadata.

```java theme={null}
var options = InstanceRequestOptions.builder().instanceToken(instanceToken).build();
JsonNode result = client.groups().get(GenericInstanceRequest.builder()
    .instanceId(instanceId)
    .instanceToken(instanceToken)
    .build());
// Example: tipagem estrita com DTOs publicados quando disponivel
```

**Return:** envelope `{ code, success, data }` with group metadata (`jid`, `name`, `topic`, participants, etc.).

## `client.groups().inviteLink(...)`

Gets or resets the invite link.

```java theme={null}
var options = InstanceRequestOptions.builder().instanceToken(instanceToken).build();
JsonNode result = client.groups().inviteLink(GenericInstanceRequest.builder()
    .instanceId(instanceId)
    .instanceToken(instanceToken)
    .build());
// Example: tipagem estrita com DTOs publicados quando disponivel
```

**Return:** envelope `{ code, success, data.invite_link }`.

With reset:

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

## `client.groups().setPhoto(...)`

Changes the group photo. Accepts a public URL or base64 data URL.

```java theme={null}
var options = InstanceRequestOptions.builder().instanceToken(instanceToken).build();
JsonNode result = client.groups().setPhoto(GenericInstanceRequest.builder()
    .instanceId(instanceId)
    .instanceToken(instanceToken)
    .build());
// Example: tipagem estrita com DTOs publicados quando disponivel
```

**Return:** envelope `{ code, success, data.details }` confirming the change.

## `client.groups().setName(...)`

Changes the group name.

```java theme={null}
var options = InstanceRequestOptions.builder().instanceToken(instanceToken).build();
JsonNode result = client.groups().setName(GenericInstanceRequest.builder()
    .instanceId(instanceId)
    .instanceToken(instanceToken)
    .build());
// Example: tipagem estrita com DTOs publicados quando disponivel
```

**Return:** envelope `{ code, success, data.details }` confirming the change.

## `client.groups().setDescription(...)`

Changes the group description.

```java theme={null}
var options = InstanceRequestOptions.builder().instanceToken(instanceToken).build();
JsonNode result = client.groups().setDescription(GenericInstanceRequest.builder()
    .instanceId(instanceId)
    .instanceToken(instanceToken)
    .build());
// Example: tipagem estrita com DTOs publicados quando disponivel
```

**Return:** envelope `{ code, success, data.details }` confirming the change.

## `client.groups().setSettings(...)`

Changes group settings.

```java theme={null}
var options = InstanceRequestOptions.builder().instanceToken(instanceToken).build();
JsonNode result = client.groups().setSettings(GenericInstanceRequest.builder()
    .instanceId(instanceId)
    .instanceToken(instanceToken)
    .build());
// Example: tipagem estrita com DTOs publicados quando disponivel
```

**Return:** envelope `{ code, success, data.details }` confirming the change.

## `client.groups().create(...)`

Creates a group with participants.

```java theme={null}
var options = InstanceRequestOptions.builder().instanceToken(instanceToken).build();
JsonNode result = client.groups().create(GenericInstanceRequest.builder()
    .instanceId(instanceId)
    .instanceToken(instanceToken)
    .build());
// Example: tipagem estrita com DTOs publicados quando disponivel
```

**Return:** envelope `{ code, success, data }` with created group fields.

## `client.groups().addAdmin(...)`

Promotes participants to admin.

```java theme={null}
var options = InstanceRequestOptions.builder().instanceToken(instanceToken).build();
JsonNode result = client.groups().addAdmin(GenericInstanceRequest.builder()
    .instanceId(instanceId)
    .instanceToken(instanceToken)
    .build());
// Example: tipagem estrita com DTOs publicados quando disponivel
```

**Return:** envelope `{ code, success, data.details }` confirming the change.

## `client.groups().removeAdmin(...)`

Removes admins from the group.

```java theme={null}
var options = InstanceRequestOptions.builder().instanceToken(instanceToken).build();
JsonNode result = client.groups().removeAdmin(GenericInstanceRequest.builder()
    .instanceId(instanceId)
    .instanceToken(instanceToken)
    .build());
// Example: tipagem estrita com DTOs publicados quando disponivel
```

**Return:** envelope `{ code, success, data.details }` confirming the change.
