Listar Mensajes
GET /api/messages
Sección titulada « /api/messages»Obtiene una lista paginada de mensajes enviados con opciones de filtrado avanzado.
Endpoint
Sección titulada «Endpoint»GET /api/messagesParámetros de consulta
Sección titulada «Parámetros de consulta»| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
page | integer | No | Número de página (≥ 1) |
limit | integer | No | Elementos por página (1-100) |
content | string | No | Filtrar por contenido del mensaje |
contentType | enum | No | Tipo: PLAIN_TEXT, HTML |
status | enum | No | Estado: QUEUED, SENDING, SENT, DELIVERED, UNDELIVERED, FAILED, RECEIVED, SCHEDULED, CANCELED, READ |
sentAt | datetime | No | Fecha y hora de envío |
recipientDetails | string | No | Número de teléfono del destinatario |
countryCode | string | No | Código de país del destinatario |
messageType | string | No | Tipo de mensaje (SMS, WhatsApp, etc.) |
providerId | string | No | ID del proveedor |
campaignId | string | No | ID de la campaña |
contactId | string | No | ID del contacto |
startDate | date | No | Fecha de inicio (YYYY-MM-DD) |
endDate | date | No | Fecha de fin (YYYY-MM-DD) |
Respuestas
Sección titulada «Respuestas»Respuesta exitosa (200)
Sección titulada «Respuesta exitosa (200)»{ "data": [ { "id": "message-uuid", "content": "Hola, este es un mensaje de prueba", "contentType": "PLAIN_TEXT", "status": "DELIVERED", "sentAt": "2024-01-01T10:15:00.000Z", "errorMessage": null, "recipientDetails": "3001234567", "countryCode": "57", "messageType": "SMS", "provider": "Twilio", "campaign": { "id": "campaign-uuid", "name": "Campaña de bienvenida" }, "contact": { "id": "contact-uuid", "name": "Juan Pérez" }, "organizationId": "org-uuid", "createdAt": "2024-01-01T10:15:00.000Z", "updatedAt": "2024-01-01T10:16:00.000Z", "deletedAt": null } ], "meta": { "totalRecords": 50, "totalPages": 5, "currentPage": 1, "limit": 10, "hasNextPage": true, "hasPreviousPage": false }}Respuesta de error (400)
Sección titulada «Respuesta de error (400)»{ "error": "Parámetros inválidos", "details": "El parámetro 'limit' debe estar entre 1 y 100"}Respuesta de error (401)
Sección titulada «Respuesta de error (401)»{ "error": "No autorizado", "message": "API key inválida o faltante"}Ejemplos
Sección titulada «Ejemplos»Obtener todos los mensajes
Sección titulada «Obtener todos los mensajes»curl -X GET "https://app.sendme123.com/api/messages" \ -H "api-key: tu-api-key-aqui" \ -H "Content-Type: application/json"const response = await fetch('https://app.sendme123.com/api/messages', { method: 'GET', headers: { 'api-key': 'tu-api-key-aqui', 'Content-Type': 'application/json' }});
const messages = await response.json();console.log(messages.data);import requests
headers = {'api-key': 'tu-api-key-aqui', 'Content-Type': 'application/json'}
response = requests.get('https://app.sendme123.com/api/messages', headers=headers)messages = response.json()print(messages['data'])Filtrar mensajes entregados
Sección titulada «Filtrar mensajes entregados»curl -X GET "https://app.sendme123.com/api/messages?status=DELIVERED&page=1&limit=20" \ -H "api-key: tu-api-key-aqui" \ -H "Content-Type: application/json"const params = new URLSearchParams({ status: 'DELIVERED', page: '1', limit: '20'});
const response = await fetch(`https://app.sendme123.com/api/messages?${params}`, { method: 'GET', headers: { 'api-key': 'tu-api-key-aqui', 'Content-Type': 'application/json' }});
const messages = await response.json();import requests
headers = {'api-key': 'tu-api-key-aqui', 'Content-Type': 'application/json'}params = { 'status': 'DELIVERED', 'page': 1, 'limit': 20}
response = requests.get('https://app.sendme123.com/api/messages', headers=headers, params=params)messages = response.json()Filtrar por rango de fechas
Sección titulada «Filtrar por rango de fechas»curl -X GET "https://app.sendme123.com/api/messages?startDate=2024-01-01&endDate=2024-01-31" \ -H "api-key: tu-api-key-aqui" \ -H "Content-Type: application/json"const params = new URLSearchParams({ startDate: '2024-01-01', endDate: '2024-01-31'});
const response = await fetch(`https://app.sendme123.com/api/messages?${params}`, { method: 'GET', headers: { 'api-key': 'tu-api-key-aqui', 'Content-Type': 'application/json' }});
const messages = await response.json();import requests
headers = {'api-key': 'tu-api-key-aqui', 'Content-Type': 'application/json'}params = { 'startDate': '2024-01-01', 'endDate': '2024-01-31'}
response = requests.get('https://app.sendme123.com/api/messages', headers=headers, params=params)messages = response.json()Estados de mensajes
Sección titulada «Estados de mensajes»| Estado | Descripción |
|---|---|
QUEUED | Mensaje en cola para envío |
SENDING | Mensaje siendo enviado |
SENT | Mensaje enviado al proveedor |
DELIVERED | Mensaje entregado al destinatario |
UNDELIVERED | Mensaje no pudo ser entregado |
FAILED | Error en el envío |
RECEIVED | Mensaje recibido por el destinatario |
SCHEDULED | Mensaje programado para envío futuro |
CANCELED | Mensaje cancelado |
READ | Mensaje leído por el destinatario |