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

> Listar e gerenciar conversas de uma instância

Use `client.chats()` para listar conversas e aplicar ações como arquivar, silenciar, fixar e expiração.

Para instâncias, veja [Instâncias e billing](/pt-BR/sdk/java/instances-and-billing). Para sessão, veja [Sessão](/pt-BR/sdk/java/session).

Monte um `GenericInstanceRequest` com `instanceId` e `instanceToken`. Métodos que recebem `phone` usam o número como segundo argumento.

## 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);
```

**Retorno:** pagina `{ page, page_size, total, total_pages, content[] }` com metadados de cada chat.

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

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

**Retorno:** `InstanceChatMetadata` — `phone`, `jid`, `name`, flags (`archived`, `pinned`, `muted`, etc.) e ultima mensagem quando disponivel.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

**Retorno:** `{ 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");
```

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

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

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

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

Valores aceitos em `expiration`: `24_HOURS`, `7_DAYS`, `90_DAYS`, `OFF`.
