> ## 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 `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/go/instances-and-billing). Para sessão, veja [Sessão](/pt-BR/sdk/go/session).

## Chats

### `Chats.List(ctx, req)`

```go theme={null}
chats, err := client.Chats.List(ctx, vzaps.ChatListRequest{
	InstanceScopedRequest: vzaps.InstanceScopedRequest{
		InstanceID:    "VZ...",
		InstanceToken: "instance-token",
	},
	Page:     1,
	PageSize: 20,
})
```

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

### `Chats.Get(ctx, req)`

```go theme={null}
chat, err := client.Chats.Get(ctx, vzaps.ChatRequest{
	InstanceScopedRequest: vzaps.InstanceScopedRequest{
		InstanceID:    "VZ...",
		InstanceToken: "instance-token",
	},
	Phone: "5511999999999",
})
```

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

### `Chats.Archive(ctx, req)`

```go theme={null}
_, err := client.Chats.Archive(ctx, vzaps.ChatRequest{
	InstanceScopedRequest: vzaps.InstanceScopedRequest{
		InstanceID:    "VZ...",
		InstanceToken: "instance-token",
	},
	Phone: "5511999999999",
})
```

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

### `Chats.Unarchive(ctx, req)`

```go theme={null}
_, err := client.Chats.Unarchive(ctx, vzaps.ChatRequest{
	InstanceScopedRequest: vzaps.InstanceScopedRequest{
		InstanceID:    "VZ...",
		InstanceToken: "instance-token",
	},
	Phone: "5511999999999",
})
```

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

### `Chats.Mute(ctx, req)`

```go theme={null}
_, err := client.Chats.Mute(ctx, vzaps.ChatMuteRequest{
	ChatRequest: vzaps.ChatRequest{
		InstanceScopedRequest: vzaps.InstanceScopedRequest{
			InstanceID:    "VZ...",
			InstanceToken: "instance-token",
		},
		Phone: "5511999999999",
	},
	DurationSeconds: 3600,
})
```

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

### `Chats.Unmute(ctx, req)`

```go theme={null}
_, err := client.Chats.Unmute(ctx, vzaps.ChatRequest{
	InstanceScopedRequest: vzaps.InstanceScopedRequest{
		InstanceID:    "VZ...",
		InstanceToken: "instance-token",
	},
	Phone: "5511999999999",
})
```

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

### `Chats.Pin(ctx, req)`

```go theme={null}
_, err := client.Chats.Pin(ctx, vzaps.ChatRequest{
	InstanceScopedRequest: vzaps.InstanceScopedRequest{
		InstanceID:    "VZ...",
		InstanceToken: "instance-token",
	},
	Phone: "5511999999999",
})
```

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

### `Chats.Unpin(ctx, req)`

```go theme={null}
_, err := client.Chats.Unpin(ctx, vzaps.ChatRequest{
	InstanceScopedRequest: vzaps.InstanceScopedRequest{
		InstanceID:    "VZ...",
		InstanceToken: "instance-token",
	},
	Phone: "5511999999999",
})
```

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

### `Chats.Read(ctx, req)`

```go theme={null}
_, err := client.Chats.Read(ctx, vzaps.ChatRequest{
	InstanceScopedRequest: vzaps.InstanceScopedRequest{
		InstanceID:    "VZ...",
		InstanceToken: "instance-token",
	},
	Phone: "5511999999999",
})
```

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

### `Chats.Unread(ctx, req)`

```go theme={null}
_, err := client.Chats.Unread(ctx, vzaps.ChatRequest{
	InstanceScopedRequest: vzaps.InstanceScopedRequest{
		InstanceID:    "VZ...",
		InstanceToken: "instance-token",
	},
	Phone: "5511999999999",
})
```

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

### `Chats.Clear(ctx, req)`

```go theme={null}
_, err := client.Chats.Clear(ctx, vzaps.ChatClearRequest{
	ChatRequest: vzaps.ChatRequest{
		InstanceScopedRequest: vzaps.InstanceScopedRequest{
			InstanceID:    "VZ...",
			InstanceToken: "instance-token",
		},
		Phone: "5511999999999",
	},
	DeleteMedia: false,
})
```

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

### `Chats.Delete(ctx, req)`

```go theme={null}
_, err := client.Chats.Delete(ctx, vzaps.ChatDeleteRequest{
	ChatRequest: vzaps.ChatRequest{
		InstanceScopedRequest: vzaps.InstanceScopedRequest{
			InstanceID:    "VZ...",
			InstanceToken: "instance-token",
		},
		Phone: "5511999999999",
	},
	DeleteMedia: false,
})
```

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

### `Chats.SetExpiration(ctx, req)`

```go theme={null}
_, err := client.Chats.SetExpiration(ctx, vzaps.ChatExpirationRequest{
	ChatRequest: vzaps.ChatRequest{
		InstanceScopedRequest: vzaps.InstanceScopedRequest{
			InstanceID:    "VZ...",
			InstanceToken: "instance-token",
		},
		Phone: "5511999999999",
	},
	Expiration: "7_DAYS",
})
```

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

Valores aceitos para `Expiration`: `24_HOURS`, `7_DAYS`, `90_DAYS`, `OFF`.
