Client
Source: Client.
Starting point for interacting with the WhatsApp Web API
Property
Methods
- acceptGroupV4Invite(inviteInfo)
- acceptInvite(inviteCode)
- addOrRemoveLabels(labelIds, chatIds)
- approveGroupMembershipRequests(groupId, options)
- archiveChat()
- createGroup(title, participants, options)
- deleteProfilePicture()
- destroy()
- getBlockedContacts()
- getChatById(chatId)
- getChatLabels(chatId)
- getChats()
- getChatsByLabelId(labelId)
- getCommonGroups(contactId)
- getContactById(contactId)
- getContacts()
- getCountryCode(number)
- getFormattedNumber(number)
- getGroupMembershipRequests(groupId)
- getInviteInfo(inviteCode)
- getLabelById(labelId)
- getLabels()
- getNumberId(number)
- getProfilePicUrl(contactId)
- getState()
- getWWebVersion()
- initialize()
- isRegisteredUser(id)
- logout()
- markChatUnread(chatId)
- muteChat(chatId, unmuteDate)
- pinChat()
- rejectGroupMembershipRequests(groupId, options)
- resetState()
- searchMessages(query[, options])
- sendMessage(chatId, content[, options])
- sendPresenceAvailable()
- sendPresenceUnavailable()
- sendSeen(chatId)
- setDisplayName(displayName)
- setProfilePicture(media)
- setStatus(status)
- unarchiveChat()
- unmuteChat(chatId)
- unpinChat()
Events
new Client(options)
Parameters
| Name | Type | Optional | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
options |
|
|
Client options Values in
|
- Extends
- EventEmitter
- Fires
- Client#event:qr
- Client#event:authenticated
- Client#event:auth_failure
- Client#event:ready
- Client#event:message
- Client#event:message_ack
- Client#event:message_create
- Client#event:message_revoke_me
- Client#event:message_revoke_everyone
- Client#event:media_uploaded
- Client#event:group_join
- Client#event:group_leave
- Client#event:group_update
- Client#event:disconnected
- Client#event:change_state
- Client#event:contact_changed
- Client#event:group_admin_changed
- Client#event:group_membership_request
Property
info ClientInfo
Current connection information
Methods
acceptGroupV4Invite(inviteInfo) → Promise containing Object
Accepts a private invitation to join a group
Parameter
| Name | Type | Optional | Description |
|---|---|---|---|
|
inviteInfo |
object |
|
Invite V4 Info |
- Returns
-
Promise containing Object
acceptInvite(inviteCode) → Promise containing string
Accepts an invitation to join a group
Parameter
| Name | Type | Optional | Description |
|---|---|---|---|
|
inviteCode |
string |
|
Invitation code |
- Returns
-
Promise containing stringId of the joined Chat
addOrRemoveLabels(labelIds, chatIds) → Promise containing void
Change labels in chats
Parameters
| Name | Type | Optional | Description |
|---|---|---|---|
|
labelIds |
Array of (number or string) |
|
|
|
chatIds |
Array of string |
|
- Returns
-
Promise containing void
approveGroupMembershipRequests(groupId, options) → Promise containing Array of MembershipRequestActionResult
Approves membership requests if any
Parameters
| Name | Type | Optional | Description |
|---|---|---|---|
|
groupId |
string |
|
The group ID to get the membership request for |
|
options |
|
Options for performing a membership request action |
- Returns
-
Promise containing Array of MembershipRequestActionResultReturns an array of requester IDs whose membership requests were approved and an error for each requester, if any occurred during the operation. If there are no requests, an empty array will be returned
archiveChat() → boolean
Enables and returns the archive state of the Chat
- Returns
-
boolean
createGroup(title, participants, options) → Promise containing (CreateGroupResult or string)
Creates a new group
Parameters
| Name | Type | Optional | Description |
|---|---|---|---|
|
title |
string |
|
Group title |
|
participants |
(string, Contact, Array of (Contact or string), or undefined) |
|
A single Contact object or an ID as a string or an array of Contact objects or contact IDs to add to the group |
|
options |
|
An object that handles options for group creation |
- Returns
-
Promise containing (CreateGroupResult or string)Object with resulting data or an error message as a string
deleteProfilePicture() → Promise containing boolean
Deletes the current user's profile picture.
- Returns
-
Promise containing booleanReturns true if the picture was properly deleted.
destroy()
Closes the client
getBlockedContacts() → Promise containing Array of Contact
Gets all blocked contacts by host account
- Returns
-
Promise containing Array of Contact
getChatById(chatId) → Promise containing Chat
Get chat instance by ID
Parameter
| Name | Type | Optional | Description |
|---|---|---|---|
|
chatId |
string |
|
- Returns
-
Promise containing Chat
getChatLabels(chatId) → Promise containing Array of Label
Get all Labels assigned to a chat
Parameter
| Name | Type | Optional | Description |
|---|---|---|---|
|
chatId |
string |
|
- Returns
-
Promise containing Array of Label
getChats() → Promise containing Array of Chat
Get all current chat instances
- Returns
-
Promise containing Array of Chat
getChatsByLabelId(labelId) → Promise containing Array of Chat
Get all Chats for a specific Label
Parameter
| Name | Type | Optional | Description |
|---|---|---|---|
|
labelId |
string |
|
- Returns
-
Promise containing Array of Chat
getCommonGroups(contactId) → Promise containing Array of WAWebJS.ChatId
Gets the Contact's common groups with you. Returns empty array if you don't have any common group.
Parameter
| Name | Type | Optional | Description |
|---|---|---|---|
|
contactId |
string |
|
the whatsapp user's ID (_serialized format) |
- Returns
-
Promise containing Array of WAWebJS.ChatId
getContactById(contactId) → Promise containing Contact
Get contact instance by ID
Parameter
| Name | Type | Optional | Description |
|---|---|---|---|
|
contactId |
string |
|
- Returns
-
Promise containing Contact
getContacts() → Promise containing Array of Contact
Get all current contact instances
- Returns
-
Promise containing Array of Contact
getCountryCode(number) → Promise containing string
Get the country code of a WhatsApp ID.
Parameter
| Name | Type | Optional | Description |
|---|---|---|---|
|
number |
string |
|
Number or ID |
- Returns
-
Promise containing string
getFormattedNumber(number) → Promise containing string
Get the formatted number of a WhatsApp ID.
Parameter
| Name | Type | Optional | Description |
|---|---|---|---|
|
number |
string |
|
Number or ID |
- Returns
-
Promise containing string
getGroupMembershipRequests(groupId) → Promise containing Array of GroupMembershipRequest
Gets an array of membership requests
Parameter
| Name | Type | Optional | Description |
|---|---|---|---|
|
groupId |
string |
|
The ID of a group to get membership requests for |
- Returns
-
Promise containing Array of GroupMembershipRequestAn array of membership requests
getInviteInfo(inviteCode) → Promise containing object
Returns an object with information about the invite code's group
Parameter
| Name | Type | Optional | Description |
|---|---|---|---|
|
inviteCode |
string |
|
- Returns
-
Promise containing objectInvite information
getLabelById(labelId) → Promise containing Label
Get Label instance by ID
Parameter
| Name | Type | Optional | Description |
|---|---|---|---|
|
labelId |
string |
|
- Returns
-
Promise containing Label
getLabels() → Promise containing Array of Label
Get all current Labels
- Returns
-
Promise containing Array of Label
getNumberId(number) → Promise containing (Object or null)
Get the registered WhatsApp ID for a number. Will return null if the number is not registered on WhatsApp.
Parameter
| Name | Type | Optional | Description |
|---|---|---|---|
|
number |
string |
|
Number or ID ("@c.us" will be automatically appended if not specified) |
- Returns
-
Promise containing (Object or null)
getProfilePicUrl(contactId) → Promise containing string
Returns the contact ID's profile picture URL, if privacy settings allow it
Parameter
| Name | Type | Optional | Description |
|---|---|---|---|
|
contactId |
string |
|
the whatsapp user's ID |
- Returns
-
Promise containing string
getState() → WAState
Gets the current connection state for the client
- Returns
getWWebVersion() → Promise containing string
Returns the version of WhatsApp Web currently being run
- Returns
-
Promise containing string
initialize()
Sets up events and requirements, kicks off authentication request
isRegisteredUser(id) → Promise containing Boolean
Check if a given ID is registered in whatsapp
Parameter
| Name | Type | Optional | Description |
|---|---|---|---|
|
id |
string |
|
the whatsapp user's ID |
- Returns
-
Promise containing Boolean
logout()
Logs out the client, closing the current session
markChatUnread(chatId)
Mark the Chat as unread
Parameter
| Name | Type | Optional | Description |
|---|---|---|---|
|
chatId |
string |
|
ID of the chat that will be marked as unread |
muteChat(chatId, unmuteDate)
Mutes this chat forever, unless a date is specified
Parameters
| Name | Type | Optional | Description |
|---|---|---|---|
|
chatId |
string |
|
ID of the chat that will be muted |
|
unmuteDate |
Date |
|
Date when the chat will be unmuted, leave as is to mute forever Value can be null. |
pinChat() → Promise containing boolean
Pins the Chat
- Returns
-
Promise containing booleanNew pin state. Could be false if the max number of pinned chats was reached.
rejectGroupMembershipRequests(groupId, options) → Promise containing Array of MembershipRequestActionResult
Rejects membership requests if any
Parameters
| Name | Type | Optional | Description |
|---|---|---|---|
|
groupId |
string |
|
The group ID to get the membership request for |
|
options |
|
Options for performing a membership request action |
- Returns
-
Promise containing Array of MembershipRequestActionResultReturns an array of requester IDs whose membership requests were rejected and an error for each requester, if any occurred during the operation. If there are no requests, an empty array will be returned
resetState()
Force reset of connection state for the client
searchMessages(query[, options]) → Promise containing Array of Message
Searches for messages
Parameters
| Name | Type | Optional | Description | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
query |
string |
|
|||||||||||||||||
|
options |
Object |
Yes |
Values in
|
- Returns
-
Promise containing Array of Message
sendMessage(chatId, content[, options]) → Promise containing Message
Send a message to a specific chatId
Parameters
| Name | Type | Optional | Description |
|---|---|---|---|
|
chatId |
string |
|
|
|
content |
(string, MessageMedia, Location, Poll, Contact, Array of Contact, Buttons, or List) |
|
|
|
options |
Yes |
Options used when sending the message |
- Returns
-
Promise containing MessageMessage that was just sent
sendPresenceAvailable()
Marks the client as online
sendPresenceUnavailable()
Marks the client as unavailable
sendSeen(chatId) → Promise containing boolean
Mark as seen for the Chat
Parameter
| Name | Type | Optional | Description |
|---|---|---|---|
|
chatId |
string |
|
- Returns
-
Promise containing booleanresult
setDisplayName(displayName) → Promise containing Boolean
Sets the current user's display name. This is the name shown to WhatsApp users that have not added you as a contact beside your number in groups and in your profile.
Parameter
| Name | Type | Optional | Description |
|---|---|---|---|
|
displayName |
string |
|
New display name |
- Returns
-
Promise containing Boolean
setProfilePicture(media) → Promise containing boolean
Sets the current user's profile picture.
Parameter
| Name | Type | Optional | Description |
|---|---|---|---|
|
media |
|
- Returns
-
Promise containing booleanReturns true if the picture was properly updated.
setStatus(status)
Sets the current user's status message
Parameter
| Name | Type | Optional | Description |
|---|---|---|---|
|
status |
string |
|
New status message |
unarchiveChat() → boolean
Changes and returns the archive state of the Chat
- Returns
-
boolean
unmuteChat(chatId)
Unmutes the Chat
Parameter
| Name | Type | Optional | Description |
|---|---|---|---|
|
chatId |
string |
|
ID of the chat that will be unmuted |
unpinChat() → Promise containing boolean
Unpins the Chat
- Returns
-
Promise containing booleanNew pin state
Events
auth_failure
Emitted when there has been an error while trying to restore an existing session
Parameter
| Name | Type | Optional | Description |
|---|---|---|---|
|
message |
string |
|
authenticated
Emitted when authentication is successful
change_battery
Emitted when the battery percentage for the attached device changes. Will not be sent if using multi-device.
Parameters
| Name | Type | Optional | Description | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
batteryInfo |
object |
|
Values in
|
- Deprecated
change_state
Emitted when the connection state changes
Parameter
| Name | Type | Optional | Description |
|---|---|---|---|
|
state |
|
the new connection state |
chat_archived
Emitted when a chat is archived/unarchived
Parameters
| Name | Type | Optional | Description |
|---|---|---|---|
|
chat |
|
||
|
currState |
boolean |
|
|
|
prevState |
boolean |
|
chat_removed
Emitted when a chat is removed
Parameter
| Name | Type | Optional | Description |
|---|---|---|---|
|
chat |
|
contact_changed
Emitted when a contact or a group participant changes their phone number.
Parameters
| Name | Type | Optional | Description |
|---|---|---|---|
|
message |
|
Message with more information about the event. |
|
|
oldId |
String |
|
The user's id (an old one) who changed their phone number and who triggered the notification. |
|
newId |
String |
|
The user's new id after the change. |
|
isContact |
Boolean |
|
Indicates if a contact or a group participant changed their phone number. |
disconnected
Emitted when the client has been disconnected
Parameter
| Name | Type | Optional | Description |
|---|---|---|---|
|
reason |
(WAState or "NAVIGATION") |
|
reason that caused the disconnect |
group_admin_changed
Emitted when a current user is promoted to an admin or demoted to a regular user.
Parameter
| Name | Type | Optional | Description |
|---|---|---|---|
|
notification |
|
GroupNotification with more information about the action |
group_join
Emitted when a user joins the chat via invite link or is added by an admin.
Parameter
| Name | Type | Optional | Description |
|---|---|---|---|
|
notification |
|
GroupNotification with more information about the action |
group_leave
Emitted when a user leaves the chat or is removed by an admin.
Parameter
| Name | Type | Optional | Description |
|---|---|---|---|
|
notification |
|
GroupNotification with more information about the action |
group_membership_request
Emitted when some user requested to join the group that has the membership approval mode turned on
Parameters
| Name | Type | Optional | Description | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
notification |
|
GroupNotification with more information about the action Values in
|
group_update
Emitted when group settings are updated, such as subject, description or picture.
Parameter
| Name | Type | Optional | Description |
|---|---|---|---|
|
notification |
|
GroupNotification with more information about the action |
incoming_call
Emitted when a call is received
Parameters
| Name | Type | Optional | Description | ||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
call |
object |
|
Values in
|
media_uploaded
Emitted when media has been uploaded for a message sent by the client.
Parameter
| Name | Type | Optional | Description |
|---|---|---|---|
|
message |
|
The message with media that was uploaded |
message
Emitted when a new message is received.
Parameter
| Name | Type | Optional | Description |
|---|---|---|---|
|
message |
|
The message that was received |
message_ack
Emitted when an ack event occurrs on message type.
Parameters
| Name | Type | Optional | Description |
|---|---|---|---|
|
message |
|
The message that was affected |
|
|
ack |
|
The new ACK value |
message_create
Emitted when a new message is created, which may include the current user's own messages.
Parameter
| Name | Type | Optional | Description |
|---|---|---|---|
|
message |
|
The message that was created |
message_edit
Emitted when messages are edited
Parameters
| Name | Type | Optional | Description |
|---|---|---|---|
|
message |
|
||
|
newBody |
string |
|
|
|
prevBody |
string |
|
message_reaction
Emitted when a reaction is sent, received, updated or removed
Parameters
| Name | Type | Optional | Description | ||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
reaction |
object |
|
Values in
|
message_revoke_everyone
Emitted when a message is deleted for everyone in the chat.
Parameters
| Name | Type | Optional | Description |
|---|---|---|---|
|
message |
|
The message that was revoked, in its current state. It will not contain the original message's data. |
|
|
revoked_msg |
|
The message that was revoked, before it was revoked. It will contain the message's original data. Note that due to the way this data is captured, it may be possible that this param will be undefined. Value can be null. |
message_revoke_me
Emitted when a message is deleted by the current user.
Parameter
| Name | Type | Optional | Description |
|---|---|---|---|
|
message |
|
The message that was revoked |
qr
Emitted when a QR code is received
Parameter
| Name | Type | Optional | Description |
|---|---|---|---|
|
qr |
string |
|
QR Code |
ready
Emitted when the client has initialized and is ready to receive messages.