Read WhatsApp Messages
whatsapp_read_messagesRetrieve messages from any WhatsApp chat. Filter by search, date range, sender, type, and more to get sender, content, timestamp, and message ID.
Instructions
Read messages from a specific WhatsApp chat.
Returns messages with sender, text content, timestamp, and message ID. Use the message ID from results for whatsapp_react or reply_to in whatsapp_send_text.
Powered by Message Store — persistent full history with full-text search and sender filtering.
Args:
contactId: Phone digits for a person ("5521986910666"; survives @c.us↔@lid flips), or group JID "*@g.us". Look up via whatsapp_list_contacts.
limit: Number of messages to return (1-100, default 20)
offset: Skip N messages for pagination (default 0)
search: Full-text search within this chat's messages (optional)
sender: Filter by sender name or JID (optional)
type: Filter by message type: chat, image, album (optional)
since: ISO date — messages after this date (optional)
until: ISO date — messages before this date (optional)
fromMe: Filter sent (true) or received (false) messages (optional)
downloadMedia: Include media download URLs when falling back to live (default false)
markAsRead: Mark messages as read after fetching (default false)
Returns:
messages: Array with id, sender, body, timestamp, type, fromMe, hasMedia
total: Total matching messages
hasMore: Whether more results exist
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| contactId | Yes | Phone digits for a person, or "*@g.us" for a group | |
| limit | No | Number of messages to return (1-100, default 20) | |
| offset | No | Skip N messages for pagination (default 0) | |
| search | No | Full-text search within this chat (optional) | |
| sender | No | Filter by sender name or JID (optional) | |
| type | No | Filter by message type: chat, image, album (optional) | |
| since | No | ISO date — only messages after this date (optional) | |
| until | No | ISO date — only messages before this date (optional) | |
| fromMe | No | Filter: true = sent, false = received (optional) | |
| downloadMedia | No | Include media download URLs when falling back to live (default false) | |
| markAsRead | No | Mark messages as read after fetching (default false) |