Cada identificación, en vivo
Los nuevos eventos aparecen en segundos, con el visitor, el external ID y la hora.
Reconozca un navegador que regresa incluso en incógnito o con cookies borradas, detecte bots y dispositivos falsificados, y confirme cada resultado en su servidor antes de actuar.
Descubre qué podemos saber de este navegador. Al ejecutar la demo, sus señales se envían a nosotros y se guarda un ID en él.
En la API para tu código y en el panel para quien revisa el caso.
Los nuevos eventos aparecen en segundos, con el visitor, el external ID y la hora.
Automatización, navegadores headless, renderizado por software, nativos reemplazados y zonas horarias que no coinciden.
Un dispositivo muestra cada external ID vista en él, para detectar cuentas múltiples.
El navegador solo recibe un request ID. Tu servidor obtiene el evento con su secret key y decide.
Elimina un external ID y todos sus eventos y vínculos de dispositivo desaparecen.
Sin planes ni compromisos. Tras cada ciclo de facturación pagas por las identificaciones usadas, cada una con todas las señales, la API del servidor y el panel.
Ver planes y todos los precios →Los precios mostrados no incluyen impuestos ni tasas aplicables (p. ej. IVA).
El navegador recibe un request ID, tu servidor obtiene todos los detalles.
Una etiqueta script servida por la api, o un módulo ES tipado desde npm.
<script src="https://zenocdn.net/agent.js"></script>
<script>
const agent = FingerprintAgent.start({ endpoint: 'https://zenocdn.net', publicKey: 'pk_...' })
</script>Inícialo al abrir el formulario y obtén un request ID cuando el usuario inicie sesión.
// After a successful login:
const { requestId } = await agent.get({ externalId: user.id })
await fetch('/api/login/verify', { method: 'POST', body: JSON.stringify({ requestId }) })Lee el evento con la secret key y decide. El navegador nunca ve un flag.
const response = await fetch(`https://api.zeno.id/events/${requestId}`, {
headers: { 'Auth-API-Key': process.env.FP_SECRET_KEY },
})
const event = await response.json()
if (event.bot === 'bad' || event.riskScore >= 15) {
throw new Error('Review this login')
}GET, PATCH y DELETE en /events, /visitors y /external-ids, con un solo header.
Prefijos pk_ y sk_ con checksum; las secret keys se guardan como hash y se muestran una sola vez.
Filtra por visitante, external ID, IP, flag, veredicto de bot, puntuación de riesgo y fecha.
DELETE /external-ids/{id} elimina todos los eventos y vínculos de dispositivo de ese ID.
Sí. El agente es un módulo ES simple sin dependencias, así que funciona en React, Svelte, Vue o sin framework. Sin bundler, carga /agent.js y usa el global FingerprintAgent.
No. Los dispositivos idénticos, como el mismo modelo de teléfono con el mismo SO, tienen la misma huella digital, así que un navegador sin su ID guardado puede coincidir con el visitor ID de otro. Tómalo como una pista para revisar junto con los external IDs, flags y la conexión.
Más de 100 señales del dispositivo: canvas, WebGL, audio, fuentes, pantalla, hardware, configuración regional, plugins y restos de automatización. Nunca lee direcciones de red WebRTC.
La identificación se pausa silenciosamente: el agente responde con capped en lugar de un request ID, así tus usuarios nunca ven un error y tu inicio de sesión sigue funcionando. Define presupuestos por día, semana o mes, y un límite de gasto por clave. Nada más tiene límite de tasa.
Le devolvemos su dinero. ¿No está satisfecho en los primeros tres meses después de su primera factura pagada? Le reembolsamos todo lo que pagó en ese periodo, sin preguntas.
En la UE, en AWS eu-west-1. Los eventos se conservan hasta que los borres, o durante 1, 3 o 5 años si lo eliges, y una sola llamada a la API borra todo lo almacenado de uno de tus usuarios.
Pago por uso, todas las señales incluidas.