> ## 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/go/instances-and-billing). For session, see [Session](/en/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,
})
```

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

### `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",
})
```

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

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

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

**Return:** `{ 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",
})
```

**Return:** `{ 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,
})
```

**Return:** `{ 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",
})
```

**Return:** `{ 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",
})
```

**Return:** `{ 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",
})
```

**Return:** `{ 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",
})
```

**Return:** `{ 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",
})
```

**Return:** `{ 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,
})
```

**Return:** `{ 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,
})
```

**Return:** `{ 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",
})
```

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

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