Si estás construyendo un producto SaaS, un panel de operaciones o un script interno, tarde o temprano necesitas enviar notificaciones automatizadas: alertas de stock, confirmaciones de pedido, avisos de error en servidores o recordatorios a clientes.
WhatsApp suele ser el canal con mayor tasa de lectura, pero montar tu propia infraestructura de mensajería es costoso y frágil. La alternativa pragmática es usar una API en la nube que envíe mensajes desde tu propio número, sin depender de un bot genérico.
En este tutorial verás cómo hacerlo con Python y MessageAPI: un flujo completo, listo para cron jobs, workers o funciones serverless.
Qué vas a construir
Un script Python que:
- Se autentica con una API key.
- Envía un mensaje de texto por WhatsApp a un destinatario.
- Puede reutilizarse en un bucle de alertas o tareas programadas.
No necesitas SDK propietario: solo HTTP y la librería requests.
Requisitos previos
- Python 3.9 o superior.
- Cuenta en MessageAPI con WhatsApp conectado (escaneo QR en Settings).
- Una API key generada en Settings.
- El número del destinatario en formato internacional sin
+ni espacios (ejemplo:5491123456789).
Paso 1 — Instalar dependencias
pip install requests
Guarda tu API key en una variable de entorno; nunca la subas a Git:
export MESSAGEAPI_KEY="msg_tu_clave_aqui"
Paso 2 — Enviar tu primera notificación
MessageAPI expone un endpoint REST JSON. Crea un archivo notify.py:
import os
import requests
API_KEY = os.environ["MESSAGEAPI_KEY"]
API_URL = "https://msgapi.cloud/api/v1/send"
def send_whatsapp(recipient: str, text: str) -> dict:
response = requests.post(
API_URL,
headers={
"X-API-Key": API_KEY,
"Content-Type": "application/json",
},
json={"recipient": recipient, "text": text},
timeout=30,
)
response.raise_for_status()
return response.json()
if __name__ == "__main__":
result = send_whatsapp(
recipient="5491123456789",
text="✅ Backup completado correctamente a las 03:00 UTC",
)
print("Enviado. messageId:", result.get("messageId"))
Ejecuta el script. Si WhatsApp está conectado y tu suscripción activa, el mensaje llegará en segundos desde tu número.
Paso 3 — Automatizar alertas (cron o worker)
El patrón típico es consultar tu sistema y notificar solo cuando hay algo que reportar:
def check_disk_and_notify():
usage_percent = get_disk_usage() # tu lógica
if usage_percent >= 90:
send_whatsapp(
recipient="5491123456789",
text=f"⚠️ Disco al {usage_percent}%. Revisar servidor prod-01.",
)
Programa la función con cron, GitHub Actions, Celery o AWS Lambda. MessageAPI responde con un messageId que puedes usar para auditar envíos.
Paso 4 — Manejo de errores recomendado
En producción, distingue estos casos:
- 401 — API key inválida o revocada.
- 403 — Suscripción inactiva o límite de destinatarios (plan Personal).
- 429 — Límite diario de mensajes alcanzado.
- 400 — WhatsApp desconectado o destinatario inválido.
try:
send_whatsapp(recipient, text)
except requests.HTTPError as exc:
print("Error HTTP:", exc.response.status_code, exc.response.text)
Consulta el estado de conexión con GET /api/v1/status antes de envíos masivos.
Alternativa mínima con GET (sin JSON)
Para pruebas rápidas también puedes usar el endpoint compatible con TextMeBot:
import urllib.parse
import requests
url = (
"https://msgapi.cloud/send.php?"
+ urllib.parse.urlencode({
"recipient": "5491123456789",
"apikey": API_KEY,
"text": "Hola desde Python (GET)",
})
)
requests.get(url, timeout=30).raise_for_status()
Conclusión
Con unas pocas líneas de Python tienes notificaciones por WhatsApp sin mantener sesiones, proxies ni parsers de protocolo. El valor está en resolver un problema concreto — alertas, confirmaciones, recordatorios — y publicar la solución donde tus usuarios (y Google) puedan encontrarla.
Prueba MessageAPI gratis
Prueba msgapi.cloud gratis con 500 créditos iniciales y replica este tutorial en 3 minutos.