> ## 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 `chats` to list conversations and apply actions such as archive, mute, pin, and expiration.

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

## Chats

### `client.Chats.ListAsync<TResponse>(request)`

```csharp theme={null}
await client.Chats.ListAsync<object>(new ChatListRequest { InstanceId = "VZ...", InstanceToken = "instance-token", Page = 1, PageSize = 20 });
```

**Return:** page `{ Page, PageSize, Total, TotalPages, Content[] }` with chat metadata per item.

### `client.Chats.GetAsync<TResponse>(request)`

```csharp theme={null}
await client.Chats.GetAsync<object>(new ChatRequest { InstanceId = "VZ...", InstanceToken = "instance-token", Phone = "5511999999999" });
```

**Return:** `InstanceChatMetadata` — `Phone`, `Jid`, `Name`, flags (`archived`, `pinned`, `muted`, etc.) and last message when available.

### `client.Chats.ArchiveAsync<TResponse>(request)`

```csharp theme={null}
await client.Chats.ArchiveAsync<object>(new ChatRequest { InstanceId = "VZ...", InstanceToken = "instance-token", Phone = "5511999999999" });
```

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

### `client.Chats.UnarchiveAsync<TResponse>(request)`

```csharp theme={null}
await client.Chats.UnarchiveAsync<object>(new ChatRequest { InstanceId = "VZ...", InstanceToken = "instance-token", Phone = "5511999999999" });
```

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

### `client.Chats.MuteAsync<TResponse>(request)`

```csharp theme={null}
await client.Chats.MuteAsync<object>(new ChatMuteRequest { InstanceId = "VZ...", InstanceToken = "instance-token", Phone = "5511999999999", DurationSeconds = 3600 });
```

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

### `client.Chats.UnmuteAsync<TResponse>(request)`

```csharp theme={null}
await client.Chats.UnmuteAsync<object>(new ChatRequest { InstanceId = "VZ...", InstanceToken = "instance-token", Phone = "5511999999999" });
```

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

### `client.Chats.PinAsync<TResponse>(request)`

```csharp theme={null}
await client.Chats.PinAsync<object>(new ChatRequest { InstanceId = "VZ...", InstanceToken = "instance-token", Phone = "5511999999999" });
```

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

### `client.Chats.UnpinAsync<TResponse>(request)`

```csharp theme={null}
await client.Chats.UnpinAsync<object>(new ChatRequest { InstanceId = "VZ...", InstanceToken = "instance-token", Phone = "5511999999999" });
```

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

### `client.Chats.ReadAsync<TResponse>(request)`

```csharp theme={null}
await client.Chats.ReadAsync<object>(new ChatRequest { InstanceId = "VZ...", InstanceToken = "instance-token", Phone = "5511999999999" });
```

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

### `client.Chats.UnreadAsync<TResponse>(request)`

```csharp theme={null}
await client.Chats.UnreadAsync<object>(new ChatRequest { InstanceId = "VZ...", InstanceToken = "instance-token", Phone = "5511999999999" });
```

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

### `client.Chats.ClearAsync<TResponse>(request)`

```csharp theme={null}
await client.Chats.ClearAsync<object>(new ChatClearRequest { InstanceId = "VZ...", InstanceToken = "instance-token", Phone = "5511999999999", DeleteMedia = false });
```

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

### `client.Chats.DeleteAsync<TResponse>(request)`

```csharp theme={null}
await client.Chats.DeleteAsync<object>(new ChatDeleteRequest { InstanceId = "VZ...", InstanceToken = "instance-token", Phone = "5511999999999", DeleteMedia = false });
```

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

### `client.Chats.SetExpirationAsync<TResponse>(request)`

```csharp theme={null}
await client.Chats.SetExpirationAsync<object>(new ChatExpirationRequest
{
    InstanceId = "VZ...",
    InstanceToken = "instance-token",
    Phone = "5511999999999",
    Expiration = "7_DAYS",
});
```

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