> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ryzeapi.cloud/llms.txt
> Use this file to discover all available pages before exploring further.

# Overview

> Manage your own profile (picture, name, status), look up third parties, and configure privacy

**Auth:** `TokenAccount` or `TokenInstance` on every route. Each call validates instance ownership.

This section covers the `/api/profile/*` routes for updating your own profile, looking up third-party profiles, and reading or updating WhatsApp privacy settings.

## Endpoints

| Method | Path                                | Function                                                              |
| ------ | ----------------------------------- | --------------------------------------------------------------------- |
| POST   | `/api/profile/account/:instance`    | [Update picture / name / status](/en/api/profile/update-account)      |
| GET    | `/api/profile/getAccount/:instance` | [Get your own or a third-party profile](/en/api/profile/read-account) |
| GET    | `/api/profile/getPrivacy/:instance` | [Get privacy settings](/en/api/profile/read-privacy)                  |
| GET    | `/api/profile/privacy/:instance`    | [Alias of `/getPrivacy`](/en/api/profile/read-privacy-alias)          |
| POST   | `/api/profile/privacy/:instance`    | [Update privacy](/en/api/profile/update-privacy)                      |

## Privacy structure

The API groups settings into three sub-objects: `visibility`, `privacy`, and `permissions`.

```json theme={null}
{
  "visibility": {
    "lastSeen": "contacts",
    "status": "all",
    "profile": "contacts",
    "online": "match_last_seen"
  },
  "privacy": {
    "readReceipts": "all"
  },
  "permissions": {
    "callAdd": "all",
    "groupAdd": "contacts"
  }
}
```

### Accepted values per field

| Field                             | Values                                            |
| --------------------------------- | ------------------------------------------------- |
| `lastSeen` / `status` / `profile` | `all` / `contacts` / `contact_blacklist` / `none` |
| `online`                          | `all` / `match_last_seen`                         |
| `readReceipts`                    | `all` / `none`                                    |
| `callAdd`                         | `all` / `known`                                   |
| `groupAdd`                        | `all` / `contacts` / `contact_blacklist`          |

## `AccountProfileData` model

Response from [`GET /getAccount`](/en/api/profile/read-account):

```json theme={null}
{
  "profilePicture": "https://pps.whatsapp.net/...",
  "profileName": "João Silva",
  "profileStatus": "Disponivel",
  "phoneNumber": "5511999999999",
  "jid": "5511999999999@s.whatsapp.net",
  "lid": "199789077627112@lid"
}
```

## Error envelope

```json theme={null}
{
  "success": false,
  "error": { "message": "At least one field must be provided (profilePicture, profileName, or profileStatus)" }
}
```

## Error reference (summary)

| Category   | Message                                                                               |
| ---------- | ------------------------------------------------------------------------------------- |
| Validation | `At least one field must be provided (profilePicture, profileName, or profileStatus)` |
| Validation | `At least one privacy setting must be provided`                                       |
| Validation | `Invalid <field> value: <value>. Valid values: ...`                                   |
| State      | `Instance is not connected to WhatsApp`                                               |
| Number     | `Number not found or not registered on WhatsApp`                                      |
| Number     | `invalid LID format`                                                                  |
| Failure    | `failed to update <field> privacy: <reason>`                                          |

## Next

<CardGroup cols={2}>
  <Card title="Update account" icon="user-pen" href="/en/api/profile/update-account">
    Change picture, display name, or status.
  </Card>

  <Card title="Update privacy" icon="shield" href="/en/api/profile/update-privacy">
    Adjust who sees what.
  </Card>
</CardGroup>
