SSentriq

Developers

How Sentriq actually integrates

Every topic below maps to something real and tested today, with a link to the full reference. Where something isn't built yet, it says so plainly instead of implying otherwise.

Official SDKs

Available

Browser, React, Next.js, Node.js, PHP, and Laravel are implemented today — each a thin, idiomatic wrapper around the same REST API, sharing one resource model and one error format so switching between them never means relearning the product.

Python, Go, Java, and .NET are planned next: the resource model and error taxonomy are already designed and documented, just not implemented yet — each has its own Coming Soon reference page rather than a dead link.

Browse every SDK

Browser SDK

Available

@sentriq/browser is the primary client-side integration path: initialize it with a public key, then call track() with a named event (login, signup, payment, and more). It collects only coarse, non-invasive signals — screen, hardware, platform, timezone, locale — never keystrokes, canvas, or audio fingerprints.

It returns a risk level and decision your own code acts on — Sentriq never hangs indefinitely on a critical path, and it never silently swallows a failure. @sentriq/react and @sentriq/next/client wrap this SDK for React/Next.js apps rather than reimplementing it.

Browser SDK reference

Server API

Available

Every capability is also a plain REST endpoint over HTTPS with a secret key — device/event/risk-assessment reads, device trust, and security outcomes all go through the same API the official server SDKs (Node.js, PHP, Laravel) use under the hood.

Policy management and webhook configuration are dashboard-session-only, not reachable with a secret key — a deliberate security boundary, not a gap. See the Authentication section below.

REST API reference

Authentication

Available

Two credential classes, each scoped to exactly one project environment: a public key (pub_...), safe to embed in browser code, which can only submit events; and a secret key (sec_...), which lives on your backend only and can read data, manage device trust, and record outcomes.

Policy and webhook management require an authenticated dashboard session — not even a secret key can reach those endpoints. A public key can never record a security outcome or manage anything, by design.

Quickstart & auth model

Events

Available

A fixed event taxonomy (page_view, signup, login, login_failed, logout, password_reset, two_factor_challenge, sensitive_action, payment, custom) — each track() call scores that specific moment, not a rolling session.

Replay-safe: resubmitting the same event ID returns the original result instead of re-processing and re-scoring it.

Quickstart

Device IDs

Available

The browser never asserts its own device identity — Sentriq resolves it server-side from independently-hashed signals, with a confidence score and a human-readable reason for every match, new device, or conflict.

Every resource Sentriq returns (devices, events, risk assessments, and more) is identified by an opaque public ID, never the internal database row number — see the identifier format note below.

Device resolution concept

Risk Decisions

Available

Every event gets a deterministic, explainable 0-100 score from named, weighted signals, then a policy turns that score into allow / monitor / challenge / block — either your configured thresholds, or a rule you built from a small, explicit condition language.

A decision is never a black box: the response includes exactly which signals fired and why.

Risk decisions concept

Webhooks

Available

Subscribe an HTTPS endpoint to risk-decision, device-trust, and outcome events; Sentriq delivers each one asynchronously, signed with HMAC-SHA256 so you can verify it actually came from Sentriq, with automatic retry and backoff on failure.

Outbound requests are hardened against SSRF — a webhook can never be pointed at your own internal or private infrastructure.

Webhooks reference

Ready to see it end to end?

The live demo runs the real Browser SDK against the real API — the same integration path described above, not a mockup.

Try the live demo