Developers
Three calls. One identity. Zero password resets.
The SDK runs in the browser. Your server gets an accept or deny with calibrated confidence. Your session layer stays yours.
0 ms
Median verify latency (lab)
< 0 ms
p95 at the edge
99.95%
Availability bar we design against
login.ts
// 1. Begin a session
const session = await gp.start({ user: "ada@stackcorp.com" });
// 2. Run a short challenge in the browser
const signature = await gp.capture({ session });
// 3. Verify on your server
const { ok, confidence, reason } = await gp.verify(signature);
if (ok && confidence > 0.92) grantAccess();// request
POST /v1/verify
Content-Type: application/json
{
"session": "sess_…",
"signature": "sig_…"
}// response
{
"ok": true,
"confidence": 0.961,
"decision": "accept",
"reason": "match",
"vector_id": "v_2J4Q…",
"elapsed_ms": 184
}Stack
JS / TS SDKBrowser-native
RESTJSON + signed nonces
WebhooksDecisions + audit
Server runtimesNode, Deno, Bun, Edge
First integration in one sitting. Same story as the SDK, spelled out in the architecture doc.