Skip to main content

Documentation Index

Fetch the complete documentation index at: https://zapo.to/llms.txt

Use this file to discover all available pages before exploring further.

Profile

client.profile (WaProfileCoordinator) reads and writes profile fields for your account and looks them up for others.

Profile picture

import { readFile } from 'node:fs/promises'

// Read someone's picture (or your own)
const pic = await client.profile.getProfilePicture(jid)

// Set your own
await client.profile.setProfilePicture(await readFile('./avatar.jpg'))

// Remove it
await client.profile.deleteProfilePicture()

About / status text

const about = await client.profile.getStatus(jid)
await client.profile.setStatus('Available')

Batched lookups

const profiles = await client.profile.getProfiles([jidA, jidB])
const usernames = await client.profile.getUsernames([jidA, jidB])
const modes = await client.profile.getDisappearingMode([jidA, jidB])

Usernames

const mine = await client.profile.getOwnUsername()
const available = await client.profile.checkUsernameAvailability('myhandle')

await client.profile.setUsername({ username: 'myhandle' })
await client.profile.deleteUsername()

Privacy

client.privacy (WaPrivacyCoordinator) controls privacy categories and the blocklist.

Privacy settings

const settings = await client.privacy.getPrivacySettings()

// Update a single setting
await client.privacy.setPrivacySetting('last', 'contacts')
Setting names and values come from the WA_PRIVACY_* constants (last, online, profile, status, readreceipts, groupadd, …). See the JID & constants reference.

Blocklist

const { jids } = await client.privacy.getBlocklist()

await client.privacy.blockUser(jid)
await client.privacy.unblockUser(jid)

Disallowed lists

For settings scoped to a specific list of contacts (e.g. “share with everyone except…”):
const result = await client.privacy.getDisallowedList(category)

Business

client.business (WaBusinessCoordinator) reads business profiles and verified names, and manages your own business profile.
// Read business profiles (batched)
const profiles = await client.business.getBusinessProfile([jidA, jidB])

// Verified-name lookups
const name = await client.business.getVerifiedName(jid)
const names = await client.business.getVerifiedNames([jidA, jidB])

// Edit your own business profile
await client.business.editBusinessProfile({ /* WaEditBusinessProfileInput */ })

// Cover photo
await client.business.updateCoverPhoto(mediaSource)
await client.business.deleteCoverPhoto(coverId)

Chat settings

Per-chat settings — mute, pin, archive, read, lock, star, clear, delete — live on client.chat and sync across your devices. They have their own guide:

Managing chats

Mute, pin, archive, mark read, lock, star messages, clear, and delete chats.
Last modified on May 27, 2026