Developer Experience
Built by Engineers, for Engineers
Three lines of code to production-grade device identification. No config files, no build steps, no vendor lock-in.
Quick Start
From zero to device fingerprint in three lines. Works with any JavaScript framework.
// 1. Installnpm install @tracio/sdk// 2. Initializeimport { Tracio } from '@tracio/sdk'const tracio = Tracio.init({ publicKey: '5ca175fc...' })// 3. Identifyconst { visitorId } = await tracio.getResult()SDKs & Server Integration
Official npm SDKs for the browser, plus signed webhooks so any server-side language can consume identification events. All open-source, all typed.
Client SDKs
npm install @tracio/sdknpm install @tracio/react @tracio/sdknpm install @tracio/vue @tracio/sdknpm install @tracio/angular @tracio/sdknpm install @tracio/svelte @tracio/sdkServer-side
No server SDK to install — identification events are delivered to your backend as signed webhooks (HMAC-SHA256), so any HTTP stack works. To read history on demand, call the Server API at api.tracio.ai/v1 with your secret key, available from the Pro plan.
API Features
Everything you need for production integration. No surprises.
Webhooks
Real-time event notifications to your server. Pick which of the four event types an endpoint receives; failed deliveries are retried automatically over several hours.
Rate Limits
Clear limits with clear headers: 10 Server API requests per second on Pro, 50 on Business, 200 on Enterprise. Every response reports what you have left.
Signature Verification
Every webhook is signed with HMAC-SHA256 (X-Tracio-Signature) over the raw body and a timestamp, giving you replay-safe, tamper-proof delivery.
Server API
Look up visitor history, session lists, and velocity counters over HTTPS with a secret key (tracio_sk_…) sent as a Bearer token. Read-only, and scoped to your workspace.
API in Action
Real request/response examples. Copy, paste, ship.
Fetch Webhook Signing Keys
$ curl https://api.tracio.ai/.well-known/webhook-keys{ "keys": [ { "kid": "k1", "alg": "Ed25519", "publicKey": "MCowBQYDK2VwAyEA9tR2v1kQ..." } ]}Look Up a Visitor
$ curl "https://api.tracio.ai/v1/visitors/X7fh2Hg9LkMn3pQr5tBvQw3xZa9mK2pL4nR8dT6y" \ -H "Authorization: Bearer tracio_sk_XXXX...XXXX"{ "visitorId": "X7fh2Hg9LkMn3pQr5tBvQw3xZa9mK2pL4nR8dT6y", "firstSeenAt": "2026-02-01T08:11:00Z", "lastSeenAt": "2026-03-16T14:22:01Z", "visits": 14, "incognitoVisits": 2, "uniqueIps": 6, "uniqueCountries": 2, "risk": { "maxRiskScore": 63, "lastDecision": "real" }, "network": { "vpnSeen": false, "proxySeen": false, "torSeen": false, "datacenterSeen": true }, "meta": { "plan": "pro", "retentionDays": 30, "from": "2026-02-14T00:00:00Z", "to": "2026-03-16T14:30:00Z" }}Open Source, Open Process
Our SDKs are open-source. Report bugs, submit PRs, or just read the code. Transparency is a feature.