Zeno
Log in

Know the device behind every request

A browser agent, a server API and a dashboard. Recognise returning devices, flag bots and spoofing, and decide on your own server.

How an identification works

From the browser to your decision in one round trip.

  1. Collect

    The browser agent gathers more than 100 device signals in the background and sends a report of about a kilobyte.

    What the agent collects →
  2. Identify

    The server turns the stable signals into a visitor ID, recognises returning devices and sets the smart signals.

    The flags and the score →
  3. Decide

    The browser only gets a request ID. Your server reads the full event with its secret key and decides.

    Read it from your server →

Four parts, one event

Each has its own page; together they make the event your server reads.

One call on your server

The browser hands your server a request ID. One GET with the secret key returns the whole event, and the flags never reach the browser.

Visitor ID
The device, however it comes back.
Risk score
The detected signals' weights added up, a number to start from.
Bot
bad, good or not_detected.
Detected signals
Every smart signal that fired.
login.server.ts
const event = await fetch(`https://api.zeno.id/events/${requestId}`, {
	headers: { 'Auth-API-Key': process.env.FP_SECRET_KEY },
}).then(response => response.json())

event.visitorId // "q1yLOPpzvOstEQCFQQxE"
event.riskScore // 5
event.bot // "not_detected"
event.detected // ["vpn", "incognito"]

Identify your first visitor today

Install the agent, read the event on your server, and you're done.