Pular para o conteúdo principal
POST
/
api
/
profile
/
privacy
/
:instance
Atualizar privacidade
curl --request POST \
  --url https://api.example.com/api/profile/privacy/:instance \
  --header 'Content-Type: <content-type>' \
  --header 'token: <token>' \
  --data '
{
  "visibility": {},
  "privacy": {},
  "permissions": {}
}
'

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.

Auth: TokenAccount ou TokenInstanceRate-limit: Global (100/min) • Idempotente: sim (setar o mesmo valor e no-op)

Descrição

Atualiza uma ou mais configurações de privacidade. Update parcial, apenas os campos enviados são alterados. Pelo menos uma das três subseções (visibility, privacy, permissions) precisa ser enviada. A resposta retorna as configurações completas após o update.

Exemplos

Tudo restritivo

Aplica um perfil de privacidade fechado em uma única chamada: esconde lastSeen, restringe status / foto a contatos, desliga read receipts e limita chamadas a contatos conhecidos. Cada subseção envia um campo, totalizando várias stanzas no WhatsApp.
curl -X POST "https://ryzeapi.cloud/api/profile/privacy/$Instance_Name" \
  -H "token: $Token_Instance" \
  -H "Content-Type: application/json" \
  -d '{
    "visibility": {
      "lastSeen": "none",
      "status": "contacts",
      "profile": "contacts",
      "online": "match_last_seen"
    },
    "privacy": {
      "readReceipts": "none"
    },
    "permissions": {
      "callAdd": "known",
      "groupAdd": "contacts"
    }
  }'

Só groupAdd

Atualiza somente permissions.groupAdd para contacts, impedindo que desconhecidos adicionem a conta a grupos. As demais configurações ficam inalteradas.
curl -X POST "https://ryzeapi.cloud/api/profile/privacy/$Instance_Name" \
  -H "token: $Token_Instance" \
  -H "Content-Type: application/json" \
  -d '{
    "permissions": { "groupAdd": "contacts" }
  }'

Desligar read receipts

Define privacy.readReceipts como none para parar de enviar o “duplo check azul”. A conta deixa de confirmar leitura, e também deixa de ver a confirmação dos outros (efeito recíproco do WhatsApp).
curl -X POST "https://ryzeapi.cloud/api/profile/privacy/$Instance_Name" \
  -H "token: $Token_Instance" \
  -H "Content-Type: application/json" \
  -d '{
    "privacy": { "readReceipts": "none" }
  }'

Apenas lastSeen e online

Esconde o lastSeen e amarra o online ao mesmo nível (match_last_seen). Resultado: ninguém vê quando a conta esteve online pela última vez nem se ela está ativa agora.
curl -X POST "https://ryzeapi.cloud/api/profile/privacy/$Instance_Name" \
  -H "token: $Token_Instance" \
  -H "Content-Type: application/json" \
  -d '{
    "visibility": {
      "lastSeen": "none",
      "online": "match_last_seen"
    }
  }'

Resposta de sucesso

Após aplicar os updates, o handler refaz um GetPrivacySettings e devolve o snapshot completo atual em settings, agrupado em visibility (lastSeen, status, profile, online), privacy (readReceipts) e permissions (callAdd, groupAdd). Use o response como fonte da verdade do estado pós-update, é o que o WhatsApp confirmou, não apenas o que você enviou.
200 OK
{
  "success": true,
  "message": "Privacy settings updated successfully",
  "settings": {
    "visibility": {
      "lastSeen": "none",
      "status": "contacts",
      "profile": "contacts",
      "online": "match_last_seen"
    },
    "privacy": {
      "readReceipts": "none"
    },
    "permissions": {
      "callAdd": "known",
      "groupAdd": "contacts"
    }
  }
}

Parâmetros de rota

instance
string
obrigatório
Nome da instância.

Headers

token
string
obrigatório
TokenAccount ou TokenInstance.
Content-Type
string
obrigatório
application/json

Request body

Cada subseção é opcional, mas pelo menos uma deve estar presente.
visibility
object
Subcampos: lastSeen, status, profile, online.
privacy
object
Subcampos: readReceipts.
permissions
object
Subcampos: callAdd, groupAdd.

Valores aceitos por campo

CampoValores
lastSeen / status / profileall / contacts / contact_blacklist / none
onlineall / match_last_seen
readReceiptsall / none
callAddall / known
groupAddall / contacts / contact_blacklist

Notas

Validação para antes do primeiro erro. Se você envia visibility.lastSeen = "X" (inválido) + visibility.status = "contacts" (válido), nada é aplicado, o handler aborta no primeiro campo inválido. Valide enums no cliente antes de chamar.
  • Operações não são transacionais: se o terceiro SetPrivacySetting falhar, os dois primeiros já foram aplicados, o cliente recebe 500 mas o estado parcial persiste. Verifique via GET após erros.
  • Cada campo dispara uma stanza separada, um update com 7 campos faz 7 chamadas + 1 GetPrivacySettings final = 8 stanzas. Pode somar latência.
  • O response sempre traz as configurações completas atuais (não só os campos alterados).

Erros

HTTPMensagem
400At least one privacy setting must be provided
400Invalid lastSeen value: <value>. Valid values: all, contacts, contact_blacklist, none
400Invalid status value: <value>. Valid values: all, contacts, contact_blacklist, none
400Invalid profile value: <value>. Valid values: all, contacts, contact_blacklist, none
400Invalid online value: <value>. Valid values: all, match_last_seen
400Invalid readReceipts value: <value>. Valid values: all, none
400Invalid callAdd value: <value>. Valid values: all, known
400Invalid groupAdd value: <value>. Valid values: all, contacts, contact_blacklist
400Instance is not connected to WhatsApp
500failed to update <field> privacy: <reason>
Envelope:
{
  "success": false,
  "error": { "message": "Invalid lastSeen value: everyone. Valid values: all, contacts, contact_blacklist, none" }
}