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

# Chats

> List and manage instance conversations

Use `client.chats()` to list conversations and apply actions such as archive, mute, pin, and expiration.

For instances, see [Instances and billing](/en/sdk/java/instances-and-billing). For session, see [Session](/en/sdk/java/session).

Build a `GenericInstanceRequest` with `instanceId` and `instanceToken`. Methods that take a `phone` argument use the number as the second parameter.

## Chats

### `client.chats().list(request)`

```java theme={null}
var request = GenericInstanceRequest.builder()
    .instanceId("VZ...")
    .instanceToken("instance-token")
    .build();
request.putAdditionalData("page", 1);
request.putAdditionalData("pageSize", 20);
JsonNode chats = client.chats().list(request);
```

**Return:** page `{ page, page_size, total, total_pages, content[] }` with chat metadata per item.

### `client.chats().get(request, phone)`

```java theme={null}
JsonNode chat = client.chats().get(request, "5511999999999");
```

**Return:** `InstanceChatMetadata` — `phone`, `jid`, `name`, flags (`archived`, `pinned`, `muted`, etc.) and last message when available.

### `client.chats().archive(request, phone)`

```java theme={null}
client.chats().archive(request, "5511999999999");
```

**Return:** `{ status: "ok" }`.

### `client.chats().unarchive(request, phone)`

```java theme={null}
client.chats().unarchive(request, "5511999999999");
```

**Return:** `{ status: "ok" }`.

### `client.chats().mute(request, phone)`

```java theme={null}
request.putAdditionalData("durationSeconds", 3600);
client.chats().mute(request, "5511999999999");
```

**Return:** `{ status: "ok" }`.

### `client.chats().unmute(request, phone)`

```java theme={null}
client.chats().unmute(request, "5511999999999");
```

**Return:** `{ status: "ok" }`.

### `client.chats().pin(request, phone)` / `unpin(request, phone)`

```java theme={null}
client.chats().pin(request, "5511999999999");
client.chats().unpin(request, "5511999999999");
```

**Return:** `{ status: "ok" }`.

### `client.chats().read(request, phone)` / `unread(request, phone)`

```java theme={null}
client.chats().read(request, "5511999999999");
client.chats().unread(request, "5511999999999");
```

**Return:** `{ status: "ok" }`.

### `client.chats().clear(request, phone)` / `delete(request, phone)`

```java theme={null}
request.putAdditionalData("deleteMedia", false);
client.chats().clear(request, "5511999999999");
client.chats().delete(request, "5511999999999");
```

**Return:** `{ status: "ok" }`.

### `client.chats().setExpiration(request, phone)`

```java theme={null}
request.putAdditionalData("expiration", "7_DAYS");
client.chats().setExpiration(request, "5511999999999");
```

**Return:** `{ status: "ok" }`.

Accepted `expiration` values: `24_HOURS`, `7_DAYS`, `90_DAYS`, `OFF`.
