Detectar spam
Todo formulario abierto en internet termina atrayendo spam tarde o temprano. Esta API de detección de spam analiza texto entrante —comentarios, formularios de contacto, reseñas, publicaciones de foro— para que pueda retener, marcar o descartar la basura antes de que llegue a la bandeja de un moderador.
Ejecútela online
Ejecute esto en nuestros servidores con su cuenta. Las herramientas gratuitas corren en su navegador; esta cobra de su saldo del KIT según el precio de arriba.
A quién le sirve de verdad
Quien administre una sección de comentarios, un formulario de registro, reseñas de un marketplace o la entrada de tickets de soporte choca tarde o temprano con lo mismo: los bots y el spam de bajo esfuerzo superan en número a las publicaciones reales. Los equipos pequeños no tienen personal de moderación, y los grandes no quieren que alguien lea ofertas de zapatos falsificados todo el día. El endpoint text.spam existe para ese hueco exacto: una capa de puntuación que se coloca delante de cualquier campo donde los usuarios puedan escribir.
Qué envía y qué recibe
Envía un arreglo de textos por POST a /text/spam y obtiene de inmediato un task_id —la clasificación corre de forma asíncrona, así que nunca mantiene una conexión abierta mientras se procesan diez mil comentarios. Cada elemento del resultado trae una probabilidad de spam y un código de motivo breve, suficiente para aprobar automáticamente, rechazar automáticamente o enviar a revisión humana según qué tan conservador necesite ser su flujo.
Por qué la detección de spam es un blanco móvil
El filtrado de spam siempre fue una carrera armamentista: las primeras heurísticas eran listas de palabras prohibidas, después los filtros bayesianos aprendieron de corpus etiquetados, y ahora los modelos que entienden lenguaje leen la intención y el tono en vez de buscar patrones fijos. Ese cambio importa porque el spam moderno rara vez se repite palabra por palabra —está parafraseado, traducido o generado al vuelo, así que un filtro que solo conoce el spam de ayer se pierde el de hoy.
Cómo encaja en un flujo automatizado
Como los resultados llegan a un webhook firmado, lo habitual es tener un worker de cola que envía cada comentario nuevo apenas llega y actualiza una columna de estado cuando el webhook dispara —sin necesidad de un bucle de sondeo. Los equipos que prefieren no exponer un endpoint receptor pueden en cambio recuperar el resultado desde el enlace firmado, válido por 24 horas, tiempo suficiente para un lote de moderación nocturno.
Qué cuesta y cuándo se cobra
El precio es $0.003 por solicitud más $0.0135 por elemento evaluado, y solo se cobra por lo que realmente se procesó —una tarea fallida se reintenta automáticamente tres veces y nunca se cobra si sigue fallando. No hay capa gratuita ni saldo de prueba; el acceso requiere una saldo prepago, lo que mantiene el endpoint libre del abuso que suelen atraer los planes gratuitos.
Qué puede hacer con ella
Secciones de comentarios a gran escala
Puntúe cada comentario entrante antes de publicarlo, ocultando automáticamente lo que supere su umbral de spam y dejando los casos dudosos para un moderador.
Formularios de contacto y leads
Filtre los envíos generados por bots para que su bandeja de ventas solo reciba consultas que valga la pena responder.
Reseñas de marketplace
Detecte reseñas falsas y spam promocional antes de que afecten la calificación de un producto o la confianza pública.
Entrada de tickets de soporte
Elimine los tickets basura de la cola para que los agentes dediquen tiempo a problemas reales de clientes, no a publicidad.
Preguntas frecuentes
¿Cómo funciona la api de deteccion de spam?
Envía textos por POST a /text/spam, recibe un task_id, y al terminar el procesamiento obtiene una probabilidad de spam y un código de motivo por cada elemento, entregado por webhook o enlace firmado.
¿Existe una capa gratuita para detección de spam?
No hay capa gratuita: las capas gratis se abusan y ralentizan a todos. El acceso funciona con un saldo prepago de ForHosting KIT: se recarga desde $10.00 (no caduca) y cada solicitud se cobra a su precio publicado, así que una llamada sin saldo devuelve HTTP 402. Sin suscripción, sin tokens ni créditos inventados, y una tarea fallida no se cobra.
¿Cuánto cuesta puntuar comentarios o formularios?
Cuesta $0.003 por solicitud más $0.0135 por elemento evaluado, y nunca se cobra una tarea que termina fallando.
¿Puedo enviar un lote grande de comentarios de una vez?
Sí, el endpoint está pensado para puntuación masiva —envía un arreglo de elementos en una sola solicitud y los resultados llegan como lote de forma asíncrona.
¿Qué trae exactamente la respuesta?
Cada elemento recibe una probabilidad de spam y un código de motivo breve, suficiente para automatizar aprobación, rechazo o revisión humana en su propio flujo.
¿Funciona en idiomas distintos al inglés?
El modelo lee la intención y el tono en vez de buscar palabras fijas, lo que le permite reconocer spam en varios idiomas, no solo en patrones en inglés.
¿Cómo recibo los resultados, por webhook o consultando?
Los resultados llegan por webhook firmado, que es lo recomendado, o mediante un enlace firmado válido por 24 horas si prefiere consultarlo en su propio horario.
¿Qué pasa si una tarea de puntuación falla?
La tarea se reintenta automáticamente hasta tres veces; si sigue fallando, recibe un error claro y no se le cobra ese elemento.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, y pronto desde nuestra app, el email y Telegram.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/text/spam \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"items":["valor-1","valor-2"]}'const res = await fetch("https://api.kit.forhosting.com/text/spam", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"items": [
"valor-1",
"valor-2"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/text/spam",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"items": [
"valor-1",
"valor-2"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/text/spam", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"items":["valor-1","valor-2"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"items":["valor-1","valor-2"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/text/spam", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"items": [
"valor-1",
"valor-2"
]
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "text.spam",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
max_tokens | 20000 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
422 | task_failed | La tarea falló tras 3 reintentos. No se cobra. |