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

# Check privacy

> Read the account's current privacy settings

**Auth:** `TokenAccount` or `TokenInstance` • **Rate limit:** `Global` (100/min) • **Idempotent:** yes (read-only)

## Description

Returns **all** privacy settings of the connected account, grouped into three sub-objects: `visibility`, `privacy`, and `permissions`.

## Examples

### Default

Reads the complete privacy snapshot of the account, grouped into `visibility`, `privacy`, and `permissions`. No query parameters or body, a simple read to check the current state before calling the corresponding `POST`.

<CodeGroup>
  ```bash cURL theme={null}
  curl -X GET "https://ryzeapi.cloud/api/profile/getPrivacy/$Instance_Name" \
    -H "token: $Token_Instance"
  ```

  ```javascript JavaScript theme={null}
  await fetch(`https://ryzeapi.cloud/api/profile/getPrivacy/${process.env.Instance_Name}`, {
    method: "GET",
    headers: {
      "token": process.env.Token_Instance
    }
  });
  ```

  ```python Python theme={null}
  import os, requests

  requests.get(
      f"https://ryzeapi.cloud/api/profile/getPrivacy/{os.environ['Instance_Name']}",
      headers={
          "token": os.environ["Token_Instance"]
      }
  )
  ```

  ```go Go theme={null}
  package main

  import (
      "net/http"
      "os"
  )

  func main() {
      req, _ := http.NewRequest("GET", "https://ryzeapi.cloud/api/profile/getPrivacy/"+os.Getenv("Instance_Name"), nil)
      req.Header.Set("token", os.Getenv("Token_Instance"))
      http.DefaultClient.Do(req)
  }
  ```
</CodeGroup>

## Success response

Returns the complete privacy snapshot in `settings`, grouped into three sub-objects: `visibility` (`lastSeen`, `status`, `profile`, `online`), `privacy` (`readReceipts`), and `permissions` (`callAdd`, `groupAdd`). Values come from the local store synced via appstate, changes made in the official app may take a few seconds to reflect here.

```json 200 OK theme={null}
{
  "success": true,
  "message": "Privacy settings retrieved successfully",
  "settings": {
    "visibility": {
      "lastSeen": "contacts",
      "status": "all",
      "profile": "contacts",
      "online": "match_last_seen"
    },
    "privacy": {
      "readReceipts": "all"
    },
    "permissions": {
      "callAdd": "all",
      "groupAdd": "contacts"
    }
  }
}
```

## Path parameters

<ParamField path="instance" type="string" required>
  Instance name.
</ParamField>

## Headers

<ParamField header="token" type="string" required>
  `TokenAccount` or `TokenInstance`.
</ParamField>

## Accepted values

| 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`          |

## Notes

<Note>
  * Values come primarily from the local whatsmeow store, synced via appstate. Changes made in the official app appear here with a few seconds of latency.
  * `online: match_last_seen` means your online presence follows the `lastSeen` rule, if `lastSeen=none`, no one sees you online either.
  * Defaults for newly created accounts: everything set to `all`.
</Note>

## Errors

| HTTP | Message                                 |
| ---- | --------------------------------------- |
| 400  | `Instance is not connected to WhatsApp` |
| 404  | `Instance not found`                    |

Envelope:

```json theme={null}
{
  "success": false,
  "error": { "message": "Instance is not connected to WhatsApp" }
}
```
