Chats
Métodos para gestionar chats y mensajes de WhatsApp.
{session}— nombre de la sesión que creaste conPOST /api/sessions.{chatId}— ID del chat en formato123123123123@c.us(directo) o123123123123@g.us(grupo).
Obtener todos los chats
http
GET /api/{session}/chatsParámetros de consulta:
http
GET /api/{session}/chats?limit=100&offset=0&sortBy=messageTimestamp&sortOrder=desclimit=100— limita el número de chats a devolver.offset=0— omite N chats desde el inicio.sortBy— ordena por campo:messageTimestamp(último mensaje),idoname.sortOrder—desc(nuevos primero) oasc(antiguos primero).
Tip
Si ves
timeout o la petición tarda demasiado, usa limit para obtener los chats en partes más pequeñas.Obtener resumen de chats
La API que casi todo cliente de interfaz de chat necesita.
http
GET /api/{session}/chats/overview?limit=20&offset=0limit/offset— paginación.ids=11111&ids=9999@c.us— filtra por ID o número de teléfono.
Usa POST si tienes muchos chats (>400) en el filtro ids:
http
POST /api/{session}/chats/overviewjsonBody
{
"pagination": { "limit": 20, "offset": 0 },
"filter": { "ids": ["5215551234567@c.us"] }
}jsonResponse
[
{
"id": "5215551234567@c.us",
"name": "Juan Pérez",
"picture": "https://ejemplo.com/foto.jpg",
"lastMessage": {
"id": "true_5215551234567@c.us_AAAA",
"timestamp": 1667561485,
"from": "5215551234567@c.us",
"fromMe": true,
"body": "Hola"
}
}
]Obtener foto del chat
http
GET /api/{session}/chats/{chatId}/picture?refresh=truejsonResponse
{ "url": "https://ejemplo.com/foto.jpg" }url puede ser null si el chat no tiene foto. refresh=true fuerza el refresco (cacheado 24 h).
Archivar / desarchivar chat
http
POST /api/{session}/chats/{chatId}/archivehttp
POST /api/{session}/chats/{chatId}/unarchiveMarcar chat como no leído
http
POST /api/{session}/chats/{chatId}/unreadEliminar chat
http
DELETE /api/{session}/chats/{chatId}Marcar mensajes como leídos
Marca todos los mensajes no leídos del chat como leídos (doble check azul).
http
POST /api/{session}/chats/{chatId}/messages/readjsonBody
{ "messages": 30, "days": 7 }jsonBody
{
"ids": [
"false_5215551234567@c.us_AAAA",
"true_5215551234567@c.us_BBBB"
]
}messages— cuántos mensajes leer (default 30 en chats directos, 100 en grupos).days— cuántos días leer (default 7).
Obtener mensajes
http
GET /api/{session}/chats/{chatId}/messages?limit=10Parámetros disponibles:
downloadMedia=true— descargar archivos multimedia.limit/offset— paginación.filter.timestamp.gte/filter.timestamp.lte— filtrar por timestamp.filter.fromMe=false— excluir mensajes propios.filter.ack— filtrar por estado de confirmación:ERROR(-1),PENDING(0),SERVER(1),DEVICE(2),READ(3),PLAYED(4).
jsonResponse
[
{
"id": "false_5215551234567@c.us_AAAAAA",
"timestamp": 1727745026,
"from": "5215551234567@c.us",
"fromMe": false,
"body": "¡Hola!",
"hasMedia": false,
"ack": 3,
"ackName": "READ",
"replyTo": null
}
]Obtener mensaje por id
http
GET /api/{session}/chats/{chatId}/messages/{messageId}?downloadMedia=trueFijar / desfijar mensaje
http
POST /api/{session}/chats/{chatId}/messages/{messageId}/pinjsonBody
{
"duration": 86400
}Duración: 24 horas = 86400, 7 días = 604800, 30 días = 2592000.
http
POST /api/{session}/chats/{chatId}/messages/{messageId}/unpinEditar mensaje
http
PUT /api/{session}/chats/{chatId}/messages/{messageId}jsonBody
{ "text": "Mensaje editado" }Info
Recuerda escapar
@ con %40 en chatId y messageId.Eliminar mensaje
http
DELETE /api/{session}/chats/{chatId}/messages/{messageId}Eliminar todos los mensajes
http
DELETE /api/{session}/chats/{chatId}/messagesEventos
Recibe eventos de chats mediante Eventos. El evento chat.archive se dispara cuando un chat se archiva o desarchiva (consulta el detalle del payload en la página de Eventos).