Zeno
Log in

See what we know about your browser

Run the agent on this browser in our demo project. It's the real thing: the same ID, flags and score your server would get.

See what we can tell about this browser. Running the demo sends its signals to us and stores an ID in it.

Things to try

The ID should hold, and the flags should follow you.

  • Open this page in a private window

    The same visitor ID. Storage is empty, the hardware isn't. Incognito shows as detected where the browser gives it away.

  • Turn on a VPN and reload

    The vpn flag, and a timezone mismatch if it moved you somewhere else.

  • Open the developer tools

    The developer-tools flag: something is inspecting the page.

  • Come back from another browser

    A new visitor. Every browser renders differently, so it's another fingerprint.

What just happened

Collect
The agent gathered more than 100 signals in the background and sent a report of about a kilobyte.
Identify
The server matched this browser against earlier visits, by its stored ID or its stable signals, and set the flags.
Decide
This page only got a request ID. The flags above came from the server, the way your own backend would read them.
GET /events/1792578564800.yU4Ety
{
	"requestId": "1792578564800.yU4Ety",
	"visitorId": "q1yLOPpzvOstEQCFQQxE",
	"riskScore": 3,
	"bot": "not_detected",
	"detected": ["vpn", "timezone-mismatch"],
	"confidence": 0.98,
	"returning": true,
	"browserDetails": { "browserName": "Chrome", "os": "macOS", "device": "desktop" },
	"vpn": { "confidence": "high", "browserTimeZone": "America/New_York", "methods": { "knownVpnExit": true, "privateRelay": false, "timeZoneMismatch": true } },
	"velocity": { "24h": { "events": 3, "distinctExternalId": 1 } }
}

Now try it on your own login

The first … identifications of every month are free, every signal included.