Antes de escribir Python, Node o PHP, a veces solo necesitas confirmar que la API funciona. cURL es la herramienta más directa: una línea en la terminal y el mensaje sale.
Este artículo cubre el caso de uso más buscado por DevOps y backend developers: enviar WhatsApp con cURL desde la terminal.
Requisitos
- Cuenta activa en MessageAPI con WhatsApp conectado.
- API key (Settings → Generate API key).
- Número destino en formato internacional sin
+(ej.14155552671).
Opción A — GET simple (ideal para pruebas)
curl -G "https://msgapi.cloud/send.php" \
--data-urlencode "recipient=5491123456789" \
--data-urlencode "apikey=msg_TU_CLAVE" \
--data-urlencode "text=Hola desde cURL"
Respuesta esperada:
{"success":true,"message":"Message sent","messageId":"..."}
Opción B — REST JSON (recomendado en producción)
curl -X POST "https://msgapi.cloud/api/v1/send" \
-H "X-API-Key: msg_TU_CLAVE" \
-H "Content-Type: application/json" \
-d '{"recipient":"5491123456789","text":"Alerta: deploy OK"}'
La API key también puede ir como header; evita dejarla en logs de shell compartidos.
Enviar imagen desde URL pública
curl -G "https://msgapi.cloud/send.php" \
--data-urlencode "recipient=5491123456789" \
--data-urlencode "apikey=msg_TU_CLAVE" \
--data-urlencode "file=https://example.com/factura.png" \
--data-urlencode "text=Adjuntamos tu comprobante"
Verificar estado de conexión
curl -H "X-API-Key: msg_TU_CLAVE" \
"https://msgapi.cloud/api/v1/status"
Si connected es false, reconecta WhatsApp en Settings antes de enviar.
Errores frecuentes
- 401 — Revisa que la API key esté activa y copiada completa.
- 403 SUBSCRIPTION_INACTIVE — Renueva trial o plan en Account.
- 400 WhatsApp not connected — Escanea el QR en Settings.
- Número mal formateado — Usa código de país + número, sin símbolos.
De la terminal a producción en minutos
Regístrate, conecta tu WhatsApp y prueba estos comandos con tu propia API key.