Comienza aquí
Tu primera solicitud en cuatro pasos
Lista tus móviles conectados y copia el SID de destino.
Crear una notificación con un título y mensaje.
Consulta el endpoint de la lista por SID.
Utilice distribued_status y marcas de tiempo GMT para rastrear la distribución.
Aplicación móvil oficial
El puente seguro entre tu teléfono, el panel y API.
Las operaciones de SMS y llamadas se realizan a través de la aplicación oficial SMSMobileAPI instalada en tu teléfono conectado. La app vincula el dispositivo de forma segura con tu cuenta, sincroniza eventos autorizados y conecta la red móvil con el panel de control y REST API.
- Lanzamientos firmados distribuidos a través de las listas oficiales Google Play y Apple App Store
- Controles de revisión, firma y distribución de plataformas Google y Apple
- Emparejamiento seguro de dispositivo, transporte HTTPS y acceso autenticado API
- Solo los permisos requeridos para las funciones móviles que habilites
WEBHOOK V2 PARA ESTA API
Permita que la comunicación móvil desencadene la siguiente acción empresarial.
Un destino puede recibirlo todo, o puede separar sistemas de producción, analítica y alertas operativas. Cada evento tiene un nombre preciso para que su aplicación lo gestione de forma predecible.
La API de notificaciones envía notificaciones a los dispositivos conectados. Actualmente no publica un evento webhook específico de notificación. Utiliza eventos de origen como un SMS recibido, una llamada perdida o un mensaje de WhatsApp recibido para activar tu flujo de notificaciones.
sms.receivedSMS recibido
Un móvil conectado sincronizó un SMS entrante.
call.missedLlamada perdida
Se sincronizó una llamada perdida desde un móvil conectado.
whatsapp.receivedWhatsApp recibido
Se recuperó un mensaje WhatsApp después de que la cuenta solicitara la sincronización.
Autenticación
Mantén las credenciales en tu servidor
Los puntos finales de notificación utilizan el parámetro apikey. Un teléfono destino se identifica por sid al enviar y por sid o sidentifiant al listar.
Gestión del historial
Borrar historial con seguridad: previsualizar, eliminar, seguir el progreso
Estos endpoints borran el historial seleccionado del servidor para tu clave API, no los mensajes en los teléfonos ni servicios externos. No ofrecen eliminación de cuenta. Puede aparecer nueva actividad tras la eliminación.
Lee la guía de request_id y reintentos
De forma predeterminada, los registros vinculados o en procesamiento siguen siendo visibles. Use include_linked=1 solo si acepta que las integraciones o procesos en curso puedan dejar de funcionar.
Cómo funciona request_id
- Previsualiza los contadores con action=preview. No se necesita request_id y no se eliminan registros.
- Generar un request_id único para una nueva eliminación, por ejemplo un UUID. Guárdalo antes de enviar action=delete.
- Para reintentos, tiempos de espera o HTTP 202, reutilice la misma clave API, el endpoint de historial, request_id y el valor include_linked. Nunca genere un nuevo ID automáticamente tras un error.
- Cuando completed=true, la operación está finalizada. Reutilizar su ID devuelve el mismo resultado en lugar de eliminar registros recién llegados. Use un ID nuevo solo para una limpieza deliberadamente nueva.
request_id identifica tu operación de eliminación, no un SMS individual. Formato permitido: 16–128 letras ASCII, dígitos, guiones o guiones bajos. Un UUID generado con crypto.randomUUID() es adecuado.
La eliminación se realiza en lotes. HTTP 202 con continue_required=true significa que debe repetir action=delete tras 3 segundos. No hay cron en segundo plano. action=status solo lee el progreso, incluso si su estado HTTP es 200.
Ejemplos de eliminación y estado
Reemplace el request_id de ejemplo con su propio valor único antes de comenzar. Las siguientes solicitudes de eliminación modifican el historial real de la cuenta; no son previsualizaciones.
curl -X POST "https://api.smsmobileapi.com/delete-history-notifications/" \
--data-urlencode "apikey=YOUR_API_KEY" \
-d "action=delete" -d "include_linked=0" \
-d "request_id=6d54ac58-41f1-4fbc-9a39-6e6c86089451"curl -X POST "https://api.smsmobileapi.com/delete-history-notifications/" \
-H "Authorization: Bearer YOUR_OAUTH_ACCESS_TOKEN" \
-d "action=delete" -d "include_linked=0" \
-d "request_id=6d54ac58-41f1-4fbc-9a39-6e6c86089451"curl -G "https://api.smsmobileapi.com/delete-history-notifications/" \
--data-urlencode "apikey=YOUR_API_KEY" \
-d "action=status" \
-d "request_id=6d54ac58-41f1-4fbc-9a39-6e6c86089451"GET también acepta action=preview o action=delete. Se recomienda POST: los parámetros en la URL pueden quedarse en el historial del navegador y los registros del servidor. Nunca pongas una URL de eliminación en un enlace público, imagen o prefetch.
Para POST, envíe todos los parámetros en el cuerpo del formulario o en un objeto JSON, nunca en la cadena de consulta. Parámetros desconocidos son rechazados; no se soportan filtros por fecha o móvil.
Autenticación para puntos finales de historial
Usa apikey o un token de acceso Authorization: Bearer emitido por SMSMobileAPI OAuth2. No envíes un token de refresco ni una clave API como token Bearer. Los tokens caducados son rechazados.
Cuando se establecen los scopes, history:read permite vista previa/estado y history:delete también permite eliminación. Se aplican restricciones tanto en el token como en el cliente OAuth. Los tokens heredados sin scopes mantienen su acceso actual a la cuenta.
OAuth2 selecciona la clave principal única API. Si existen varias claves principales, proporciona también apikey para seleccionar una perteneciente a la cuenta. Las claves secundarias nunca otorgan acceso al historial de la clave principal.
Lee la respuesta antes de continuar
count_delete es el número acumulado eliminado por esta operación. selected_at_start es la selección inicial; protected_at_start cuenta los registros excluidos. Usa preview.linked_or_processing para contar registros vinculados incluso cuando include_linked=1.
{
"result": {
"error": 0,
"history": "notifications",
"action": "delete",
"request_id": "6d54ac58-41f1-4fbc-9a39-6e6c86089451",
"status": "processing",
"completed": false,
"count_delete": 100,
"total_before": 250,
"selected_at_start": 200,
"protected_at_start": 50,
"include_linked": 0,
"continue_required": true,
"message": "Repeat GET or POST with the same request_id and include_linked to continue. Status requests do not run deletion."
}
}- 200 con completed=true: finalizado. Una respuesta 200 de vista previa o de estado por sí sola no demuestra la finalización.
- 400 INVALID_REQUEST_ID: verifica el formato. 404 REQUEST_NOT_FOUND: no existe ninguna operación para este ID, clave API e historial.
- 401: credenciales inválidas o caducadas. 403: alcance OAuth insuficiente o cuenta no autorizada.
- 409 HISTORY_BUSY: otra limpieza está en curso; continúa desde el cliente original. 409 INCLUDE_LINKED_CONFLICT: restaura el valor original de include_linked.
- 409 OAUTH_ACCOUNT_AMBIGUOUS: proporciona una clave API perteneciente a esta cuenta.
- 503 o interrupción de red: algunos lotes pueden ya estar completados. Revisa la configuración y vuelve a intentar con el request_id original. No crees una operación de reemplazo automáticamente.
POSTE · GET
Enviar una notificación
https://api.smsmobileapi.com/notification/sendCrea una notificación interna para un dispositivo conectado.
Utilícelo para alertas operativas que deben aparecer en un teléfono gestionado.
Parámetros
| Nombre | Tipo | Requisito | Descripción |
|---|---|---|---|
apikey |
cadena | Obligatorio | Su clave API. |
sid |
cadena | Obligatorio | Objetivo: SID móvil. |
title |
cadena | Opcional | Título de la notificación; por defecto Notificación. |
message |
cadena | Obligatorio | Contenido de la notificación. |
type |
cadena | Opcional | Tipo de notificación; por defecto notificación. |
Ejemplo de solicitud
curl -X POST "https://api.smsmobileapi.com/notification/send" \
-d "apikey=YOUR_API_KEY" \
-d "sid=TARGET_SIDENTIFIANT" \
--data-urlencode "title=Order ready" \
--data-urlencode "message=Order #1042 is ready for collection."
Ejemplo de respuesta
{
"success": true,
"message": "Notification created.",
"id": 22087,
"apikey": "YOUR_API_KEY",
"sid": "508b004b4aadacc4"
}
¿Quieres ejecutar esta solicitud?Conecte su clave API en la parte superior de la página para activar el probador interactivo.
Clave de conexión ↑- Creación y distribución son eventos separados. Usa el endpoint de lista para verificar la entrega al dispositivo.
OBTENER
Listar notificaciones
https://api.smsmobileapi.com/notification/list/Devuelve hasta 200 notificaciones ordenadas de la más nueva a la más antigua.
Utilícelo para monitorear la distribución y construir un historial de notificaciones.
Parámetros
| Nombre | Tipo | Requisito | Descripción |
|---|---|---|---|
apikey |
cadena | Obligatorio | Su clave API. |
sidentifiant |
cadena | Opcional | Filtrar por móvil objetivo. |
sid |
cadena | Opcional | Alias de sidentifiant. |
distribued |
0 | 1 | Opcional | 1 para distribuido, 0 para no distribuido. |
date_from |
AAAA-MM-DD | Opcional | Fecha de inicio. |
date_to |
AAAA-MM-DD | Opcional | Fecha de finalización. |
Ejemplo de solicitud
curl "https://api.smsmobileapi.com/notification/list/?apikey=YOUR_API_KEY&sidentifiant=TARGET_SIDENTIFIANT&distribued=1"
Ejemplo de respuesta
{
"success": true,
"count": 1,
"data": [{
"sidentifiant": "508b004b4aadacc4",
"title": "Order ready",
"message": "Order #1042 is ready for collection.",
"distribued": "1",
"distribued_status": "distributed",
"distributed_at_gmt": "2026-03-18 10:18:30",
"distributed_at_unix": 1773829110,
"sent_at_gmt": "2026-03-18 10:15:03",
"sent_at_unix": 1773828903
}]
}
¿Quieres ejecutar esta solicitud?Conecte su clave API en la parte superior de la página para activar el probador interactivo.
Clave de conexión ↑- Todas las marcas de tiempo de envío y distribución están en GMT.
POSTE · GET
Historial de notificaciones claro
https://api.smsmobileapi.com/delete-history-notifications/Borra los registros de notificaciones de los móviles propiedad de esta cuenta. No desconecta los móviles.
Utilice la vista previa primero, revise los conteos y luego solicite explícitamente la eliminación. Esto borra todo el historial seleccionado para la clave API, sin filtros de fecha, teléfono o mensaje.
Parámetros
| Nombre | Tipo | Requisito | Descripción |
|---|---|---|---|
apikey |
cadena | Opcional | Obligatorio sin OAuth2. Con OAuth2, seleccione opcionalmente una clave API perteneciente a la misma cuenta. |
action |
vista previa | eliminar | estado | Opcional | vista previa muestra recuentos sin eliminar; eliminar inicia o continúa la eliminación; estado lee el progreso sin continuar. El API predetermina eliminar; este probador predetermina vista previa. |
include_linked |
0 | 1 | Opcional | Por defecto 0: conservar registros vinculados o en proceso. Establezca 1 para incluirlos, con riesgo de romper integraciones. Mantenga este valor sin cambios al continuar una eliminación. |
request_id |
cadena | Opcional | Obligatorio para eliminar y estado, opcional para vista previa. Utilice de 16 a 128 letras, dígitos, guiones o guiones bajos. Genere un ID único para cada nueva eliminación y consérvelo para cada reintento. No es un ID de mensaje ni una clave API. |
Ejemplo de solicitud
curl -X POST "https://api.smsmobileapi.com/delete-history-notifications/" \
--data-urlencode "apikey=YOUR_API_KEY" \
-d "action=preview" -d "include_linked=0"
Ejemplos de eliminación y estado
Reemplace el request_id de ejemplo con su propio valor único antes de comenzar. Las siguientes solicitudes de eliminación modifican el historial real de la cuenta; no son previsualizaciones.
curl -X POST "https://api.smsmobileapi.com/delete-history-notifications/" \
--data-urlencode "apikey=YOUR_API_KEY" \
-d "action=delete" -d "include_linked=0" \
-d "request_id=6d54ac58-41f1-4fbc-9a39-6e6c86089451"curl -X POST "https://api.smsmobileapi.com/delete-history-notifications/" \
-H "Authorization: Bearer YOUR_OAUTH_ACCESS_TOKEN" \
-d "action=delete" -d "include_linked=0" \
-d "request_id=6d54ac58-41f1-4fbc-9a39-6e6c86089451"curl -G "https://api.smsmobileapi.com/delete-history-notifications/" \
--data-urlencode "apikey=YOUR_API_KEY" \
-d "action=status" \
-d "request_id=6d54ac58-41f1-4fbc-9a39-6e6c86089451"Ejemplo de respuesta
{
"result": {
"error": 0,
"history": "notifications",
"action": "preview",
"total": 120,
"simple": 100,
"linked_or_processing": 20,
"selected": 100,
"include_linked": 0,
"operation_in_progress": false,
"active_include_linked": null
}
}
¿Quieres ejecutar esta solicitud?Conecte su clave API en la parte superior de la página para activar el probador interactivo.
Clave de conexión ↑- El ejemplo anterior es una vista previa, no una eliminación. Los conteos son ilustrativos; la selección definitiva se fija cuando comienza la eliminación.
- include_linked=1 puede interrumpir GHL, Zapier, automatizaciones, enlaces para darse de baja o seguimiento de entrega. Nunca pasa por alto las verificaciones de propiedad de cuenta o integridad del almacenamiento.
Solución de problemas
Errores y reintentos seguros
Consulta el estado de HTTP y el campo de error JSON antes de reintentar. No vuelvas a intentar validaciones o fallos de autenticación sin corregir primero la petición.
| HTTP | Código | Qué hacer |
|---|---|---|
| 400 | Missing required param | faltan apikey, sid o mensaje. |
| 400 | Invalid date format | Usa YYYY-MM-DD para date_from y date_to. |
| 400 | Invalid distribued value | Solo se acepta 0 o 1. |
| 500 | DB connection / query failed | El servicio de notificaciones no pudo completar la operación. |
¿Necesitas ayuda?
Trae el contexto de la solicitud, no tus secretos.
Comparte el endpoint, la marca de tiempo, el estado HTTP y la respuesta saneada. Nunca incluyas claves API, tokens ni contenido privado de mensajes.


