Skip to main content
POST
Update privacy
Auth: TokenAccount or TokenInstanceRate limit: Global (100/min) • Idempotent: yes (setting the same value is a no-op)

Description

Updates one or more privacy settings. Partial update, only the fields you send are changed. At least one of the three subsections (visibility, privacy, permissions) must be sent. The response returns the complete settings after the update.

Examples

Fully restrictive

Applies a closed-down privacy profile in a single call: hides lastSeen, restricts status / picture to contacts, turns off read receipts, and limits calls to known contacts. Each subsection sends one field, totaling several stanzas on WhatsApp.

Only groupAdd

Updates only permissions.groupAdd to contacts, preventing strangers from adding the account to groups. All other settings remain unchanged.

Disable read receipts

Sets privacy.readReceipts to none to stop sending the “blue double check”. The account stops confirming reads, and also stops seeing other people’s confirmations (WhatsApp’s reciprocal effect).

Only lastSeen and online

Hides lastSeen and ties online to the same level (match_last_seen). Result: nobody sees when the account was last online, nor whether it’s active right now.

Success response

After applying the updates, the handler re-runs GetPrivacySettings and returns the complete current snapshot in settings, grouped into visibility (lastSeen, status, profile, online), privacy (readReceipts), and permissions (callAdd, groupAdd). Use the response as the source of truth for the post-update state, it’s what WhatsApp confirmed, not just what you sent.
200 OK

Path parameters

string
required
Instance name.

Headers

string
required
TokenAccount or TokenInstance.
string
required
application/json

Request body

Each subsection is optional, but at least one must be present.
object
Subfields: lastSeen, status, profile, online.
object
Subfields: readReceipts.
object
Subfields: callAdd, groupAdd.

Accepted values per field

Notes

Validation stops at the first error. If you send visibility.lastSeen = "X" (invalid) + visibility.status = "contacts" (valid), nothing is applied, the handler aborts on the first invalid field. Validate enums on the client before calling.
  • Operations are not transactional: if the third SetPrivacySetting fails, the first two have already been applied, the client gets a 500 but the partial state persists. Verify via GET after errors.
  • Each field triggers a separate stanza, an update with 7 fields makes 7 calls + 1 final GetPrivacySettings = 8 stanzas. Latency can add up.
  • The response always returns the complete current settings (not just the changed fields).

Errors

Envelope: