API Reference
La API REST de JSNH Engine Lab permite integrar cualquier módulo de validación en tu aplicación en minutos. Usa tu API key para autenticarte y empieza a hacer llamadas.
Base URL: https://jsnhengine.com/api/v1
Autenticación
Incluye tu API key en el header Authorization de cada request. También puedes usar el header x-api-key como alternativa.
# Con Authorization: Bearer
curl -X POST https://jsnhengine.com/api/v1/email-validator \
-H "Authorization: Bearer tu_api_key_aqui" \
-H "Content-Type: application/json" \
-d '{"email": "[email protected]"}'
# Con x-api-key
curl -X POST https://jsnhengine.com/api/v1/email-validator \
-H "x-api-key: tu_api_key_aqui" \
-H "Content-Type: application/json" \
-d '{"email": "[email protected]"}'401
API key inválida o ausente
402
Tokens insuficientes
429
Rate limit superado
Formato de respuesta
Todas las respuestas siguen el mismo formato JSON con los campos success, data y tokens_used.
Respuesta exitosa
{
"success": true,
"data": { ... },
"tokens_used": 1
}Respuesta de error
{
"success": false,
"error": "Descripción del error",
"code": "INSUFFICIENT_TOKENS"
}Los headers X-Tokens-Used, X-Tokens-Remaining-Daily y X-Tokens-Remaining-Paid están disponibles en cada respuesta.
/balance
Consulta el saldo de tokens de tu cuenta.
curl https://jsnhengine.com/api/v1/balance \ -H "Authorization: Bearer tu_api_key_aqui"
{
"success": true,
"data": {
"daily_tokens": 95,
"paid_tokens": 450,
"total": 545
}
}/modules
Lista todos los módulos disponibles con su endpoint y coste en tokens.
curl https://jsnhengine.com/api/v1/modules \ -H "Authorization: Bearer tu_api_key_aqui"
/batch
Procesa hasta 100 inputs en paralelo para cualquier módulo. Los tokens se descuentan solo por items procesados correctamente.
| Parámetro | Tipo | Descripción |
|---|---|---|
| module | string | Slug del módulo (ej: "email-validator") |
| inputs | string[] | Array de hasta 100 strings a procesar |
curl -X POST https://jsnhengine.com/api/v1/batch \
-H "Authorization: Bearer tu_api_key_aqui" \
-H "Content-Type: application/json" \
-d '{
"module": "email-validator",
"inputs": [
"[email protected]",
"invalid-email",
"[email protected]"
]
}'{
"success": true,
"data": {
"module": "email-validator",
"totalItems": 3,
"successCount": 3,
"errorCount": 0,
"totalTokensDeducted": 3,
"items": [
{ "index": 0, "input": "[email protected]", "status": "success", "result": {...}, "tokensUsed": 1 },
{ "index": 1, "input": "invalid-email", "status": "success", "result": {...}, "tokensUsed": 1 },
{ "index": 2, "input": "[email protected]", "status": "success", "result": {...}, "tokensUsed": 1 }
]
},
"tokens_used": 3
}/email-validator
1 tokenValida formato, sintaxis RFC 5322, dominio activo y detecta emails desechables.
Request
curl -X POST https://jsnhengine.com/api/v1/email-validator \
-H "Authorization: Bearer tu_api_key" \
-H "Content-Type: application/json" \
-d '{"email": "[email protected]"}'Campos de respuesta
| is_valid | boolean | Si el email es válido |
| domain | string | Dominio del email |
| is_disposable | boolean | Si es un email desechable |
| reason | string | Motivo del fallo (si aplica) |
/phone-validator
1 tokenValida número de teléfono, detecta país, tipo (móvil/fijo) y formato E.164.
Request
curl -X POST https://jsnhengine.com/api/v1/phone-validator \
-H "Authorization: Bearer tu_api_key" \
-H "Content-Type: application/json" \
-d '{"phone": "+34612345678"}'Campos de respuesta
| is_valid | boolean | Si el número es válido |
| country | string | País del número |
| type | string | mobile | landline | voip |
| e164 | string | Formato E.164 normalizado |
/url-checker
2 tokensVerifica si una URL es accesible, obtiene el código de estado HTTP y el título de la página.
Request
curl -X POST https://jsnhengine.com/api/v1/url-checker \
-H "Authorization: Bearer tu_api_key" \
-H "Content-Type: application/json" \
-d '{"url": "https://google.com"}'Campos de respuesta
| is_reachable | boolean | Si la URL responde |
| status_code | number | Código HTTP de respuesta |
| title | string | Título de la página (si disponible) |
| redirect_url | string | URL final tras redirecciones |
/ip-lookup
1 tokenGeolocalización de IP: país, ciudad, ISP, coordenadas y ASN.
Request
curl -X POST https://jsnhengine.com/api/v1/ip-lookup \
-H "Authorization: Bearer tu_api_key" \
-H "Content-Type: application/json" \
-d '{"ip": "8.8.8.8"}'Campos de respuesta
| country | string | País |
| city | string | Ciudad |
| isp | string | Proveedor de internet |
| lat / lon | number | Coordenadas geográficas |
/domain-validator
2 tokensValida formato de dominio, resuelve DNS (A/AAAA/MX) y verifica TLD válido.
Request
curl -X POST https://jsnhengine.com/api/v1/domain-validator \
-H "Authorization: Bearer tu_api_key" \
-H "Content-Type: application/json" \
-d '{"domain": "google.com"}'Campos de respuesta
| is_valid_format | boolean | Si el formato es correcto |
| is_active | boolean | Si el dominio tiene DNS activo |
| tld | string | TLD del dominio |
| has_mx | boolean | Si tiene registros MX |
/mx-checker
2 tokensResuelve registros MX, los ordena por prioridad y detecta el proveedor de email.
Request
curl -X POST https://jsnhengine.com/api/v1/mx-checker \
-H "Authorization: Bearer tu_api_key" \
-H "Content-Type: application/json" \
-d '{"domain": "gmail.com"}'Campos de respuesta
| has_mx_records | boolean | Si tiene registros MX |
| records | array | Lista de registros MX con prioridad |
| primary_provider | string | Proveedor detectado (Google, Microsoft...) |
/disposable-email
1 tokenDetecta si un email pertenece a un proveedor de emails desechables o temporales.
Request
curl -X POST https://jsnhengine.com/api/v1/disposable-email \
-H "Authorization: Bearer tu_api_key" \
-H "Content-Type: application/json" \
-d '{"email": "[email protected]"}'Campos de respuesta
| is_disposable | boolean | Si es desechable |
| domain | string | Dominio analizado |
| confidence_score | number | Puntuación de confianza 0-100 |
/proxy-detector
2 tokensDetecta si una IP es Tor, VPN comercial o datacenter. Risk score 0-100.
Request
curl -X POST https://jsnhengine.com/api/v1/proxy-detector \
-H "Authorization: Bearer tu_api_key" \
-H "Content-Type: application/json" \
-d '{"ip": "185.220.101.5"}'Campos de respuesta
| is_tor | boolean | Si es un nodo Tor |
| is_vpn | boolean | Si es una VPN conocida |
| is_datacenter | boolean | Si pertenece a un datacenter |
| risk_score | number | Puntuación de riesgo 0-100 |
| threat_type | string | Tipo de amenaza detectada |
/event-planner
3 tokensExtrae fecha, hora, lugar y participantes de texto en lenguaje natural. Devuelve estructura de evento lista para usar.
Request
curl -X POST https://jsnhengine.com/api/v1/event-planner \
-H "Authorization: Bearer tu_api_key" \
-H "Content-Type: application/json" \
-d '{"text": "Team meeting tomorrow at 10am in the conference room"}'Campos de respuesta
| eventTime | string | Hora del evento (ISO 8601 o HH:mm) |
| eventDate | string | Fecha del evento |
| location | string | Lugar del evento |
| participants | array | Lista de participantes detectados |
| title | string | Título inferido del evento |
/text-cleaner
5 tokensLimpia texto en bruto: elimina HTML, corrige encoding y normaliza espacios en blanco.
Request
curl -X POST https://jsnhengine.com/api/v1/text-cleaner \
-H "Authorization: Bearer tu_api_key" \
-H "Content-Type: application/json" \
-d '{"text": "<p>Hello <strong>world</strong>!</p>"}'Campos de respuesta
| cleaned_text | string | Texto limpio y normalizado |
| original_length | number | Longitud del texto original |
| cleaned_length | number | Longitud del texto limpio |
| reduction_percent | number | Porcentaje de reducción |
| changes_applied | array | Lista de transformaciones aplicadas |
/keyword-extractor
5 tokensExtrae keywords y frases clave de cualquier texto con puntuación de relevancia y detección de idioma.
Request
curl -X POST https://jsnhengine.com/api/v1/keyword-extractor \
-H "Authorization: Bearer tu_api_key" \
-H "Content-Type: application/json" \
-d '{"text": "Machine learning is transforming data science pipelines."}'Campos de respuesta
| keywords | array | Keywords con score, tipo y ocurrencias |
| total_found | number | Total de keywords encontradas |
| language_detected | string | Idioma detectado (ISO 639-1) |
| top_keyword | string | Keyword principal del texto |
/task-generator
5 tokensConvierte un objetivo en lenguaje natural en una lista de tareas priorizadas con tiempo estimado.
Request
curl -X POST https://jsnhengine.com/api/v1/task-generator \
-H "Authorization: Bearer tu_api_key" \
-H "Content-Type: application/json" \
-d '{"goal": "Launch a landing page for my SaaS product"}'Campos de respuesta
| goal_summary | string | Resumen del objetivo interpretado |
| tasks | array | Tareas con id, título, descripción, prioridad y minutos |
| total_tasks | number | Número total de tareas generadas |
| estimated_total_minutes | number | Duración total estimada en minutos |
/iban-validator
1 tokenValida números IBAN: formato, longitud por país y checksum MOD-97. Soporta más de 70 países.
Request
curl -X POST https://jsnhengine.com/api/v1/iban-validator \
-H "Authorization: Bearer tu_api_key" \
-H "Content-Type: application/json" \
-d '{"iban": "DE89370400440532013000"}'Campos de respuesta
| iban | string | IBAN normalizado (sin espacios, mayúsculas) |
| iban_formatted | string | IBAN formateado en grupos de 4 |
| is_valid | boolean | True si el IBAN es válido |
| country_code | string | Código ISO 3166-1 alpha-2 del país |
| country_name | string | Nombre completo del país |
| bank_code | string | null | Código del banco (primeros 4 dígitos del BBAN) |
| check_digits | string | Dígitos de control del IBAN |
| error | string | null | Descripción del error si is_valid es false |
/vat-validator
1 tokenValida números de IVA europeos (VAT) por país: formato, longitud y checksum donde aplica.
Request
curl -X POST https://jsnhengine.com/api/v1/vat-validator \
-H "Authorization: Bearer tu_api_key" \
-H "Content-Type: application/json" \
-d '{"vat_number": "DE123456789"}'Campos de respuesta
| vat_normalized | string | Número VAT normalizado |
| is_valid | boolean | True si el VAT es válido |
| country_code | string | Código del país |
| country_name | string | Nombre del país |
| format_valid | boolean | True si el formato es correcto |
| checksum_valid | boolean | null | Resultado del checksum (null si no aplica) |
| error | string | null | Descripción del error |
/credit-card-validator
1 tokenValida números de tarjeta: algoritmo Luhn, tipo de tarjeta (Visa, Mastercard, Amex, etc.) y BIN.
Request
curl -X POST https://jsnhengine.com/api/v1/credit-card-validator \
-H "Authorization: Bearer tu_api_key" \
-H "Content-Type: application/json" \
-d '{"card_number": "4532015112830366"}'Campos de respuesta
| card_number_masked | string | Número enmascarado (solo primeros y últimos 4 dígitos) |
| is_valid | boolean | True si la tarjeta es válida |
| luhn_valid | boolean | True si pasa el algoritmo Luhn |
| card_type | string | Tipo de tarjeta (Visa, Mastercard, Amex...) |
| card_network | string | Red de pago |
| bin | string | Bank Identification Number (primeros 6 dígitos) |
| error | string | null | Descripción del error |
/password-strength
1 tokenAnaliza la fortaleza de una contraseña: score 0-4, entropía, patrones comunes y sugerencias de mejora.
Request
curl -X POST https://jsnhengine.com/api/v1/password-strength \
-H "Authorization: Bearer tu_api_key" \
-H "Content-Type: application/json" \
-d '{"password": "MyS3cur3P@ss!"}'Campos de respuesta
| score | number | Score 0 (muy débil) a 4 (muy fuerte) |
| score_label | string | Etiqueta: very_weak, weak, fair, strong, very_strong |
| entropy_bits | number | Entropía estimada en bits |
| crack_time_estimate | string | Tiempo estimado para crackear |
| suggestions | array | Lista de sugerencias para mejorar |
| warnings | array | Advertencias (contraseña común, patrón detectado) |
/language-detector
1 tokenDetecta el idioma de cualquier texto. Soporta más de 25 idiomas con código ISO 639-1 y nivel de confianza.
Request
curl -X POST https://jsnhengine.com/api/v1/language-detector \
-H "Authorization: Bearer tu_api_key" \
-H "Content-Type: application/json" \
-d '{"text": "The quick brown fox jumps over the lazy dog"}'Campos de respuesta
| language_code | string | Código ISO 639-1 del idioma detectado |
| language_name_en | string | Nombre del idioma en inglés |
| language_name_native | string | Nombre del idioma en su idioma nativo |
| confidence | number | Nivel de confianza (0.0 - 1.0) |
| script | string | Sistema de escritura (Latin, Cyrillic, Arabic...) |
| candidates | array | Top 3 candidatos con código y confianza |
/spam-detector
3 tokensDetecta si un texto es spam, phishing, scam o contenido legítimo. Usa LLM para análisis semántico profundo.
Request
curl -X POST https://jsnhengine.com/api/v1/spam-detector \
-H "Authorization: Bearer tu_api_key" \
-H "Content-Type: application/json" \
-d '{"text": "Congratulations! You have been selected to receive a $1000 gift card. Click here now!"}'Campos de respuesta
| is_spam | boolean | True si el texto es spam |
| classification | string | 'spam' o 'ham' (legítimo) |
| category | string | Categoría: phishing, promotional, scam, adult, malware, legitimate, uncertain |
| confidence | number | Nivel de confianza (0.0 - 1.0) |
| spam_score | number | Score de spam (0-100) |
| signals | array | Señales de spam detectadas |
| safe_to_display | boolean | False si el contenido es peligroso |
/text-summarizer
5 tokensResume cualquier texto extrayendo los puntos clave y calculando métricas de compresión. Soporta múltiples idiomas.
Request
curl -X POST https://jsnhengine.com/api/v1/text-summarizer \
-H "Authorization: Bearer tu_api_key" \
-H "Content-Type: application/json" \
-d '{"text": "Artificial intelligence is transforming industries worldwide. Machine learning models are becoming more capable..."}'Campos de respuesta
| summary | string | Resumen generado |
| original_length | number | Longitud del texto original (chars) |
| summary_length | number | Longitud del resumen (chars) |
| compression_ratio | number | Ratio de compresión (0.0 - 1.0) |
| key_points | array | Puntos clave extraidos |
| language_detected | string | Idioma detectado (ISO 639-1) |
/sentiment-analyzer
5 tokensAnaliza el sentimiento de un texto con detección de emociones, aspectos y score de confianza.
Request
curl -X POST https://jsnhengine.com/api/v1/sentiment-analyzer \
-H "Authorization: Bearer tu_api_key" \
-H "Content-Type: application/json" \
-d '{"text": "I absolutely love this product! The delivery was fast and the quality exceeded my expectations."}'Campos de respuesta
| sentiment | string | 'positive', 'negative' o 'neutral' |
| score | number | Score de sentimiento (-1.0 a 1.0) |
| confidence | number | Confianza del modelo (0.0 - 1.0) |
| aspects | array | Aspectos detectados con sentimiento individual |
| emotions | object | Emociones detectadas: joy, sadness, anger, fear, surprise, disgust |
| language_detected | string | Idioma detectado (ISO 639-1) |
/text-translator
5 tokensTraduce texto entre idiomas con detección automática del idioma origen. Soporta más de 50 idiomas.
Request
curl -X POST https://jsnhengine.com/api/v1/text-translator \
-H "Authorization: Bearer tu_api_key" \
-H "Content-Type: application/json" \
-d '{"text": "Hello, how are you today?"}'Campos de respuesta
| translated_text | string | Texto traducido |
| source_language | string | Idioma origen detectado (ISO 639-1) |
| target_language | string | Idioma destino (ISO 639-1) |
| confidence | number | Confianza de la traducción (0.0 - 1.0) |
| word_count | number | Número de palabras del texto original |
| character_count | number | Número de caracteres del texto original |
/pii-detector
5 tokensDetecta y enmascara datos personales (PII) como emails, teléfonos, nombres, DNIs y más. Esencial para cumplimiento GDPR.
Request
curl -X POST https://jsnhengine.com/api/v1/pii-detector \
-H "Authorization: Bearer tu_api_key" \
-H "Content-Type: application/json" \
-d '{"text": "Contact John Smith at [email protected] or call +1-555-123-4567"}'Campos de respuesta
| contains_pii | boolean | True si se detectó PII |
| pii_count | number | Número de entidades PII detectadas |
| entities | array | Entidades PII con tipo, valor, posición y versión enmascarada |
| masked_text | string | Texto con PII enmascarado |
| risk_level | string | 'low', 'medium' o 'high' |
| categories | array | Categorías de PII encontradas |
/email-writer
5 tokensGenera emails profesionales a partir de un contexto y tono. Soporta formal, amigable, asertivo y empático.
Request
curl -X POST https://jsnhengine.com/api/v1/email-writer \
-H "Authorization: Bearer tu_api_key" \
-H "Content-Type: application/json" \
-d '{"context": "Following up on our meeting about the Q3 marketing proposal"}'Campos de respuesta
| subject | string | Asunto del email generado |
| body | string | Cuerpo del email |
| word_count | number | Número de palabras |
| tone_applied | string | Tono aplicado |
| language_used | string | Idioma del email |
/job-description-generator
5 tokensGenera descripciones de trabajo profesionales a partir de rol, empresa y requisitos. Ideal para equipos de RRHH.
Request
curl -X POST https://jsnhengine.com/api/v1/job-description-generator \
-H "Authorization: Bearer tu_api_key" \
-H "Content-Type: application/json" \
-d '{"role": "Senior Frontend Developer"}'Campos de respuesta
| title | string | Título del puesto |
| summary | string | Resumen del puesto |
| responsibilities | array | Responsabilidades del puesto |
| requirements_formatted | array | Requisitos formateados |
| nice_to_have | array | Requisitos deseables |
| benefits | array | Beneficios ofrecidos |
| full_description | string | Descripción completa en Markdown |
/changelog-generator
5 tokensConvierte commits de git en un changelog profesional estructurado siguiendo Conventional Commits.
Request
curl -X POST https://jsnhengine.com/api/v1/changelog-generator \
-H "Authorization: Bearer tu_api_key" \
-H "Content-Type: application/json" \
-d '{"commits": "feat: add user authentication
fix: resolve login redirect bug
perf: optimize database queries"}'Campos de respuesta
| version | string | Versión del changelog |
| date | string | Fecha del changelog |
| sections | array | Secciones: feat, fix, breaking, perf, docs, chore |
| full_changelog | string | Changelog completo en formato Markdown |
| commit_count | number | Número de commits procesados |
¿Listo para integrar? Crea tu API key desde el Dashboard.
Ir al Dashboard →