Leer los mensajes de una conversación
curl --request GET \
--url https://api.revem.ai/webchat/conversations/{id}/messages \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.revem.ai/webchat/conversations/{id}/messages', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.revem.ai/webchat/conversations/{id}/messages"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"data": [
{
"id": 483,
"body": "¡Hola Camila! Sí, tenemos disponibilidad el jueves y el viernes por la tarde.",
"attachments": [],
"origin": "OUTBOUND",
"status": "sent",
"createdAt": "2026-09-05T15:20:19.000Z"
},
{
"id": 482,
"body": "Hola, ¿tienen horas disponibles esta semana?",
"attachments": [],
"origin": "INBOUND",
"status": "sent",
"createdAt": "2026-09-05T15:20:11.000Z"
}
],
"nextCursor": null
}{
"ok": false,
"error": "<string>",
"message": "<string>"
}{
"error": "Unauthorized",
"message": "Invalid API key"
}{
"ok": false,
"error": "Forbidden",
"message": "This endpoint is not available to API keys"
}{
"ok": false,
"error": "<string>",
"message": "<string>"
}{
"ok": false,
"error": "Too many requests. Retry in 1 minute."
}Webchat
Leer los mensajes de una conversación
Devuelve los mensajes de una conversación, del más reciente al más antiguo, paginados por cursor. Incluye tanto lo que escribió el visitante (origin: INBOUND) como las respuestas del equipo o del agente (origin: OUTBOUND), así que es la forma de mostrar las respuestas en tu sitio.
Las URLs de los adjuntos son firmadas y expiran en una hora; vuelve a pedir la página en vez de guardarlas.
GET
/
webchat
/
conversations
/
{id}
/
messages
Leer los mensajes de una conversación
curl --request GET \
--url https://api.revem.ai/webchat/conversations/{id}/messages \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.revem.ai/webchat/conversations/{id}/messages', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.revem.ai/webchat/conversations/{id}/messages"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"data": [
{
"id": 483,
"body": "¡Hola Camila! Sí, tenemos disponibilidad el jueves y el viernes por la tarde.",
"attachments": [],
"origin": "OUTBOUND",
"status": "sent",
"createdAt": "2026-09-05T15:20:19.000Z"
},
{
"id": 482,
"body": "Hola, ¿tienen horas disponibles esta semana?",
"attachments": [],
"origin": "INBOUND",
"status": "sent",
"createdAt": "2026-09-05T15:20:11.000Z"
}
],
"nextCursor": null
}{
"ok": false,
"error": "<string>",
"message": "<string>"
}{
"error": "Unauthorized",
"message": "Invalid API key"
}{
"ok": false,
"error": "Forbidden",
"message": "This endpoint is not available to API keys"
}{
"ok": false,
"error": "<string>",
"message": "<string>"
}{
"ok": false,
"error": "Too many requests. Retry in 1 minute."
}Authorizations
La API key de tu organización, con la forma rvm_<prefijo>.<secreto>, enviada como Authorization: Bearer rvm_…. Revem la emite y sólo se muestra una vez; si la pierdes se reemplaza, no se recupera.
Path Parameters
El conversationId que devolvió POST /webchat/messages.
Query Parameters
Tamaño de página.
Required range:
1 <= x <= 100El nextCursor de la página anterior. Es opaco: no lo construyas ni lo interpretes.
Minimum string length:
1