Skip to main content
The Chat module groups everything that happens after a message comes in or goes out: contact management, organization with labels, chat state control (archive, pin, mute, block), and actions on individual messages (edit, delete, forward, favorite). It is the broadest module in the API: from a simple call like “list contacts” to complete flows like “create a label, assign it to several chats, then list everything that has that label”.
Every route accepts TokenAccount or TokenInstance and validates instance ownership before operating.

Endpoints

Contacts

Query synced contacts and filter by labels.

List contacts

GET /api/chat/contacts/:instance

Contacts by label

GET /api/chat/contactsByLabel/:instance

Labels (tags / labels)

Create labels, apply them to chats, and use them as filters, exactly what WhatsApp Business allows, but via API.

List labels

GET /api/chat/tag/:instance

Create label

POST /api/chat/tag/:instance

Delete label

DELETE /api/chat/tag/:instance

Assign label

POST /api/chat/assignTag/:instance

Unassign label

DELETE /api/chat/assignTag/:instance

Chat state

Control how each conversation appears to the WhatsApp user, archive, pin, mute, favorite, block.

Archive chat

POST /api/chat/archive/:instance

Pin chat

POST /api/chat/pinChat/:instance

Pin message

POST /api/chat/pinMessage/:instance

Mute chat

POST /api/chat/mute/:instance

Favorite chat or message

POST /api/chat/favorite/:instance

Block / unblock

POST /api/chat/block/:instance

Read

Mark message as read

POST /api/chat/markRead/:instance

Mark chat as read

POST /api/chat/markChatRead/:instance

Presence

Send presence (typing/recording)

POST /api/chat/presence/:instance, shows typing or recording to the contact.

History

Request history

POST /api/chat/history/:instance, stored messages with optional date filters.

Messages

Actions on specific messages, plus utilities to download media, read polls, and check delivery status.

Find message by ID

GET /api/chat/getMessage/:instance

Forward message

POST /api/chat/forward/:instance

Edit message

POST /api/chat/edit/:instance

Delete message

DELETE /api/chat/delete/:instance

Delete entire chat

DELETE /api/chat/deleteChat/:instance

Media as base64

GET /api/chat/base64/:instance

Delivery status

GET /api/chat/status/:instance

Poll votes

GET /api/chat/poll/:instance

Accepted identifiers

Most endpoints accept the same formats to identify a chat or destination. The table below summarizes them:
About @lid (LinkedID): an alternative identifier WhatsApp uses for individual users when the phone number is not exposed (privacy in communities, large groups, etc.). It is equivalent to ...@s.whatsapp.net for routing purposes, any endpoint that accepts a private JID also accepts @lid. Use the exact JID coming from a webhook or previous API responses; do not try to convert @lid into a number.

WhatsApp windows

Usage patterns

Label workflow

Moderation workflow

Send messages

Send content before managing it.

Real-time events

Webhooks message.exchange, message.status, and label.update.