Smíðað til að passa við stafla þinn
Einföld REST með einu haus, týpaður Node-biðlari, MCP-þjónn, undirritaðir webhooks og sérsniðin lén. Ekkert þarf að setja upp á þjóninum nema þú viljir það.
Fimm leiðir inn
Sami atburður, úr shell, kóðanum þínum, aðstoðarmanni eða 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 Lestu, leitaðu og eyddu atburðum og gestum með einu header.
- Server SDK Tegundaður Node-biðlari með webhook-athugunum og opnun innsiglaðra niðurstaðna.
- MCP-þjónn API verkefnisins sem verkfæri fyrir gervigreindaraðstoðarmann.
- Webhooks Sérhver nýr atburður er sendur með POST á netþjóninn þinn, undirritaður, með endurtilraunum.
- Sérsniðið lén Þjónustaðu agentinn frá undirléni þínu með einni DNS-færslu, eins og hver virk síða ætti að gera.
- Innsigluð niðurstöður Dulkóðuð niðurstaða sem netþjónninn þinn opnar án þess að kalla á API.
Umboðsmaðurinn á hverri síðu
Ræstu það þegar formið opnast og biddu um request ID þegar notandinn grípur til aðgerðar. Það keyrir í bakgrunni og lokar aldrei síðunni.
- Engar háðar
- /agent.js sem script tag til að prófa, eða lítill npm-hleðsluforrit sem sækir núverandi agent í gegnum þitt eigið lén.
- Hvaða rammi sem er
- React, Svelte, Vue, Next.js, Nuxt, Angular, eða ekkert.
- Um það bil eitt kílóbæti
- Skýrslan sem það sendir. Það les aldrei netfang WebRTC.
- Í skyndiminni
- Hægt er að geyma niðurstöðuna fyrir setuna, þannig að innskráning og greiðsla á eftir kosta eina auðkenningu.
<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>Þín gögn, þínar reglur
Smíðað fyrir gagnabeiðnirnar sem þú færð.
Hýst í ESB
Atburðir eru geymdir á AWS eu-west-1 þar til þú eyðir þeim, eða í 1, 3 eða 5 ár ef þú velur það.
Eyddu external ID með einu kalli
Eyddu external ID og allir atburðir og tengingar við tæki hans hverfa. Fyrir gagnabeiðni eða lokaðan aðgang.
Ekkert fyrir vafrann til að stilla sig eftir
Flögg berast aldrei í vafrann. Zero trust hamurinn gengur lengra: vafrinn fær aðeins request ID og ekkert annað.
Fyrsta auðkenning þín, á nokkrum mínútum
Public key í vafranum, secret key á þjóninum þínum.