Ndërtuar për t'u përshtatur me stack-un tuaj
REST i thjeshtë me një header, klient Node i tipizuar, server MCP, webhook-e të nënshkruara dhe domene me porosi. Nuk ka asgjë për të instaluar në serverin tuaj, përveç nëse dëshironi.
Pesë mënyra për të hyrë
I njëjti ngjarje, nga një shell, kodi yt, një asistent ose një push.
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' })- Server API Lexo, kërko dhe fshi ngjarje dhe vizitorë me një header.
- SDK për server Klient Node i tipizuar me kontrolla webhook dhe hapjen e rezultateve të mbyllura.
- Serveri MCP API-ja e projektit tuaj si mjete për një asistent AI.
- Webhooks Çdo ngjarje e re dërgohet me POST te serveri juaj, e nënshkruar, me rigjykime.
- Domen i personalizuar Shërbeni agentin nga një nënndomen i juaji me një regjistrim DNS, siç duhet çdo faqe aktive.
- Rezultate të vulosura Një rezultat i enkriptuar që serveri juaj e hap pa thirrur API-n.
Agjenti në çdo faqe
Niseni kur hapet formulari dhe kërkoni një request ID pasi përdoruesi të veprojë. Ai funksionon në sfond dhe nuk e bllokon kurrë faqen.
- Pa varësi
- /agent.js si etiketë script për ta provuar, ose një ngarkues i vogël npm që merr agjentin aktual përmes domenit tuaj.
- Çdo framework
- React, Svelte, Vue, Next.js, Nuxt, Angular ose asnjë.
- Rreth një kilobajt
- Raporti që dërgon. Nuk lexon kurrë adresat e rrjetit WebRTC.
- E ruajtur në memorie
- Një rezultat mund të mbahet për sesionin, kështu që hyrja dhe pagesa pas saj kushtojnë një identifikim.
<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>Të dhënat tuaja, rregullat tuaja
Ndërtuar për kërkesat e të dhënave që do të merrni.
Strehuar në BE
Ngjarjet ruhen në AWS eu-west-1 derisa t'i fshini, ose për 1, 3 ose 5 vjet nëse e zgjidhni atë.
Fshini një external ID me një thirrje
Fshini një external ID dhe të gjitha ngjarjet dhe lidhjet e pajisjeve të tij zhduken. Për kërkesë të të dhënave ose llogari të mbyllur.
Asgjë për shfletuesin t'u përshtatet
Flamujt nuk arrijnë kurrë te shfletuesi. Modaliteti zero trust shkon më tej: shfletuesi merr vetëm një request ID dhe asgjë tjetër.
Identifikimi juaj i parë, në disa minuta
Një public key në shfletues, një secret key në serverin tuaj.