W2A
Documentation engine

Method reference

Every method exposed by POST /connections/request, with engine availability. Toggle the engine switcher at the top to scope which columns you care about.

Available Partial / different shape Blocked / unavailable N/A (engine-specific method)

Messages

What it doesBaileyshypermeow (whatsmeow)Notes
Send a text messagesendMessageSendMessageDifferent wire shape: `{ text: "..." }` vs `{ conversation: "..." }` (waE2E.Message protojson).
Send a reply (quote a message)sendMessageSendMessageBaileys uses third positional arg `{ quoted: ... }`. Hypermeow embeds `{ contextInfo: { quotedMessage, stanzaId, participant } }` inside extendedTextMessage.
Send a mention (@user)sendMessageSendMessageBaileys: third arg `{ mentions: [...] }`. Hypermeow: `contextInfo.mentionedJid`.
Send a locationsendMessageSendMessageHypermeow uses `locationMessage { degreesLatitude, degreesLongitude, ... }`.
Send a contact (vCard)sendMessageSendMessageHypermeow uses `contactMessage { displayName, vcard }`.
Send a reactionsendMessageSendMessageHypermeow uses `reactionMessage { text, key }`.
Send a buttons messagesendMessageSendMessage (no buttonsMessage in waE2E)No buttonsMessage field in waE2E.Message. Calling SendMessage with this payload will fail at the WhatsApp server. There is no working hypermeow path for this message type.
Send a template messagesendMessageSendMessage (no templateMessage in waE2E)No templateMessage field in waE2E.Message. Same protocol limitation as buttons.
Send a list messagesendMessageSendMessage (no listMessage in waE2E)No listMessage field in waE2E.Message. Same protocol limitation.
Delete a message (revoke / delete-for-everyone)sendMessageRevokeMessageHas a typed handler. Body: { chat: "<jid>", id: "<message-id>" }.
Mark messages as read (send read receipt)readMessagesMarkReadHas a typed handler. Body: { chat: "<jid>", ids: ["<id1>", "<id2>"] }.
Send presence (typing / recording)sendPresenceUpdateSendPresence`SendPresence`, `SendChatPresence`, `SubscribePresence` exist on the whatsmeow Client. Calling them at the wrong time can break the session — re-pair via QR to recover.
Subscribe to another user's presencepresenceSubscribeSubscribePresenceReachable on *whatsmeow.Client (reflection).

Groups

What it doesBaileyshypermeow (whatsmeow)Notes
Get metadata of a groupgroupMetadataGetGroupInfoReturns `*types.GroupInfo` (JID, OwnerJID, GroupName, GroupTopic, participants, ...).
List all groups you've joinedgroupFetchAllParticipatingGetJoinedGroupsNo params on either side.
Leave a groupgroupLeaveLeaveGroup
Create a new groupgroupCreateCreateGroupCreateGroup exists on the whatsmeow Client. Mutating call — the connection owner drives it directly.
Add/remove/promote/demote a participantgroupParticipantsUpdateUpdateGroupParticipantsUpdateGroupParticipants exists on the whatsmeow Client.
Change group subject (name)groupUpdateSubjectSetGroupNameSetGroupName exists on the whatsmeow Client.
Change group description / topicgroupUpdateDescriptionSetGroupDescriptionSetGroupDescription, SetGroupTopic exist on the whatsmeow Client.
Change group settings (announcement / locked / approval)groupSettingUpdateSetGroupAnnounceSetGroupAnnounce, SetGroupLocked, SetGroupMemberAddMode, SetGroupJoinApprovalMode all exist on the whatsmeow Client.
Get invite codegroupInviteCodeGetGroupInviteLinkAvailable via the whatsmeow Client.
Revoke invite codegroupRevokeInviteRevokeGroupInvite
Join via invite codegroupAcceptInviteJoinGroupWithInviteJoinGroupWithInvite / JoinGroupWithLink / LinkGroup exist on the whatsmeow Client.
Get group info from invite codegroupInfoFromInviteGetGroupInfoFromInvite
Accept invite V4 (groupInviteMessage)groupAcceptInviteV4GetGroupInfoFromLink
Get pending join requestsgroupRequestParticipantsListGetGroupRequestParticipants
Approve / reject join requestsgroupRequestParticipantsUpdateUpdateGroupRequestParticipantsUpdateGroupRequestParticipants exists on the whatsmeow Client.
Set group photogroupUpdatePictureSetGroupPhotoSetGroupPhoto exists on the whatsmeow Client.

Privacy

What it doesBaileyshypermeow (whatsmeow)Notes
Fetch privacy settingsfetchPrivacySettingsFetchPrivacySettings`FetchPrivacySettings` reachable in principle, but the entire privacy block is reserved.
Update LastSeen privacyupdateLastSeenPrivacySetPrivacySetting (LastSeen)`SetPrivacySetting` exists on the whatsmeow Client. Privacy is the device's own state — the user drives it directly.
Update Online privacyupdateOnlinePrivacySetPrivacySetting (Online)
Update Profile Picture privacyupdateProfilePicturePrivacySetPrivacySetting (ProfilePic)
Update Status privacyupdateStatusPrivacySetPrivacySetting (Status)
Update Read Receipts privacyupdateReadReceiptsPrivacySetPrivacySetting (ReadReceipts)
Update Groups Add privacyupdateGroupsAddPrivacySetPrivacySetting (GroupsAdd)
Update default disappearing timerupdateDefaultDisappearingModeSetDefaultDisappearingTimerSetDefaultDisappearingTimer, SetDisappearingTimer exist on the whatsmeow Client.

Chats

What it doesBaileyshypermeow (whatsmeow)Notes
Archive a chatchatModifychatModify (no public whatsmeow equivalent — see notes)Available via the whatsmeow Client directly (e.g. `UpdateGroupParticipants`, `SetGroupName`, etc.).
Mute a chatchatModifychatModify (no public whatsmeow equivalent — see notes)
Pin / unpin a chatchatModifychatModify (no public whatsmeow equivalent — see notes)
Mark a chat as read/unreadchatModifychatModify (no public whatsmeow equivalent — see notes)Use `MarkRead` for read receipts on messages.
Delete a chatchatModifychatModify (no public whatsmeow equivalent — see notes)
List blocked contactsfetchBlocklistFetchBlocklistReachable on the whatsmeow Client via reflection.
Update blocklist (add/remove)updateBlocklistUpdateBlocklistUpdateBlocklist exists on the whatsmeow Client.

Media

What it doesBaileyshypermeow (whatsmeow)Notes
Send an image (URL)sendMessageSendMessageHypermeow: `{ imageMessage: { url, mimetype, fileLength, caption } }`. `fileLength` required.
Send a video (URL)sendMessageSendMessageHypermeow: `{ videoMessage: { url, mimetype, fileLength, caption } }`.
Send audio / voice note (URL)sendMessageSendMessageHypermeow: `{ audioMessage: { url, mimetype, fileLength, ptt } }`.
Send a document (URL)sendMessageSendMessageHypermeow: `{ documentMessage: { url, mimetype, fileLength, fileName } }`.
Send a GIFsendMessageSendMessageHypermeow: `videoMessage` with `gifPlayback: true`.
Upload media inline (multipart)sendMessageUploadReachable on *whatsmeow.Client. Pass the bytes in params[0] or pre-host the file at a URL.
Download a media messagedownloadMediaMessageDownloadBaileys returns raw bytes (`application/octet-stream`). Hypermeow returns a base64 string — decode it client-side.

docs.methodsCategoryProfile & status

What it doesBaileyshypermeow (whatsmeow)Notes
Check if a phone is on WhatsApponWhatsAppIsOnWhatsAppReturns `IsOnWhatsAppResponse { Query, JID, IsIn }` per phone.
Get user info (push name, status, devices)fetchBlocklistGetUserInfoHypermeow returns `UserInfo { VerifiedName, Status, PictureID, Devices, LID, Username }`.
Get profile picture (URL/info)profilePictureUrlGetProfilePictureInfoHypermeow returns `{ URL, ID, Type, DirectPath }`.
Update own display nameupdateProfileNameUpdateProfileName (no public whatsmeow equivalent — see notes)Available via the whatsmeow Client directly (e.g. `UpdateGroupParticipants`, `SetGroupName`, etc.).
Update own status / aboutupdateProfileAboutSetStatusMessageSetStatusMessage has a typed handler.
Update profile pictureupdateProfilePicture(see note)Available via the whatsmeow Client directly (e.g. `UpdateGroupParticipants`, `SetGroupName`, etc.).
Update own push name (registration)updatePushNameSetPushName (no public whatsmeow equivalent — see notes)

docs.methodsCategoryConnection lifecycle

What it doesBaileyshypermeow (whatsmeow)Notes
Connect / Disconnect / Logout——Lifecycle is managed by the bridge via `connections/control`, never via `connections/request`.
Wait for connection——Bridge-owned; clients use status polling on the connection document.
Reset / re-pair session——Engine swap is per-connection via the dashboard (delete + create with new engine + scan QR).

Source of truth: bridge/internal/dispatch/registry.go (explicit handlers) and whatsmeow.Client reflection. The bridge exposes every method on the whatsmeow Client — lifecycle, handshake plumbing, privacy, group mutations, business, newsletter, Dangerous* internals. The connection owner has full reach. If a method is missing from this table, it just means we don't have a pre-typed example for it; you can still call it with the same { method, params } shape.