Detectar anomalías
En algún lugar de una hoja de diez mil filas de aspecto normal hay un puñado que no lo es en absoluto: un registro mal etiquetado, un reclamo fraudulento, una descripción de producto copiada de la página equivocada. Este endpoint lee cada fila, aprende cómo luce lo típico para ese conjunto de datos, y devuelve las que no encajan.
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.
El problema que resuelve y para quién
Las anomalías son baratas de pasar por alto y caras de dejar sin encontrar: un solo reclamo fraudulento enterrado entre diez mil legítimos, un anuncio con la categoría equivocada que hunde silenciosamente la relevancia de búsqueda, un ticket de soporte que no se parece a los demás porque en realidad es un reporte de seguridad. Revisar a simple vista no escala, y los filtros basados en reglas solo detectan las anomalías que alguien ya pensó en anticipar. Esto está pensado para equipos de datos, revisores de confianza y seguridad, administradores de catálogo y analistas que necesitan encontrar las excepciones sin leerlo todo.
Cómo funciona en la práctica
Envía un lote de filas de texto, y la tarea corre de forma asíncrona, devolviendo un task_id de inmediato. Detrás de escena, mide qué tan cerca está semánticamente cada fila del resto del conjunto de datos, y las filas que quedan lejos de ese centro, estadísticamente inusuales, temáticamente distintas, o simplemente diferentes a todo lo demás del lote, regresan marcadas como anomalías, entregadas mediante su webhook firmado o un enlace firmado de 24 horas. No hace falta etiquetar nada como 'normal' o 'anormal' de antemano; el propio conjunto de datos define su punto de referencia.
Por qué esto es distinto de un filtro de palabras clave
Una lista negra de palabras solo detecta lo que ya anticipó; un detector de anomalías detecta lo que no anticipó. La distinción importa porque las anomalías más costosas raras veces coinciden con un patrón conocido, son las que a nadie se le ocurrió buscar. Este enfoque, comparar el significado de cada elemento contra la norma colectiva del conjunto de datos, tiene raíces en la detección estadística clásica de valores atípicos, pero aplicada a texto sin estructura en lugar de columnas numéricas, lo que lo hace útil para reseñas, tickets, anuncios y envíos de formato libre, no solo hojas de cálculo con números.
Cómo encaja en un flujo de trabajo
Los equipos suelen usarlo como filtro de revisión: antes de que una carga masiva de productos salga al público, antes de que un lote de reclamos se apruebe automáticamente, antes de archivar una semana de respuestas de encuesta. Como el precio es por solicitud más por cada 1000 filas, escanear un conjunto de datos que crece tiene un costo que escala de forma predecible con el volumen, y un escaneo que falla se reintenta automáticamente sin costo, así que nunca se cobra por una tarea que no se completó.
Qué marca y qué no marca
Señala excepciones estadísticas y semánticas; no afirma que una fila marcada sea fraudulenta, incorrecta o maliciosa, solo que es distinta al resto del lote, lo cual es una señal para que una persona la revise, no un veredicto automático. Trate el resultado como una lista corta que merece una segunda mirada, no como un juicio final.
Qué puede hacer con ella
Filtrado de reclamos de fraude
Una aseguradora escanea una semana de reclamos recibidos y obtiene el pequeño subconjunto que se lee distinto al resto, priorizando esos para revisión manual en lugar de muestrear al azar.
Control de calidad de catálogo
Un marketplace ejecuta detección de anomalías antes de publicar una carga masiva de productos, encontrando el puñado de anuncios con categoría equivocada o descripción copiada antes de que los compradores los vean.
Escalamiento de tickets de soporte
Una mesa de ayuda marca los tickets que no se parecen a las solicitudes típicas, sacando a la luz el raro reporte de seguridad o amenaza legal enterrado entre tickets rutinarios de restablecer contraseña.
Limpieza de datos de encuestas
Un equipo de investigación escanea respuestas abiertas de encuesta buscando las que parecen spam, texto sin sentido o fuera de tema, antes de incluir el conjunto de datos en un análisis.
Preguntas frecuentes
¿Cómo encuentra la API de detección de anomalías los registros que no encajan?
Compara el significado de cada fila contra el resto del conjunto de datos y marca las que están estadística o temáticamente lejos de la norma.
¿Necesito etiquetar ejemplos de anomalías primero?
No. El propio conjunto de datos define su punto de referencia de lo típico, así que no necesita etiquetar filas como 'normales' o 'anormales' de antemano.
¿Existe un plan gratuito para search.outliers?
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 detectar anomalías en un conjunto de datos grande?
Es de $0.002 por solicitud más $0.002 por cada 1000 filas, lo que hace que el costo de escanear un lote grande sea predecible desde antes.
¿Que una fila se marque significa que es fraudulenta o incorrecta?
No. Una fila marcada simplemente es distinta al resto del lote; es una señal que merece revisión humana, no un veredicto automático de fraude o error.
¿Cuántas anomalías devolverá?
Depende de qué tan uniforme sea su conjunto de datos: uno muy consistente arroja pocas marcas, uno más ruidoso arroja más.
¿Cómo obtengo los resultados?
La llamada devuelve un task_id de inmediato, y las filas marcadas se entregan mediante webhook firmado o un enlace firmado válido por 24 horas.
¿Puedo usarlo en conjuntos de datos grandes?
Sí, está diseñado para escaneo masivo: envíe miles de filas en un solo lote, con el precio escalando por cada 1000 filas procesadas.
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/search/outliers \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"…"}'const res = await fetch("https://api.kit.forhosting.com/search/outliers", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "…"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/search/outliers",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "…"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/search/outliers", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"…"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"…"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/search/outliers", 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
{
"text": "…"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "search.outliers",
"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_chunks | 10000 |
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. |