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

# Usuários e contatos

> Consultar usuários, avatar e gerenciar contatos da instância

Use `users` e `contacts` para consultar perfis no WhatsApp e gerenciar contatos da instância.

Para instâncias, veja [Instâncias e billing](/pt-BR/sdk/go/instances-and-billing).

## Contatos

### `Contacts.List(ctx, instanceID, options)`

```go theme={null}
contacts, err := client.Contacts.List(ctx, "VZ...", vzaps.InstanceOptions{
	InstanceToken: "instance-token",
})
```

**Retorno:** envelope `{ code, success, data }` com `data[]` de contatos (`jid`, `Name`, `IsInWhatsapp`, etc.).

### `Contacts.Add(ctx, req)`

```go theme={null}
_, err := client.Contacts.Add(ctx, vzaps.ContactAddRequest{
	InstanceScopedRequest: vzaps.InstanceScopedRequest{
		InstanceID:    "VZ...",
		InstanceToken: "instance-token",
	},
	Phone:     "5511888888888",
	FirstName: "Maria",
	FullName:  "Maria Silva",
})
```

**Retorno:** envelope `{ code, success, data }` com mensagem de confirmacao (ex.: `"Contact added"`).

## Usuários

### `Users.Info(ctx, req)`

```go theme={null}
info, err := client.Users.Info(ctx, vzaps.UserPhonesRequest{
	InstanceScopedRequest: vzaps.InstanceScopedRequest{
		InstanceID:    "VZ...",
		InstanceToken: "instance-token",
	},
	Phone: "5511999999999",
})
```

**Retorno:** envelope `{ code, success, data }` com perfil do usuario (`VerifiedName`, `Status`, `PictureId`, etc.).

### `Users.Check(ctx, req)`

```go theme={null}
exists, err := client.Users.Check(ctx, vzaps.UserPhonesRequest{
	InstanceScopedRequest: vzaps.InstanceScopedRequest{
		InstanceID:    "VZ...",
		InstanceToken: "instance-token",
	},
	Phone: "5511999999999",
})
```

**Retorno:** envelope `{ code, success, data.users[] }` com `phone`, `exists`, `jid` por numero consultado.

### `Users.Avatar(ctx, req)`

```go theme={null}
avatar, err := client.Users.Avatar(ctx, vzaps.UserAvatarRequest{
	InstanceScopedRequest: vzaps.InstanceScopedRequest{
		InstanceID:    "VZ...",
		InstanceToken: "instance-token",
	},
	Phone: "5511999999999",
})
```

**Retorno:** envelope `{ code, success, data }` com `base64` e `mimetype` da foto.

### `Users.Contacts(ctx, instanceID, options)`

```go theme={null}
contacts, err := client.Users.Contacts(ctx, "VZ...", vzaps.InstanceOptions{
	InstanceToken: "instance-token",
})
```

**Retorno:** envelope `{ code, success, data }` — mapa JID → contato (`FirstName`, `FullName`, `PushName`, etc.).
