Puntuar tráfico de bots
Distinga el tráfico automatizado de los visitantes reales sin poner un acertijo a todos: una petición enviada con la herramienta de línea de comandos curl obtiene 60 y se marca como probable bot, y usted decide qué hacer con esa puntuación. Paga por uso, sin suscripción.
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.
Un formulario, un intento de inicio de sesión o un comentario no anuncian si los envió una persona o un script, y tratar toda solicitud igual deja pasar bots o molesta a usuarios reales con fricción que no necesitaban.
Por qué cuesta distinguir a un bot
Un formulario enviado, un intento de inicio de sesión o un comentario nunca dicen si los mandó una persona o un programa. Cualquier página abierta a internet acaba recibiendo, junto a los visitantes reales, tráfico de programas automáticos, navegadores sin pantalla y herramientas que copian contenido. Bloquear los bots evidentes es lo fácil. Lo difícil es separar los que parecen casi humanos de las personas que navegan o escriben de forma algo distinta, con una conexión lenta, un dispositivo poco habitual o tecnologías de apoyo. Tratar igual todas las peticiones deja pasar a los bots o pone trabas innecesarias a la gente real.
Cómo aprovechar la puntuación
La puntuación refleja la probabilidad de que la petición sea automática, a partir de señales de la propia petición: la coherencia de sus cabeceras, cómo se conecta y patrones propios del tráfico automatizado. Es una probabilidad, no una certeza, así que úsela para alimentar su decisión y no como decisión única. Una puntuación permite umbrales distintos según lo que esté en juego: una suscripción a un boletín admite un límite más flexible que un cambio de contraseña o un pago. Sirve para descartar en silencio el spam de formularios, pedir una verificación extra solo en accesos sospechosos, frenar compras repetidas a gran velocidad en lanzamientos con poco stock y filtrar reseñas escritas por bots antes de moderarlas.
Por qué un puntaje es mejor que un sí o no
Una respuesta binaria de bot o no bot obliga a aplicar la misma política a todos los casos, pero un puntaje permite fijar umbrales distintos según lo que está en juego: un registro a un boletín de bajo valor puede tolerar un umbral más laxo que un restablecimiento de contraseña o un checkout. Esa flexibilidad es la razón de devolver un puntaje en vez de una etiqueta.
Qué puede hacer con ella
Reducción de spam en formularios
Puntúe los envíos de formularios de contacto o registro para descartar en silencio el spam probablemente automatizado, sin imponer un CAPTCHA visible a todos.
Protección del inicio de sesión
Agregue verificación adicional solo a los intentos de inicio de sesión que puntúan como probablemente automatizados, manteniendo el flujo sin fricción para usuarios reales.
Defensa contra bots de reventa e inventario
Marque intentos de compra rápidos y repetitivos que puntúan como automatizados durante lanzamientos de productos con stock limitado.
Calidad de reseñas y comentarios
Filtre reseñas o comentarios probablemente generados por bots antes de que lleguen a la cola de moderación.
Preguntas frecuentes
¿Cómo genera el puntaje esta api para detectar bots?
Evalúa señales presentes en la propia solicitud, como la consistencia de encabezados y de la conexión, y patrones típicos de tráfico generado por script, y devuelve un puntaje numérico de qué tan probable es que sea automatizada.
¿Qué puntaje se considera un bot?
No hay un umbral universal — el puntaje es una probabilidad, y el umbral correcto depende de cuánto riesgo tolera cada acción, desde laxo para formularios de bajo valor hasta estricto para inicios de sesión o checkout.
¿Garantiza detectar todos los bots?
Ningún método de detección atrapa absolutamente todo; la automatización sofisticada que imita muy bien el comportamiento real puede seguir puntuando bajo, por eso el puntaje complementa otras defensas en vez de sustituirlas.
¿Es gratuita?
No hay capa gratuita: las capas gratis se abusan y ralentizan a todos. Sin suscripción, sin tokens ni créditos inventados, y una tarea fallida no se cobra.
¿Puedo puntuar solicitudes en bloque?
Cada llamada puntúa una solicitud; para tráfico alto, envíe una solicitud por evento y deje que el modelo asíncrono maneje el volumen en paralelo.
Herramientas relacionadas
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, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/verify/bot-score \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"user_agent":"curl/8.0"}'const res = await fetch("https://api.kit.forhosting.com/verify/bot-score", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"user_agent": "curl/8.0"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/verify/bot-score",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"user_agent": "curl/8.0"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/verify/bot-score", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"user_agent":"curl/8.0"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"user_agent":"curl/8.0"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/verify/bot-score", 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
{
"user_agent": "curl/8.0"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "verify.bot_score",
"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.
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. |
Notas técnicas
Este endpoint puntúa la probabilidad de que una solicitud provenga de automatización, para que decida qué hacer a continuación.
La pregunta que todo endpoint abierto termina enfrentando
Lo difícil no es bloquear los bots evidentes — es distinguir los que se parecen casi a un humano de las personas que navegan o escriben de forma genuinamente inusual. Cualquier formulario, API o página de inicio de sesión accesible desde internet eventualmente recibirá tráfico de scripts, navegadores sin interfaz y herramientas de scraping junto a visitantes reales.
Qué representa el puntaje
Es una probabilidad, no una certeza, y está pensado para alimentar una decisión, no para ser la decisión en sí misma. El endpoint devuelve un puntaje numérico que refleja qué tan probable es que la solicitud sea automatizada, basado en señales presentes en la propia solicitud — cosas como la consistencia de los encabezados, características de la conexión y patrones asociados a tráfico generado por script frente a una sesión típica de navegador.
Una carrera que la automatización volvió necesaria
A medida que las herramientas de scraping y relleno de credenciales mejoraron para imitar el comportamiento de un navegador real, revisiones simples como el user-agent dejaron de bastar por sí solas, lo que hizo que puntuar con base en varias señales de la solicitud se volviera el enfoque más duradero — ninguna señal cuenta toda la historia, pero combinadas son más difíciles de falsificar de forma convincente.
Cómo se integra en su flujo
La mayoría de las integraciones lo llaman en el momento del envío y dirigen la respuesta hacia su lógica existente de límite de tasa o verificación, sin reemplazarla. Envía el contexto de la solicitud, recibe un task_id de inmediato, y el puntaje llega por su webhook firmado o por un enlace firmado válido por 24 horas.
Preguntas técnicas
¿Un puntaje de bot es lo mismo que un CAPTCHA?
No. Un CAPTCHA interrumpe al usuario para que demuestre que es humano; este endpoint puntúa la solicitud en silencio, en segundo plano, y le deja decidir si agregar fricción solo cuando el puntaje lo amerita.
¿Qué tan rápido llega el puntaje?
El task_id se devuelve de inmediato, y el puntaje llega por su webhook firmado o por un enlace firmado válido por 24 horas.
¿Se conservan los datos de la solicitud después de puntuar?
No, se eliminan al terminar el periodo de retención y nunca se usan para entrenar modelos, y las solicitudes fallidas se reintentan hasta tres veces sin cobrarse.