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 does | Baileys | hypermeow (whatsmeow) | Notes |
|---|---|---|---|
| Send a text message | sendMessage | SendMessage | Different wire shape: `{ text: "..." }` vs `{ conversation: "..." }` (waE2E.Message protojson). |
| Send a reply (quote a message) | sendMessage | SendMessage | Baileys uses third positional arg `{ quoted: ... }`. Hypermeow embeds `{ contextInfo: { quotedMessage, stanzaId, participant } }` inside extendedTextMessage. |
| Send a mention (@user) | sendMessage | SendMessage | Baileys: third arg `{ mentions: [...] }`. Hypermeow: `contextInfo.mentionedJid`. |
| Send a location | sendMessage | SendMessage | Hypermeow uses `locationMessage { degreesLatitude, degreesLongitude, ... }`. |
| Send a contact (vCard) | sendMessage | SendMessage | Hypermeow uses `contactMessage { displayName, vcard }`. |
| Send a reaction | sendMessage | SendMessage | Hypermeow uses `reactionMessage { text, key }`. |
| Send a buttons message | sendMessage | SendMessage (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 message | sendMessage | SendMessage (no templateMessage in waE2E) | No templateMessage field in waE2E.Message. Same protocol limitation as buttons. |
| Send a list message | sendMessage | SendMessage (no listMessage in waE2E) | No listMessage field in waE2E.Message. Same protocol limitation. |
| Delete a message (revoke / delete-for-everyone) | sendMessage | RevokeMessage | Has a typed handler. Body: { chat: "<jid>", id: "<message-id>" }. |
| Mark messages as read (send read receipt) | readMessages | MarkRead | Has a typed handler. Body: { chat: "<jid>", ids: ["<id1>", "<id2>"] }. |
| Send presence (typing / recording) | sendPresenceUpdate | SendPresence | `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 presence | presenceSubscribe | SubscribePresence | Reachable on *whatsmeow.Client (reflection). |
Groups
| What it does | Baileys | hypermeow (whatsmeow) | Notes |
|---|---|---|---|
| Get metadata of a group | groupMetadata | GetGroupInfo | Returns `*types.GroupInfo` (JID, OwnerJID, GroupName, GroupTopic, participants, ...). |
| List all groups you've joined | groupFetchAllParticipating | GetJoinedGroups | No params on either side. |
| Leave a group | groupLeave | LeaveGroup | |
| Create a new group | groupCreate | CreateGroup | CreateGroup exists on the whatsmeow Client. Mutating call — the connection owner drives it directly. |
| Add/remove/promote/demote a participant | groupParticipantsUpdate | UpdateGroupParticipants | UpdateGroupParticipants exists on the whatsmeow Client. |
| Change group subject (name) | groupUpdateSubject | SetGroupName | SetGroupName exists on the whatsmeow Client. |
| Change group description / topic | groupUpdateDescription | SetGroupDescription | SetGroupDescription, SetGroupTopic exist on the whatsmeow Client. |
| Change group settings (announcement / locked / approval) | groupSettingUpdate | SetGroupAnnounce | SetGroupAnnounce, SetGroupLocked, SetGroupMemberAddMode, SetGroupJoinApprovalMode all exist on the whatsmeow Client. |
| Get invite code | groupInviteCode | GetGroupInviteLink | Available via the whatsmeow Client. |
| Revoke invite code | groupRevokeInvite | RevokeGroupInvite | |
| Join via invite code | groupAcceptInvite | JoinGroupWithInvite | JoinGroupWithInvite / JoinGroupWithLink / LinkGroup exist on the whatsmeow Client. |
| Get group info from invite code | groupInfoFromInvite | GetGroupInfoFromInvite | |
| Accept invite V4 (groupInviteMessage) | groupAcceptInviteV4 | GetGroupInfoFromLink | |
| Get pending join requests | groupRequestParticipantsList | GetGroupRequestParticipants | |
| Approve / reject join requests | groupRequestParticipantsUpdate | UpdateGroupRequestParticipants | UpdateGroupRequestParticipants exists on the whatsmeow Client. |
| Set group photo | groupUpdatePicture | SetGroupPhoto | SetGroupPhoto exists on the whatsmeow Client. |
Privacy
| What it does | Baileys | hypermeow (whatsmeow) | Notes |
|---|---|---|---|
| Fetch privacy settings | fetchPrivacySettings | FetchPrivacySettings | `FetchPrivacySettings` reachable in principle, but the entire privacy block is reserved. |
| Update LastSeen privacy | updateLastSeenPrivacy | SetPrivacySetting (LastSeen) | `SetPrivacySetting` exists on the whatsmeow Client. Privacy is the device's own state — the user drives it directly. |
| Update Online privacy | updateOnlinePrivacy | SetPrivacySetting (Online) | |
| Update Profile Picture privacy | updateProfilePicturePrivacy | SetPrivacySetting (ProfilePic) | |
| Update Status privacy | updateStatusPrivacy | SetPrivacySetting (Status) | |
| Update Read Receipts privacy | updateReadReceiptsPrivacy | SetPrivacySetting (ReadReceipts) | |
| Update Groups Add privacy | updateGroupsAddPrivacy | SetPrivacySetting (GroupsAdd) | |
| Update default disappearing timer | updateDefaultDisappearingMode | SetDefaultDisappearingTimer | SetDefaultDisappearingTimer, SetDisappearingTimer exist on the whatsmeow Client. |
Chats
| What it does | Baileys | hypermeow (whatsmeow) | Notes |
|---|---|---|---|
| Archive a chat | chatModify | chatModify (no public whatsmeow equivalent — see notes) | Available via the whatsmeow Client directly (e.g. `UpdateGroupParticipants`, `SetGroupName`, etc.). |
| Mute a chat | chatModify | chatModify (no public whatsmeow equivalent — see notes) | |
| Pin / unpin a chat | chatModify | chatModify (no public whatsmeow equivalent — see notes) | |
| Mark a chat as read/unread | chatModify | chatModify (no public whatsmeow equivalent — see notes) | Use `MarkRead` for read receipts on messages. |
| Delete a chat | chatModify | chatModify (no public whatsmeow equivalent — see notes) | |
| List blocked contacts | fetchBlocklist | FetchBlocklist | Reachable on the whatsmeow Client via reflection. |
| Update blocklist (add/remove) | updateBlocklist | UpdateBlocklist | UpdateBlocklist exists on the whatsmeow Client. |
Media
| What it does | Baileys | hypermeow (whatsmeow) | Notes |
|---|---|---|---|
| Send an image (URL) | sendMessage | SendMessage | Hypermeow: `{ imageMessage: { url, mimetype, fileLength, caption } }`. `fileLength` required. |
| Send a video (URL) | sendMessage | SendMessage | Hypermeow: `{ videoMessage: { url, mimetype, fileLength, caption } }`. |
| Send audio / voice note (URL) | sendMessage | SendMessage | Hypermeow: `{ audioMessage: { url, mimetype, fileLength, ptt } }`. |
| Send a document (URL) | sendMessage | SendMessage | Hypermeow: `{ documentMessage: { url, mimetype, fileLength, fileName } }`. |
| Send a GIF | sendMessage | SendMessage | Hypermeow: `videoMessage` with `gifPlayback: true`. |
| Upload media inline (multipart) | sendMessage | Upload | Reachable on *whatsmeow.Client. Pass the bytes in params[0] or pre-host the file at a URL. |
| Download a media message | downloadMediaMessage | Download | Baileys returns raw bytes (`application/octet-stream`). Hypermeow returns a base64 string — decode it client-side. |
docs.methodsCategoryProfile & status
| What it does | Baileys | hypermeow (whatsmeow) | Notes |
|---|---|---|---|
| Check if a phone is on WhatsApp | onWhatsApp | IsOnWhatsApp | Returns `IsOnWhatsAppResponse { Query, JID, IsIn }` per phone. |
| Get user info (push name, status, devices) | fetchBlocklist | GetUserInfo | Hypermeow returns `UserInfo { VerifiedName, Status, PictureID, Devices, LID, Username }`. |
| Get profile picture (URL/info) | profilePictureUrl | GetProfilePictureInfo | Hypermeow returns `{ URL, ID, Type, DirectPath }`. |
| Update own display name | updateProfileName | UpdateProfileName (no public whatsmeow equivalent — see notes) | Available via the whatsmeow Client directly (e.g. `UpdateGroupParticipants`, `SetGroupName`, etc.). |
| Update own status / about | updateProfileAbout | SetStatusMessage | SetStatusMessage has a typed handler. |
| Update profile picture | updateProfilePicture | (see note) | Available via the whatsmeow Client directly (e.g. `UpdateGroupParticipants`, `SetGroupName`, etc.). |
| Update own push name (registration) | updatePushName | SetPushName (no public whatsmeow equivalent — see notes) |
docs.methodsCategoryConnection lifecycle
| What it does | Baileys | hypermeow (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.