Zeno
Inloggen
Gratis … identificaties per maand · Daarna betalen naar gebruik

Apparaatherkenning
voor elke Registreren

Herken een terugkerende browser zelfs in incognito of met gewiste cookies, detecteer bots en vervalste apparaten, en bevestig elk resultaat op je server voordat je actie onderneemt.

Bekijk wat wij over deze browser kunnen zien. Het uitvoeren van de demo stuurt de signalen naar ons en slaat een ID op.

Wat elke identificatie je vertelt

In de API voor je code en in het dashboard voor wie de zaak beoordeelt.

Elke identificatie, live

Nieuwe events verschijnen binnen seconden, met de bezoeker, de external ID en het tijdstip.

Bots en spoofing gemarkeerd

Automatisering, headless browsers, software rendering, vervangen natives en tijdzones die niet overeenkomen.

Gedeelde apparaten verschijnen

Een apparaat toont elke external ID die erop is gezien, zodat multi-accounts opvallen.

Verifieer op je backend

De browser krijgt alleen een request ID. Je server haalt het event op met zijn secret key en beslist.

Vergeet een external ID in één aanroep

Verwijder een external ID en alle bijbehorende events en apparaatkoppelingen verdwijnen.

Betaal per gebruik

Geen abonnementen of verplichtingen. Na elke factureringsperiode betaal je voor de gebruikte identificaties, elk met alle signalen, de server-API en het dashboard.

Bekijk abonnementen en alle prijzen →

Getoonde prijzen zijn exclusief toepasselijke belastingen of kosten (bijv. btw).

Van installatie tot verificatie in drie stappen

De browser krijgt een request ID, je server krijgt het volledige verhaal.

  1. 1

    Agent toevoegen

    Eén script-tag via de api, of een getypeerde ES-module via npm.

    login.html
    <script src="https://zenocdn.net/agent.js"></script>
    <script>
    	const agent = FingerprintAgent.start({ endpoint: 'https://zenocdn.net', publicKey: 'pk_...' })
    </script>
  2. 2

    Identificeer in de browser

    Start het als het formulier opent, krijg een request ID zodra de gebruiker inlogt.

    login.js
    // After a successful login:
    const { requestId } = await agent.get({ externalId: user.id })
    
    await fetch('/api/login/verify', { method: 'POST', body: JSON.stringify({ requestId }) })
  3. 3

    Verifieer op je server

    Lees het event met de secret key en beslis. De browser ziet nooit een vlag.

    login.server.ts
    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')
    }
  • REST, geen SDK-lock-in

    GET, PATCH en DELETE op /events, /visitors en /external-ids, met één header.

  • Sleutels die moeilijk lekken

    pk_- en sk_-prefixen met checksum; secret keys worden als hash opgeslagen en één keer getoond.

  • Zoek in elk event

    Filter op visitor, external ID, IP, flag, bot verdict, risk score en datum.

  • Verwijder een external ID in één aanroep

    DELETE /external-ids/{id} verwijdert alle gebeurtenissen en apparaatkoppelingen van dat ID.

Vragen

Werkt het met mijn framework? +

Ja. De agent is een gewone ES-module zonder dependencies, dus hij draait in React, Svelte, Vue of zonder framework. Zonder bundler laad je /agent.js en gebruik je de globale FingerprintAgent.

Is een gedeeld visitor ID bewijs van meerdere accounts? +

Nee. Identieke apparaten, zoals hetzelfde telefoonmodel met hetzelfde OS, hebben dezelfde fingerprint, dus een browser zonder opgeslagen ID kan overeenkomen met de visitor ID van een ander. Beschouw dit als een aanwijzing om samen met de external IDs, flags en verbinding te beoordelen.

Wat verzamelt de agent? +

Meer dan 100 apparaatsignalen: canvas, WebGL, audio, lettertypen, scherm, hardware, locale, plug-ins en automatiseringsresten. Leest nooit WebRTC-netwerkadressen.

Wat gebeurt er bij een budget of de gebruikslimiet? +

Identificatie pauzeert stilletjes: de agent geeft capped terug in plaats van een request ID, zodat gebruikers nooit een fout zien en je login blijft werken. Stel budgetten in per dag, week of maand, en een uitgavenlimiet per key. Niets anders is ratelimiet-gebonden.

En als het niets voor mij is? +

Je krijgt je geld terug. Niet tevreden in de eerste drie maanden na je eerste betaalde factuur? We betalen alles terug wat je in die periode hebt betaald, zonder vragen.

Waar worden de gegevens opgeslagen? +

In de EU, in AWS eu-west-1. Gebeurtenissen worden bewaard totdat je ze verwijdert, of 1, 3 of 5 jaar als je dat kiest, en één API-aanroep wist alles wat is opgeslagen voor een van je gebruikers.

Je eerste identificatie, in enkele minuten

Betaal naarmate je gebruikt, alle signalen inbegrepen.