Detectar datos personales
Los datos personales se esconden donde nadie revisa: un ticket de soporte copiado y pegado, la transcripción de un formulario escaneado, un registro de chat exportado para análisis. Esta API de detección de datos personales lee el texto y señala exactamente dónde aparecen nombres, correos, teléfonos, números de identificación y tarjetas, para que nada sensible pase desapercibido.
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 momento en que esto se vuelve urgente
La mayoría de los equipos no piensa en la exposición de datos personales hasta que una auditoría de cumplimiento, una queja de un cliente o un susto obliga a preguntarse: ¿qué información personal hay realmente en nuestros registros, tickets, transcripciones y exportaciones? Para ese momento suelen ser miles de documentos. text.detect-pii se construyó para esa auditoría exacta: apúntelo a un cuerpo de texto y obtenga un mapa preciso de qué datos personales contiene, sin alterar un solo carácter.
Detección, no alteración
Este endpoint solo encuentra y reporta —no toca el texto original. Envía contenido por POST a /text/detect-pii, la tarea corre de forma asíncrona, y el resultado lista cada entidad detectada con su tipo, su posición en el texto y un indicador de confianza. Esa separación importa: detectar le permite decidir caso por caso si redacta, anonimiza, aísla o simplemente registra el hallazgo, en vez de que una herramienta automática tome esa decisión por usted.
Qué se considera dato personal
Las categorías van más allá de lo obvio. Los nombres y correos son los casos fáciles; los números de teléfono, cédula y pasaporte, números de tarjeta y cuenta bancaria, direcciones físicas y fechas de nacimiento son igual de sensibles y se pasan por alto igual de seguido en campos de texto libre donde ningún esquema obliga a un formato estricto. La detección lee el contexto que rodea al dato, no solo compara dígitos con un patrón, por eso un número de diez cifras en una frase sobre un teléfono se clasifica distinto al mismo número en una frase sobre el total de un pedido.
Dónde encaja en un flujo más amplio
En la práctica, la detección es el primer paso de un proceso: escanear primero, decidir después. Algunos equipos envían los documentos marcados directo a text.redact-pii o text.anonymize para procesarlos automáticamente; otros usan el reporte solo como visibilidad, alimentando un panel que muestra dónde se acumulan los datos personales dentro de un repositorio o un sistema de soporte. En cualquier caso, el modelo asíncrono permite escanear un archivo completo sin que ningún flujo de trabajo quede bloqueado esperando —envía el lote, sigue trabajando, y el webhook avisa cuando el mapa está listo.
Costo y acceso
El precio es $0.003 por solicitud más $0.0135 por cada 1000 palabras escaneadas, así que un ticket de soporte corto cuesta una fracción de centavo mientras que un lote de documentos completo escala de forma predecible con el volumen. El acceso requiere saldo prepago —no hay capa gratuita— y una tarea que falla tras tres reintentos automáticos nunca se cobra, así que solo paga por la detección que realmente se completó.
Qué puede hacer con ella
Auditorías previas a una migración
Escanee un archivo antiguo de soporte antes de moverlo a un nuevo sistema, para saber exactamente qué datos personales viajan con él.
Verificaciones de cumplimiento
Ejecute la detección sobre una muestra de transcripciones de chat o formularios para confirmar que una política de manejo de datos realmente se cumple.
Paso previo a la redacción
Use los resultados de detección para decidir qué documentos necesitan enmascararse con text.redact-pii y cuáles ya están limpios.
Respuesta a incidentes
Ante una sospecha de filtración, escanee rápido el conjunto de datos afectado para saber exactamente qué registros contienen datos personales expuestos.
Preguntas frecuentes
¿Qué devuelve exactamente una api de detección de datos personales?
Por cada texto enviado, POST /text/detect-pii devuelve una lista de entidades detectadas con su tipo, ubicación en el texto e indicador de confianza, sin modificar el contenido original.
¿La api redacta o elimina los datos personales?
No, la detección solo encuentra y reporta; si necesita enmascarar los datos, combínela con text.redact-pii o text.anonymize, que se encargan de esa parte.
¿Qué tipos de datos personales detecta?
Nombres, correos, teléfonos, números de cédula y pasaporte, números de tarjeta y cuenta bancaria, direcciones físicas y fechas de nacimiento, leídos en contexto y no solo por patrón.
¿Hay una capa gratuita para probar la detección de datos personales?
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.
¿Cómo se cobra la detección de datos personales?
Cuesta $0.003 por solicitud más $0.0135 por cada 1000 palabras escaneadas, y las tareas que fallan tras sus reintentos automáticos nunca se cobran.
¿Puedo escanear grandes volúmenes de texto o muchos documentos a la vez?
Sí, los envíos se procesan de forma asíncrona, así que lotes de cualquier tamaño práctico corren en segundo plano mientras sigue trabajando.
¿Cómo recibo los resultados de la detección?
Mediante un webhook firmado, recomendado para flujos automatizados, o a través de un enlace firmado válido por 24 horas.
¿Funciona en varios idiomas?
La detección lee el contexto y la estructura en lugar de una lista fija de patrones solo en inglés, lo que le permite reconocer datos personales en distintos idiomas.
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/detect-pii \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"…"}'const res = await fetch("https://api.kit.forhosting.com/text/detect-pii", {
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/text/detect-pii",
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/text/detect-pii", 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/text/detect-pii", 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": "text.detect_pii",
"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. |