List messages (all chats)
Offset-paginated list of messages across the whole account.
Pass chatId to scope to a single chat, or omit it to search across all chats. Supports free-text search (searchToken), date range (since/until), and message-kind filtering (messageTypes). Requires chats:read.
Request
curl -X GET "https://api.blueticks.co/v1/messages"{
"success": true,
"data": [
{
"waMessageKey": {
"fromMe": true,
"remote": "string",
"id": "string",
"_serialized": "string",
"participant": "string"
},
"chatId": "string",
"from": "string",
"author": "string",
"senderName": "string",
"timestamp": "2019-08-24T14:15:22Z",
"text": "string",
"type": "string",
"waType": "string",
"interactive": {
"kind": "buttons",
"options": [
{
"id": "string",
"title": "string",
"description": "string",
"section": "string"
}
],
"selectedId": "string",
"selectedTitle": "string",
"quotedId": "string"
},
"fromMe": true,
"ack": 0,
"mediaUrl": "string",
"filename": "string",
"linkPreview": {
"title": "string",
"description": "string",
"canonicalUrl": "string",
"thumbnail": "string"
},
"quotedMessage": {
"waMessageKey": {
"fromMe": true,
"remote": "string",
"id": "string",
"_serialized": "string",
"participant": "string"
},
"text": "string",
"type": "string",
"author": "string"
},
"reactions": [
{
"emoji": "string",
"senderId": "string",
"fromMe": true,
"timestamp": "2019-08-24T14:15:22Z"
}
],
"source": "vault",
"secret": "string"
}
],
"limit": 0,
"skip": 0,
"total": 0,
"nextCursor": "string",
"hasMore": true,
"coverage": {
"oldestLoadedTimestamp": 0,
"oldestLoadedIso": "string",
"messagesScanned": 0,
"truncated": true,
"indexOnly": true,
"oldestScannedIso": "string"
},
"autoLoadedPages": 0,
"sinceReached": true,
"sources": {
"backup": 0
}
}{
"success": false,
"error": {
"code": "string",
"message": "string",
"request_id": "string",
"requestId": "string",
"details": [
{
"path": "string",
"code": "string",
"message": "string"
}
],
"upgrade": {
"url": "string",
"text": "string",
"reset_time": "string",
"seconds_remaining": 0,
"plan": {}
}
}
}Query Parameters
Optional WhatsApp JID to scope results to a single chat. Omit to search across all chats.
Search token; when set, only items whose name matches are returned.
length <= 200Force the read to a specific engine TYPE: "gateway" (server-side pod, e.g. Baileys) or "regular" (browser extension). Overrides the default dual-engine read preference. 409 ENGINE_NOT_ONLINE if none of that type is online.
"gateway" | "regular"Exact engine clientId to target (from the engine status id); wins over engine. 409 ENGINE_NOT_ONLINE if not online.
1 <= length <= 200Result ordering. asc = oldest-first; desc = newest-first (default).
"asc" | "desc"Lower bound (ISO 8601, offset allowed). Only messages with timestamp >= since.
date-timeUpper bound (ISO 8601, offset allowed). Only messages with timestamp <= until.
date-timeFilter to specific message kinds. Comma-separated or repeated. Accepts BOTH the legacy v1 names and WhatsApp Web names (waType): the legacy chat still includes interactive menus/clicks, buttons_response selects only the clicks. Useful for "all PDFs" (document) or "images today" (image). System events (gp2/revoked/newsletter_notification) are excluded by default unless explicitly listed here.
Keyword-set OR search: match if body/caption/filename contains ANY term.
items <= 24MIME prefix filter, e.g. "application/pdf" or "image/".
length <= 255Case-insensitive substring match on the document filename.
length <= 255true = only messages with a media attachment; false = only non-media.
Case-insensitive substring match on the sender JID/phone.
length <= 128When the local store is exhausted, fetch older messages from the phone (chrome only).
Include inline media payload on rows (heavy; default false — use /messages/{key}/media).
Number of messages to skip before the page (default 0).
00 <= valueMax messages to return.
501 <= value <= 200Response
Response Body
application/json
application/json