Zasnovano tako, da se prilega vašemu skladu
Preprost REST z eno glavo, tipiziran Node odjemalec, strežnik MCP, podpisani webhooki in lastne domene. Na strežnik ni treba ničesar namestiti, razen če želite.
Pet načinov za vstop
Isti dogodek, iz lupine, vaše kode, pomočnika ali potisnega sporočila.
curl "https://api.zeno.id/events/1792578564800.yU4Ety" \
-H "Auth-API-Key: sk_..."const event = await fetch(`https://api.zeno.id/events/${requestId}`, {
headers: { 'Auth-API-Key': process.env.FP_SECRET_KEY },
}).then(response => response.json())import { createClient } from '@zeno-id/server'
const fingerprint = createClient({ secretKey: process.env.FP_SECRET_KEY, endpoint: 'https://api.zeno.id' })
const event = await fingerprint.getEvent(requestId)
const page = await fingerprint.searchEvents({ externalId: user.id, signal: 'vpn' })
await fingerprint.updateEvent(requestId, { action: 'checkout' })
await fingerprint.forgetExternalId(user.id)# Your project's API as tools for Claude Code, Cursor or any MCP client.
claude mcp add zeno --env FP_SECRET_KEY=sk_... --env FP_ENDPOINT=https://api.zeno.id -- npx -y @zeno-id/mcpimport { verifyWebhook } from '@zeno-id/server'
app.post('/fingerprint', express.text({ type: 'application/json' }), (request, response) => {
if (!verifyWebhook(request.body, request.header('fingerprint-signature') ?? '', process.env.FP_WEBHOOK_SECRET)) {
return response.sendStatus(401)
}
const event = JSON.parse(request.body)
response.sendStatus(200)
})// Serve the agent and identify from a subdomain of your own site, so content
// blockers that list ours don't drop identifications. Add it in Settings ›
// Custom domain, create the one DNS record it shows, then:
import { start } from 'zeno-id'
const agent = start({ publicKey: 'pk_...', endpoint: 'https://metrics.example.com' })- Strežniški API Preberite, poiščite in izbrišite dogodke in obiskovalce z enim headerjem.
- Strežniški SDK Tipizirani Node odjemalec s preverjanjem webhookov in odpiranjem zapečatenih rezultatov.
- MCP strežnik API vašega projekta kot orodja za AI asistenta.
- Webhooks Vsak nov dogodek se pošlje POST-om na vaš strežnik, podpisan, s ponovnimi poskusi.
- Domena po meri Agenta postrezite iz svoje poddomene z enim DNS zapisom, kot bi moralo vsako aktivno spletno mesto.
- Zapečateni rezultati Šifriran rezultat, ki ga vaš strežnik odpre brez klica API-ja.
Agent na vsaki strani
Zaženite ga, ko se obrazec odpre, in zahtevajte request ID, ko uporabnik nekaj stori. Deluje v ozadju in nikoli ne blokira strani.
- Brez odvisnosti
- /agent.js kot oznako script za preizkus ali majhen npm nalagalnik, ki trenutni agent naloži prek vaše domene.
- Katerikoli framework
- React, Svelte, Vue, Next.js, Nuxt, Angular ali nobenega.
- Približno kilobajt
- Poročilo, ki ga pošilja. Nikoli ne bere omrežnih naslovov WebRTC.
- Predpomnjeno
- Rezultat lahko shranite za sejo, tako da prijava in nato plačilo stanejo eno identifikacijo.
<script src="https://zenocdn.net/agent.js"></script>
<script>
const agent = FingerprintAgent.start({ endpoint: 'https://zenocdn.net', publicKey: 'pk_...' })
// Once the user logs in, hand the request ID to your server:
agent.get({ externalId: user.id }).then(({ requestId }) => verifyOnServer(requestId))
</script>Vaši podatki, vaša pravila
Zasnovano za zahteve po podatkih, ki jih boste dobivali.
Gostuje v EU
Dogodki se shranjujejo v AWS eu-west-1, dokler jih ne izbrišete, ali 1, 3 ali 5 let, če tako izberete.
Izbrišite external ID z enim klicem
Izbrišite external ID in vsi njegovi dogodki ter povezave z napravami bodo odstranjeni. Za zahtevo za podatke ali zaprt račun.
Brskalnik nima ničesar, po čemer bi se uravnaval
Zastavice nikoli ne pridejo do brskalnika. Način zero trust gre še dlje: brskalnik prejme le request ID in nič drugega.
Vaša prva identifikacija v nekaj minutah
Public key v brskalniku, secret key na vašem strežniku.