Skip to content

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.

app.js
// 1. Install
npm install @tracio/sdk
// 2. Initialize
import { Tracio } from '@tracio/sdk'
const tracio = Tracio.init({ publicKey: '5ca175fc...' })
// 3. Identify
const { 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

JSJavaScriptnpm install @tracio/sdk
REReactnpm install @tracio/react @tracio/sdk
VUVuenpm install @tracio/vue @tracio/sdk
NGAngularnpm install @tracio/angular @tracio/sdk
SVSveltenpm install @tracio/svelte @tracio/sdk

Server-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.

JSNode
PYPython
GOGo
RBRuby
PHPPHP

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.