Tus SMS se envían desde tu propio móvil.Descubre cómo
PLATAFORMAArquitectura API-firstEmparejamiento seguro de dispositivoVisibilidad de entregaControl multi-dispositivoDocumentación versionada
Centro para desarrolladores/API de correo electrónico

MAIL · 4 operaciones documentadas

Documentación de la API de correo electrónico

Envía email sin compartir contraseñas de buzón, recupera contenido del buzón y verifica el estado de baja.

Canales conectados de correo y mensajería sincronizados mediante la nube
URL base RESThttps://api.smsmobileapi.com

Respuestas JSON · HTTPS requerido · UTF-8

Conecte su clave API

Conecte una vez y luego pruebe endpoints para SMS, llamadas, notificaciones, WhatsApp y correo.

Comienza aquí

Tu primera solicitud en cuatro pasos

1

Configurar un buzón en el panel de control.

2

Copiar tanto la apikey como la apikeybox del buzón.

3

Enviar primero un correo electrónico sencillo de texto.

4

Añade archivos adjuntos o imágenes incrustadas solo después de que la solicitud básica funcione.

WEBHOOK V2 PARA ESTA API

Suscríbase solo a los eventos móviles que necesita su flujo de trabajo.

2 tipos de eventos

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.

email.sent

Correo enviado

Se creó una solicitud de envío de correo electrónico por SMSMobileAPI.

email.received

Correo recibido

Un buzón conectado recibió un correo electrónico.

Autenticación

Mantén las credenciales en tu servidor

Los endpoints de correo electrónico requieren el apikey de la cuenta y el apikeybox específico del buzón. Almacene ambas credenciales en el servidor y oculte su contenido en los registros de la aplicación.

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
Protección de la integración

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

  1. Previsualiza los contadores con action=preview. No se necesita request_id y no se eliminan registros.
  2. Generar un request_id único para una nueva eliminación, por ejemplo un UUID. Guárdalo antes de enviar action=delete.
  3. 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.
  4. 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.

POST · clave API
curl -X POST "https://api.smsmobileapi.com/delete-history-email/" \
  --data-urlencode "apikey=YOUR_API_KEY" \
  -d "action=delete" -d "include_linked=0" \
  -d "request_id=6d54ac58-41f1-4fbc-9a39-6e6c86089451"
PUESTOS · OAuth2
curl -X POST "https://api.smsmobileapi.com/delete-history-email/" \
  -H "Authorization: Bearer YOUR_OAUTH_ACCESS_TOKEN" \
  -d "action=delete" -d "include_linked=0" \
  -d "request_id=6d54ac58-41f1-4fbc-9a39-6e6c86089451"
OBTENER · estado
curl -G "https://api.smsmobileapi.com/delete-history-email/" \
  --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.

JSON · HTTP 202
{
    "result": {
        "error": 0,
        "history": "email",
        "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.
CORREO

Enviar un correo electrónico

#
ENDPOINThttps://api.smsmobileapi.com/sendemail/

Envía correo electrónico en texto sin formato o HTML desde un buzón configurado.

Cuándo usarlo

Utilícelo para correo electrónico transaccional u operativo desde su aplicación.

Parámetros

NombreTipoRequisitoDescripción
apikey cadena Obligatorio La clave API de su cuenta.
apikeybox cadena Obligatorio Clave API del buzón configurado.
sender_name cadena Obligatorio Nombre para mostrar del remitente.
sender_email correo electrónico Obligatorio Dirección de correo electrónico del remitente.
recipient_email correo electrónico Obligatorio Dirección del destinatario.
mail_subject cadena Obligatorio Asunto del correo electrónico.
mail_body cadena Obligatorio Texto plano o cuerpo de HTML.
allow_self_signed sí | no Obligatorio Establecer en sí solo cuando el servidor de correo configurado use un certificado interno autofirmado confiable.
unsubscribe 1 Opcional Añade términos de baja y un enlace.
email_cc1 correo electrónico Opcional Primer destinatario CC opcional.
email_cc2 correo electrónico Opcional Segundo destinatario opcional en CC.
email_cc3 correo electrónico Opcional Destinatario CC opcional tercero.
attachmentBase64 Base64 Opcional Contenido del adjunto codificado en Base64.
attachmentBase64_name_1 nombre de archivo Opcional Nombre original del archivo adjunto con extensión, por ejemplo factura.pdf. Requerido cuando attachmentBase64 tiene un valor.
charset cadena Opcional Conjunto de caracteres; por defecto UTF-8.
embeddedImage URL HTTPS Opcional Imagen para incrustar en el correo electrónico.
embeddedImage_cid cadena Opcional ID de contenido referenciado desde el cuerpo HTML.
format cadena Opcional Formato de respuesta solicitado.
reply_name cadena Opcional Nombre para mostrar en la dirección de respuesta.
reply_email correo electrónico Opcional Dirección de respuesta.

Ejemplo de solicitud

rizo
curl -X POST "https://api.smsmobileapi.com/sendemail/" \
  -d "apikey=YOUR_API_KEY" \
  -d "apikeybox=YOUR_MAILBOX_KEY" \
  --data-urlencode "sender_name=Example Team" \
  -d "sender_email=team@example.com" \
  -d "recipient_email=customer@example.net" \
  --data-urlencode "mail_subject=Order confirmation" \
  --data-urlencode "mail_body=Your order has been confirmed." \
  --data-urlencode "attachmentBase64=BASE64_FILE_CONTENT" \
  -d "attachmentBase64_name_1=invoice.pdf" \
  -d "allow_self_signed=no"

¿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 ↑
Bueno saber
  • Prefiere POST ya que los cuerpos de los correos electrónicos pueden ser extensos.
  • Si se proporciona attachmentBase64, es obligatorio attachmentBase64_name_1 que debe incluir la extensión del archivo.
  • Los adjuntos en Base64 pueden aumentar el tamaño de las solicitudes; aplica límites de tamaño sensatos en tu aplicación.
OBTENER

Recupere correos electrónicos

#
ENDPOINThttps://api.smsmobileapi.com/getemail/

Recupera mensajes de una carpeta de buzón configurada.

Cuándo usarlo

Utilícelo para sincronizar correos entrantes en un servicio de atención o flujo de trabajo de aplicación.

Parámetros

NombreTipoRequisitoDescripción
apikey cadena Obligatorio La clave API de su cuenta.
apikeybox cadena Obligatorio Clave API del buzón.
mbox cadena Obligatorio Carpeta del buzón, por ejemplo INBOX.
start entero Obligatorio Índice inicial; usa 0 para la primera página.

Ejemplo de solicitud

rizo
curl "https://api.smsmobileapi.com/getemail/?apikey=YOUR_API_KEY&apikeybox=YOUR_MAILBOX_KEY&mbox=INBOX&start=0"

¿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 ↑
Bueno saber
  • Las respuestas incluyen asunto, remitente, destinatario, cuerpo, marca temporal y detalles de adjuntos disponibles.
OBTENER

Comprobar contactos dados de baja

#
ENDPOINThttps://api.smsmobileapi.com/email/unsubscribed/

Comprueba los registros de bajas generados por correos electrónicos enviados a través de la plataforma.

Cuándo usarlo

Úselo antes de enviar campañas y sincronizar listas de supresión.

Parámetros

NombreTipoRequisitoDescripción
apikey cadena Obligatorio La clave API de su cuenta.
apikeybox cadena Obligatorio Clave API del buzón.
email correo electrónico Opcional Filtrar un contacto. Un resultado vacío significa que no se encontró registro de baja.

Ejemplo de solicitud

rizo
curl "https://api.smsmobileapi.com/email/unsubscribed/?apikey=YOUR_API_KEY&apikeybox=YOUR_MAILBOX_KEY&email=customer@example.net"

¿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 ↑
Bueno saber
  • Mantén tu propia base de datos de destinatarios sincronizada con los resultados de bajas.
  • Usted sigue siendo responsable de las normas aplicables de anti-spam y privacidad.
POSTE · GET

Historial de emails enviados claro

#
ENDPOINThttps://api.smsmobileapi.com/delete-history-email/

Borra los registros de envío de correo para esta clave API en todos los buzones. No elimina mensajes en un buzón. No se requiere apikeybox.

Cuándo usarlo

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

NombreTipoRequisitoDescripció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

rizo
curl -X POST "https://api.smsmobileapi.com/delete-history-email/" \
  --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.

POST · clave API
curl -X POST "https://api.smsmobileapi.com/delete-history-email/" \
  --data-urlencode "apikey=YOUR_API_KEY" \
  -d "action=delete" -d "include_linked=0" \
  -d "request_id=6d54ac58-41f1-4fbc-9a39-6e6c86089451"
PUESTOS · OAuth2
curl -X POST "https://api.smsmobileapi.com/delete-history-email/" \
  -H "Authorization: Bearer YOUR_OAUTH_ACCESS_TOKEN" \
  -d "action=delete" -d "include_linked=0" \
  -d "request_id=6d54ac58-41f1-4fbc-9a39-6e6c86089451"
OBTENER · estado
curl -G "https://api.smsmobileapi.com/delete-history-email/" \
  --data-urlencode "apikey=YOUR_API_KEY" \
  -d "action=status" \
  -d "request_id=6d54ac58-41f1-4fbc-9a39-6e6c86089451"

Ejemplo de respuesta

JSON
{
    "result": {
        "error": 0,
        "history": "email",
        "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 ↑
Bueno saber
  • 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.

HTTPCódigoQué hacer
400missing_parameterUn parámetro requerido está vacío o ausente. Comprueba la tabla de parámetros para el endpoint.
403invalid_apikeyLa clave API es desconocida, ha expirado o no está autorizada para la función solicitada.
429too_many_requestsLas solicitudes están llegando demasiado rápido. Espere y luego reintente con retroceso exponencial.
500server_errorEl servicio no pudo completar la solicitud. Guarda la respuesta y contacta con soporte si persiste.
Regla de reintentoReintente sólo respuestas transitorias 429 y 5xx. Comience tras 1 segundo, luego espere 2, 4 y 8 segundos.

¿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.

Contactar soporte API →