La API de ScanMessage permite integrar la detección de fraude por mensajes directamente en tu producto: tu backend envía un mensaje sospechoso y recibe un score de riesgo, las señales detectadas y una explicación en lenguaje simple. Esta guía cubre lo necesario para integrarla: autenticación, el endpoint de análisis, los campos de la solicitud y la respuesta, y los errores que puedes recibir.
Todas las solicitudes requieren un token enviado en el header Authorization con el esquema Bearer:
Authorization: Bearer tu_api_key
Por ahora la emisión de tokens es manual: escríbenos a hello@scanmessage.dev indicando el nombre de tu empresa y el volumen estimado de solicitudes, y te asignaremos una API key junto con un límite diario de uso.
Un token ausente, mal formado o inactivo siempre responde 401 — nunca se procesa un mensaje sin autenticación válida.
https://api.scanmessage.dev
/v1/analyzeAuthorization: Bearer <tu_api_key> Content-Type: application/json
Envía un JSON con el mensaje a analizar:
{
"message": "Tu cuenta sera bloqueada en 24h, verifica aqui: bit.ly/xyz123",
"channel": "sms",
"sender": "+573001234567"
}messagestring, requerido. Entre 10 y 5000 caracteres. El texto del mensaje sospechoso.channelstring, requerido. Uno de: "sms", "whatsapp". (La opción "No sé" de la interfaz web es solo para la UI; la API no la acepta.)senderstring, opcional. Número o identificador del remitente. Se almacena siempre con hash, nunca en texto plano.Una respuesta exitosa (200) devuelve:
{
"analysis_id": "b3f1...",
"cached": false,
"risk_score": 0.87,
"risk_level": "high",
"fraud_type": "phishing",
"confidence": "high",
"detected_language": "es",
"signals_found": [
{ "type": "urgency", "description": "Lenguaje de urgencia extrema." },
{ "type": "suspicious_url", "description": "El enlace no corresponde a un dominio verificado." }
],
"explanation": "Este mensaje combina...",
"recommendation": "No hagas clic en el enlace...",
"url_intelligence": []
}analysis_id y cached se incluyen para trazabilidad: si el mismo mensaje ya fue analizado recientemente, cached es true y la respuesta es inmediata.
Toda respuesta, exitosa o no, incluye un header X-Request-ID. Inclúyelo si nos escribes para reportar un problema con una solicitud puntual.
Todas las rutas usan el prefijo /v1. Si en el futuro publicamos una v2, la v1 seguirá funcionando durante un período de transición anunciado con anticipación.
curl -X POST https://api.scanmessage.dev/v1/analyze \
-H "Authorization: Bearer tu_api_key" \
-H "Content-Type: application/json" \
-d '{
"message": "Tu cuenta sera bloqueada en 24h, verifica aqui: bit.ly/xyz123",
"channel": "sms"
}'Escríbenos a hello@scanmessage.dev para solicitar tu API key, aumentar tu límite diario o resolver dudas técnicas de integración.