Documentación de SMS
En SMSmobileAPI, nos esforzamos por hacer que nuestra API sea lo más compatible posible con cualquier arquitectura o plataforma.
Ya sea que utilice REST, SOAP, cURL o varios lenguajes de programación como Python, JavaScript, PHP y más, nuestra API está diseñada para integrarse perfectamente en sus proyectos.
También disponemos de complementos listos para usar para soluciones y software de comercio electrónico.
Haga clic aquí para descubrirlos.
Enviar SMS
Este punto final le permite enviar un SMS desde su teléfono móvil.Punto final:
Parámetros:
| Parámetro | Descripción |
|---|---|
| apikey | Requerido Su clave API única. |
| recipients | Requerido El número de teléfono del destinatario. |
| message | Requerido El mensaje a enviar (sin límite de 160 caracteres). |
| port |
Define el puerto SIM a utilizar para enviar los SMS: 1, 2, o déjelo vacío. Si se deja vacío, el SMS se enviará automáticamente utilizando el puerto SIM disponible. Este parámetro está disponible a partir de la versión de Android 4.1.15.0 y funciona cuando la aplicación está en el primer plano (primer plano). |
| shorturl | 1 = convertir URL en enlaces cortos 0 o vacío = sin conversión |
| sIdentifiant | Seleccione el teléfono conectado que envía el SMS. Deje este campo en blanco para el primer dispositivo disponible. Requiere la aplicación 3.0.35.3 o superior. |
| sendwa | 1 = enviar por WhatsApp. |
| sendsms | 1 = enviar por SMS (predeterminado si está vacío). Establecer en 0 para bloquear SMS. |
| encrypt_message | Sí = el destinatario necesita una clave para descifrar. Más información |
| schedule_timestamp | Marca de tiempo UNIX (GMT 0) desde la que debe enviarse el SMS. |
Ejemplo:
OBTENER https://api.smsmobileapi.com/sendsms?apikey=YOUR_API_KEY&recipients=+1234567890&message=HelloWorld
Reenviar un SMS no enviado
Este punto final de API se utiliza para reenviar un SMS no enviado (solo si el mensaje tiene un estado de error).
Punto final:
Parámetro:
| Parámetro | Descripción |
|---|---|
| guid | Requerido GUID del mensaje a reenviar. |
Ejemplo:
OBTENER https://api.smsmobileapi.com/resend/?apikey=SU_CLAVE_API&guid=GUID_DEL_MENSAJE
Registro de SMS enviados desde la API
Este punto final de API se utiliza para recuperar el registro de mensajes SMS enviados a través de la API.
Punto final:
Parámetro:
| Parámetro | Descripción |
|---|---|
| apikey | Requerido Su clave API. |
| guid_message | Filtrar por el identificador único del mensaje. |
| before | Recuperar mensajes enviados antes de esta marca de tiempo o GUID. |
| error_api | 1 = lista de SMS con error de solicitud de API. |
| error_mobile | 1 = lista de SMS con error de procesamiento móvil. |
| keyword | Filtrar por número de destinatario o contenido del mensaje. |
Ejemplo:
OBTENER https://api.smsmobileapi.com/log/sent/sms?apikey=SU_CLAVE_API
Lista de SMS enviados desde el móvil
Este punto final de la API se utiliza para listar los mensajes SMS enviados desde su dispositivo móvil y sincronizados con su cuenta de SMSMobileAPI.
Importante: Esta función está disponible a partir de la versión de Android. 4.1.20.
Importante: Esta característica es no está habilitado por defecto en la aplicación de Android.
Privacidad: Toda la información sincronizada es anónima, confidencial y se maneja de forma segura.
Límite de historial: Esta API siempre devuelve datos del último 7 días solo.
Nota: Si envía SMS utilizando el punto final de la API estándar https://api.smsmobileapi.com/sendsms/Estos SMS también pueden aparecer en esta lista porque se envían físicamente desde su dispositivo móvil.
Punto final:
Parámetros:
| Parámetro | Descripción |
|---|---|
| apikey | Requerido Su clave API. |
| date | Opcional. Filtro de fecha exacta en YYYY-MM-DD formato. |
| date_from | Opcional. Fecha de inicio del período en YYYY-MM-DD formato. |
| date_to | Opcional. Fecha de finalización del período en YYYY-MM-DD formato. |
| period | Opcional. Filtro de período predefinido. Valores permitidos: today, yesterday, last_24h, last_3days, last_7days. |
| number | Opcional. Filtrar por número de teléfono del destinatario. |
| sIdentifiant | Opcional. Filtrar por identificador móvil. |
| message | Opcional. Filtrar por contenido de SMS. |
| search | Opcional. Búsqueda global en sIdentifiant, number, message, mobile_date_formatted, y synchro_time. |
| sort_by | Opcional. Campo de ordenación. Valores permitidos: sIdentifiant, number, message, mobile_date_ms, mobile_date_formatted, synchro_time. |
| sort_order | Opcional. Orden de clasificación: ASC o DESC. |
| limit | Opcional. Número máximo de filas devueltas. Valor máximo permitido: 200. |
Campos devueltos:
| Campo | Descripción |
|---|---|
| sIdentifiant | Identificador móvil vinculado al SMS enviado. |
| number | Número de teléfono del destinatario. |
| message | Contenido del SMS. |
| mobile_date_ms | Marca de tiempo del SMS original en milisegundos. |
| mobile_date_formatted | Fecha formateada recibida desde el dispositivo móvil. |
| synchro_time | Fecha y hora en que el SMS se sincronizó con SMSMobileAPI. |
Ejemplo:
OBTENER https://api.smsmobileapi.com/log/sent/frommobile/?apikey=YOUR_API_KEY
Ejemplo con filtros:
GET https://api.smsmobileapi.com/log/sent/frommobile/?apikey=YOUR_API_KEY&date=2026-03-13&number=32470000000&sort_by=synchro_time&sort_order=DESC
Ejemplo con período predefinido:
GET https://api.smsmobileapi.com/log/sent/frommobile/?apikey=YOUR_API_KEY&period=last_7days&limit=200
SMS recibido
Este punto final de API se utiliza para recuperar mensajes SMS recibidos en el teléfono inteligente.
Punto final:
Parámetro:
| Parámetro | Descripción |
|---|---|
| apikey | Requerido La clave API que tienes o recibirás. |
| sIdentifiantPhone | Aislar un teléfono vinculado a los SMS recibidos. |
| after_timestamp_unix | Lista de SMS recibidos según una marca de tiempo UNIX. |
| onlyunread | "sí" = listar sólo los SMS no marcados como leídos (estado API). |
Ejemplo:
OBTENER https://api.smsmobileapi.com/getsms/?apikey=SU_CLAVE_API
Marcar los mensajes SMS recibidos como leídos
Este punto final de API se utiliza para marcar un mensaje SMS recibido como leído en el Solo estado de API.
Esto no cambia el estado de lectura en el teléfono inteligente.
Punto final:
Parámetro:
| Parámetro | Descripción |
|---|---|
| apikey | Requerido La clave API que tienes o recibirás. |
| guid_message | Requerido GUID del mensaje a marcar como leído. |
Ejemplo:
OBTENER https://api.smsmobileapi.com/getsms/set-read/?apikey=YOUR_APIKEY&guid_message=GUID_MESSAGE
Actualizar alias de SMS
Este punto final de la API se utiliza para actualizar el alias de un SMS recibido mediante su GUID.
Nota: El alias El parámetro puede estar vacío. En ese caso, se borrará el alias.
Punto final:
Parámetros:
| Parámetro | Descripción |
|---|---|
| apikey | Requerido Su clave API. |
| guid | Requerido GUID del SMS recibido para actualizar. |
| alias | Requerido Alias que se asignará a este SMS. Este valor puede estar vacío para borrar el alias actual. |
Ejemplo:
OBTENER https://api.smsmobileapi.com/getsms/update/?apikey=TU_CLAVE_API&guid=GUID_DEL_MENSAJE&alias=JohnDoe
Ejemplo para borrar el alias:
OBTENER https://api.smsmobileapi.com/getsms/update/?apikey=TU_CLAVE_API&guid=GUID_DEL_MENSAJE&alias=
Eliminar SMS
Este punto final de API se utiliza para eliminar mensajes SMS del registro del servidor de SMS Mobile API.
Punto final:
Parámetro:
| Parámetro | Descripción |
|---|---|
| apikey | Requerido La clave API que tienes. |
| guid_message | El ID único del mensaje que se eliminará. |
| date_start | Si se usa solo, elimina todos los mensajes del día especificado. |
| date_start and date_end | Combinado para eliminar mensajes dentro de un período específico. |
Ejemplo:
OBTENER https://api.smsmobileapi.com/deletesms/?apikey=SU_CLAVE_API
Nota: Los SMS eliminados solo se almacenan en los registros del servidor. Los SMS del dispositivo no se eliminarán.
Lista de conversaciones SMS
Este punto final de la API se utiliza para listar las conversaciones de SMS vinculadas a su cuenta.
Cada conversación se agrupa por número de teléfono y contiene los mensajes SMS entrantes y salientes relacionados.
Nota: El punto de partida de la conversación está definido por el origineConversation parámetro:
- received: las conversaciones se detectan primero a partir de los SMS recibidos en logsmsreceive
- sent: las conversaciones se detectan primero a partir de los SMS enviados en logsmssent
Nota: Si numero No se proporciona, la API devuelve solo las últimas conversaciones. Por defecto, la última 20 Se devuelven las conversaciones.
Nota: Para SMS salientes, si timearea_of_message está disponible (ejemplo: UTC+02), la fecha mostrada se convierte automáticamente utilizando este valor. Esta fecha convertida también se utiliza para la ordenación.
Nota: Si resume=1, solo se devuelven los mensajes más recientes de cada conversación. Usar resume_line_how para definir cuántos mensajes recientes deben incluirse.
Punto final:
Parámetros:
| Parámetro | Descripción |
|---|---|
| apikey | Requerido Su clave API. |
| origineConversation | Requerido Define el punto de inicio del listado de conversaciones. Valores permitidos: received o sent. |
| numero | Opcional Filtra el resultado para que solo muestre un número de teléfono específico. |
| date_from | Opcional Filtro de fecha de inicio para conversaciones y mensajes. Formato aceptado: YYYY-MM-DD o un valor de fecha y hora completo. |
| date_to | Opcional Filtro de fecha de finalización para conversaciones y mensajes. Formato aceptado: YYYY-MM-DD o un valor de fecha y hora completo. |
| sort | Opcional Orden de clasificación para las conversaciones. Valores permitidos: DESC o ASC. Por defecto: DESC. |
| limit | Opcional Número máximo de conversaciones a devolver cuando numero No se proporciona. Predeterminado: 20. |
| resume | Opcional Si se establece en 1, solo se devuelven los mensajes más recientes de cada conversación. |
| resume_line_how | Opcional Número de mensajes más recientes que se deben devolver por conversación cuando resume=1. Por defecto: 1. |
Detalles del comportamiento:
- Los SMS entrantes se leen desde logsmsreceive.
- Los SMS salientes se leen desde logsmssent.
- Los mensajes entrantes siempre regresan direction = "incoming".
- Los mensajes salientes siempre regresan direction = "outgoing".
- El alias de contacto se toma de logsmsreceive.alias cuando esté disponible.
- Para los SMS entrantes, el SID móvil proviene de sIdentifiant_pour_read.
- Para los SMS salientes, el SID móvil proviene de send_from_mobile_sIdentifiant.
- Para los SMS salientes, la fecha mostrada se ajusta con timearea_of_message si este campo no está vacío.
Ejemplo 1: Lista de las últimas conversaciones de los SMS recibidos:
GET https://api.smsmobileapi.com/conversation/sms/list/?apikey=YOUR_API_KEY&origineConversation=received
Ejemplo 2 - Listar las últimas conversaciones de los SMS enviados:
OBTENER https://api.smsmobileapi.com/conversation/sms/list/?apikey=YOUR_API_KEY&origineConversation=sent
Ejemplo 3 - Filtrar un número de teléfono específico:
OBTENER https://api.smsmobileapi.com/conversation/sms/list/?apikey=YOUR_API_KEY&origineConversation=received&numero=32470000001
Ejemplo 4 - Filtrar por rango de fechas:
GET https://api.smsmobileapi.com/conversation/sms/list/?apikey=YOUR_API_KEY&origineConversation=received&date_from=2026-03-01&date_to=2026-03-31
Ejemplo 5 - Modo reanudar con los últimos 3 mensajes por conversación:
OBTENER https://api.smsmobileapi.com/conversation/sms/list/?apikey=YOUR_API_KEY&origineConversation=sent&resume=1&resume_line_how=3
Ejemplo de respuesta exitosa:
{ "éxito": verdadero, "conversación de origen": "recibido", "reanudar": 0, "cómo_línea_reanudar": nulo, "conversaciones": [ { "número_de_teléfono": "+10470000001", "alias_de_contacto": "John Doe", "mensajes": [ { "dirección": "entrante", "id_mensaje": "msg_1001", "fecha": "2026-03-13 08:45:12", "marca_de_tiempo_utc": "2026-03-13T08:45:12Z", "mensaje": "Hola, me gustaría obtener más información.", "estado": "recibido", "sid_móvil": "sid_de_dispositivo_1" }, { "dirección": "saliente", "id_mensaje": "msg_1002", "fecha": "2026-03-13 10:46:03", "timestamp_utc": "2026-03-13T08:46:03Z", "message": "Por supuesto, ¿qué le gustaría saber?", "status": "sent", "mobile_sid": "device_sid_2" } ] } ] }
Campos de respuesta:
| Campo | Descripción |
|---|---|
| success | Indica si la solicitud fue exitosa. |
| origineConversation | El modo inicial utilizado para crear la lista de conversaciones. |
| resume | Indica si el modo de reanudación está habilitado. |
| resume_line_how | Número de líneas más recientes que se devuelven por conversación cuando el modo de reanudación está activado. |
| conversations | Variedad de conversaciones. |
| phone_number | Número de teléfono utilizado para identificar la conversación. |
| contact_alias | Alias vinculado al número de teléfono cuando esté disponible. |
| messages | Conjunto de mensajes SMS dentro de la conversación. |
| direction | incoming para SMS recibidos, outgoing para SMS enviados. |
| message_id | Identificador único del mensaje. |
| date | Mostrar fecha del mensaje. Para los SMS salientes, este valor se puede ajustar mediante timearea_of_message. |
| timestamp_utc | Marca de tiempo UTC del mensaje. |
| message | Contenido del mensaje. |
| status | received para SMS entrantes, sent para SMS salientes. |
| mobile_sid | SID del dispositivo móvil que recibió o envió el mensaje. |
Ejemplo de error:
{ "éxito": false, "error": "Falta el parámetro obligatorio: apikey" }
Notas:
- Si numero Si se proporciona, la API devuelve únicamente la conversación vinculada a este número de teléfono.
- Si numero Si no se proporciona, la API devuelve las últimas conversaciones según el modo de origen seleccionado.
- Los mensajes entrantes y salientes se combinan en una única línea de tiempo para cada número de teléfono.
- La clasificación de mensajes salientes tiene en cuenta la fecha local ajustada cuando timearea_of_message Está disponible.
- El modo de reanudación es útil para paneles de control, widgets, vistas previas y resúmenes de conversaciones.
Puerta de enlace – Lista de móviles conectados
Listado de móviles conectados a tu Puerta de enlace de SMS.
Punto final:
Parámetros:
| Parámetro | Descripción |
|---|---|
| apikey | Requerido Su clave API. |
| sid | Filtrar por SID exacto (sIdentifiant_pour_check). |
| search | Buscar en campos (sid, fecha, batería, versión, etiqueta...). |
Ejemplo:
OBTENER https://api.smsmobileapi.com/gateway/mobile/list/?apikey=SU_CLAVE_API
Puerta de enlace: Actualizar una etiqueta móvil
Actualizar la etiqueta (nom_reference) de un móvil conectado.
Punto final:
Parámetros:
| Parámetro | Descripción |
|---|---|
| apikey | Requerido Su clave API. |
| sid | Requerido El SID del dispositivo (sIdentifiant_pour_check). |
| label | Nueva etiqueta |
| phone_number | Nuevo número de teléfono |
Ejemplo:
OBTENER https://api.smsmobileapi.com/gateway/mobile/update/?apikey=YOUR_API_KEY&sid=SID&label=OfficePhone
Importante: La etiqueta es obligatoria pero puede estar vacía (etiqueta=).
Puerta de enlace – Eliminar un móvil conectado
Eliminar un móvil conectado de su puerta de enlace (elimina todas las filas del historial para este SID).
Punto final:
Parámetros:
| Parámetro | Descripción |
|---|---|
| apikey | Requerido Su clave API. |
| sid | Requerido El SID del dispositivo (sIdentifiant_pour_check). |
Ejemplo:
OBTENER https://api.smsmobileapi.com/gateway/mobile/delete/?apikey=YOUR_API_KEY&sid=SID
Webhook – SMS recibidos
Este sistema de webhook envía una solicitud POST a la URL configurada cada vez que se recibe un SMS. El sistema garantiza actualizaciones en tiempo real al enviar los detalles del SMS a la URL del webhook especificado.
Cómo configurar el webhook en el panel de control
Siga estos pasos para configurar la URL de su webhook en el panel de control:
- Inicie sesión en su cuenta en Panel de control de API de SMS para dispositivos móviles.
- Navegar hasta el Configuración de webhook sección.
- Ingrese la URL de su webhook (por ejemplo,
https://example.com/webhook-endpoint). - Haga clic en el Guardar Webhook botón.
- Una vez guardado, el sistema comenzará a enviar detalles SMS a la URL configurada.
Carga útil del webhook
Cuando se recibe un SMS, el sistema envía la siguiente carga JSON a la URL de su webhook:
{ "date": "2025-01-20", "hour": "10:15:00", "time_received": "2025-01-20 10:14:50", "message": "Hola, esto es una prueba.", "number": "+123456789", "guid": "abcde12345" }
Campos de carga útil:
- fecha: Fecha en la que se agregó el SMS (AAAA-MM-DD).
- hora: Hora en que se añadió el SMS (HH:mm:ss).
- tiempo_recibido: Hora en que se recibió el SMS.
- mensaje: Contenido del SMS.
- número: Número de teléfono del remitente.
- guía: Identificador único del SMS.
Ejemplo de punto final de webhook
Su servidor debería estar listo para manejar solicitudes POST entrantes. A continuación, se muestra un ejemplo de script PHP para procesar la carga útil del webhook:
Probando el Webhook
Para probar la configuración de su webhook, utilice herramientas como:
Solución de problemas
- Asegúrese de que la URL del webhook sea correcta y de acceso público.
- Verifique que su servidor esté devolviendo un código de estado HTTP 200 para solicitudes exitosas.
- Revise los registros de su servidor para detectar cualquier error en el procesamiento de la carga útil.
SMS enriquecidos
Muy prontoAutenticación
La API de SMSMobile admite dos métodos de autenticación: utilizando una clave API simple o el protocolo OAuth2 con un ID de cliente y un secreto de cliente.
1. Autenticación de clave API
Este método requiere una clave API que se puede incluir como parámetro en una solicitud GET o POST.
2. Autenticación OAuth2
OAuth2 proporciona un método de autenticación más seguro.
Utilice un ID de cliente y un secreto de cliente para obtener un token de acceso y luego inclúyalo en el Autorización encabezamiento.
El client_id y el client_secret están disponibles en su panel de control.
Descargue la aplicación móvil ahora o
Accede a tu panel de control.
Obtención de un token de acceso
curl -X POST https://api.smsmobileapi.com/oauth2/token \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials" \
-d "client_id=YOUR_CLIENT_ID" \
-d "client_secret=YOUR_CLIENT_SECRET"
Usando el token de acceso:
curl -X POST https://api.smsmobileapi.com/sendsms \
-H "Autorización: Portador YOUR_ACCESS_TOKEN" \
-H "Tipo de contenido: aplicación/x-www-form-urlencoded" \
-d "destinatarios=+1234567890" \
-d "mensaje=Hola"
¿Qué método deberías utilizar?
- Usar Autenticación de clave API para integraciones rápidas y sencillas.
- Usar Autenticación OAuth2 para una mayor seguridad y escalabilidad.
Enviar SMS
URL WSDL
Parámetros:
- message: El mensaje a enviar.
- apikey: La clave API que tienes o recibirás.
Ejemplo
require_once "lib/nusoap.php";
$client = new nusoap_client("https://api.smsmobileapi.com/sendsms/wsdl/sendsms.wsdl", true);
$error = $client->getError();
$result = $client->call("sendSms", array("recipients" =>$_GET['recipients'],"message" =>$_GET['message'],"apikey" =>$_GET['apikey']));
print_r($result);
Enviar SMS y WhatsApp
Comando básico de cURL
curl -X POST https://api.smsmobileapi.com/sendsms/ \
-d "recipients=PHONE_NUMBER" \
-d "message=YOUR_MESSAGE" \
-d "apikey=YOUR_API_KEY"
-d "sendwa=1"
-d "sendsms=1"
Enviar SMS y WhatsApp
Utilice nuestro módulo oficial de Python: https://smsmobileapi.com/python/
import requests
url = "https://api.smsmobileapi.com/sendsms/"
payload = {"recipients":"PHONE_NUMBER","message":"YOUR_MESSAGE","apikey":"YOUR_API_KEY"}
response = requests.post(url, data=payload)
print(response.text)
API móvil de SMS: SDK PHP (Composer)
El compositor requiere smsmobileapi/sdk
GitHub: https://github.com/SmsMobileApi/smsmobileapi-php/tree/main
Enviar SMS y WhatsApp
const url = "https://api.smsmobileapi.com/sendsms/";
const data = {recipients:"PHONE_NUMBER", message:"YOUR_MESSAGE", apikey:"YOUR_API_KEY"};
fetch(url,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams(data)})
.then(r=>r.text()).then(console.log);
Enviar SMS y WhatsApp
const axios = require("axios");
axios.post("https://api.smsmobileapi.com/sendsms/", {recipients:"PHONE_NUMBER", message:"YOUR_MESSAGE", apikey:"YOUR_API_KEY"})
.then(r=>console.log(r.data));
Enviar SMS y WhatsApp
require "net/http"
require "uri"
uri = URI.parse("https://api.smsmobileapi.com/sendsms/")
req = Net::HTTP::Post.new(uri)
req.set_form_data({"recipients"=>"PHONE_NUMBER","message"=>"YOUR_MESSAGE","apikey"=>"YOUR_API_KEY"})
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true){|http| http.request(req)}
puts res.body

Este problema surge de un proceso que intenta ejecutarse en segundo plano cuando la aplicación no se inicia de forma activa. Sin embargo, debido a las medidas de optimización de la batería de Android, que varían según las distintas versiones, es posible que este proceso en segundo plano no se inicie correctamente. La optimización de la batería de Android está diseñada para limitar la actividad en segundo plano de las aplicaciones para conservar la vida útil de la batería, lo que puede afectar inadvertidamente a las aplicaciones que requieren procesos en segundo plano para funcionar correctamente.
Para solucionar este problema, los usuarios pueden configurar manualmente sus ajustes de Android para permitir que SmsMobileApi utilice recursos sin restricciones.
Esto implica ajustar la configuración de optimización de la batería para la aplicación específica, básicamente indicando a Android que SmsMobileApi puede ejecutarse en segundo plano y utilizar los recursos según sea necesario. Al hacerlo, la aplicación debería poder enviar y recibir mensajes SMS automáticamente incluso cuando no sea la aplicación activa en primer plano. Este ajuste garantiza que el proceso en segundo plano necesario pueda funcionar sin interrupciones, evitando las funciones de optimización de la batería que, de lo contrario, podrían impedir su ejecución adecuada.


Preguntas frecuentes para desarrolladores
¡Empiece a utilizar SMSmobileAPI hoy mismo!
Experimente la libertad y flexibilidad de administrar sus servicios de SMS desde cualquier lugar. Descargue nuestra aplicación móvil ahora y dé el primer paso hacia una integración perfecta de SMS.
Descargar la aplicación