Cada identificação, ao vivo
Novos eventos aparecem em segundos, com o visitante, o external ID e quando ocorreu.
Reconheça um navegador que retorna mesmo no modo anônimo ou com cookies apagados, detecte bots e dispositivos falsificados e confirme cada resultado no seu servidor antes de agir.
Veja o que podemos descobrir sobre este navegador. Executar a demo envia seus sinais para nós e armazena um ID nele.
Na API para o seu código e no painel para quem analisa o caso.
Novos eventos aparecem em segundos, com o visitante, o external ID e quando ocorreu.
Automação, navegadores headless, renderização por software, nativos substituídos e fusos horários divergentes.
Um dispositivo lista cada external ID vista nele, para que contas múltiplas se destaquem.
O navegador recebe apenas um request ID. Seu servidor busca o evento com a secret key e decide.
Exclua um external ID e todos os seus eventos e vínculos de dispositivo são removidos.
Sem planos nem compromissos. Após cada ciclo de faturamento, você paga pelas identificações usadas, cada uma com todos os sinais, a API do servidor e o painel.
Veja os planos e todos os preços →Os preços exibidos não incluem impostos ou taxas aplicáveis (ex.: IVA).
O navegador recebe um request ID, seu servidor recebe todos os detalhes.
Uma tag script servida pela api, ou um módulo ES tipado do npm.
<script src="https://zenocdn.net/agent.js"></script>
<script>
const agent = FingerprintAgent.start({ endpoint: 'https://zenocdn.net', publicKey: 'pk_...' })
</script>Inicie ao abrir o formulário e obtenha um request ID quando o usuário fizer login.
// After a successful login:
const { requestId } = await agent.get({ externalId: user.id })
await fetch('/api/login/verify', { method: 'POST', body: JSON.stringify({ requestId }) })Leia o evento com a secret key e decida. O navegador nunca vê uma 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 e DELETE em /events, /visitors e /external-ids, com um único header.
Prefixos pk_ e sk_ com checksum; as secret keys são armazenadas como hash e exibidas uma única vez.
Filtre por visitante, external ID, IP, flag, veredito de bot, pontuação de risco e data.
DELETE /external-ids/{id} remove todos os eventos e vínculos de dispositivo desse ID.
Sim. O agente é um módulo ES simples sem dependências, então roda em React, Svelte, Vue ou sem framework. Sem bundler, carregue /agent.js e use o global FingerprintAgent.
Não. Dispositivos idênticos, como o mesmo modelo de celular no mesmo SO, têm o mesmo fingerprint, então um navegador sem o ID armazenado pode coincidir com o visitor ID de outro. Trate isso como uma pista para revisar junto com os external IDs, flags e a conexão.
Mais de 100 sinais do dispositivo: canvas, WebGL, áudio, fontes, tela, hardware, locale, plugins e vestígios de automação. Nunca lê endereços de rede WebRTC.
A identificação pausa silenciosamente: o agente retorna capped em vez de um request ID, então seus usuários nunca veem um erro e seu login continua funcionando. Defina orçamentos por dia, semana ou mês e um limite de gastos por chave. Nada mais tem limite de taxa.
Você recebe seu dinheiro de volta. Não ficou satisfeito nos primeiros três meses após a primeira fatura paga? Reembolsamos tudo o que foi pago nesse período, sem perguntas.
Na UE, na AWS eu-west-1. Os eventos são mantidos até você excluí-los ou por 1, 3 ou 5 anos, se escolher isso, e uma única chamada de API apaga tudo armazenado para um dos seus usuários.
Pague conforme o uso, todos os sinais incluídos.