Skip to content
LAMP.AR Solutions

LAMP.AR / SCRIPTS

Overage

Camera age checks. One line of code. Visitors look at the camera for three seconds and turn their head slightly. Our model estimates age and hands your site the result as a signed token.

Live demo

Try it on your face

The camera only turns on with your permission. No photos are stored.

How it works

Three seconds

  1. Camera

    The widget takes 6 frames: looking straight and turning the head. That makes printed-photo tricks harder.

  2. Estimate

    On our EU server a face detector and an age model return a result in seconds. Frames are dropped from memory right away.

  3. Token

    If the estimate clears the threshold, your site gets an Ed25519-signed JWT that your server verifies.

Embed

Two steps

1. Add the script to your site

<!-- Simplest: one line. Covers the page until the visitor passes, remembers it until the tab is closed -->
<script src="https://lamp.ar/overage.js" data-site-key="YOUR_SITE_KEY" data-auto="gate"></script>

<!-- Or call it yourself and verify the token on your server -->
<script src="https://lamp.ar/overage.js" data-site-key="YOUR_SITE_KEY"></script>
<script>
  // result: { result: "pass", token } | { result: "fail" } | { result: "cancelled" }
  AgeGate.verify().then(function (r) {
    if (r.result === "pass") {
      fetch("/api/age-verified", { method: "POST", body: r.token });  // verify on your server
    }
  });
</script>

2. Verify the token on your server

// npm i jose
import { createRemoteJWKSet, jwtVerify } from "jose";

const JWKS = createRemoteJWKSet(new URL("https://lamp.ar/.well-known/jwks.json"));

export async function isAdult(token) {
  const { payload } = await jwtVerify(token, JWKS, {
    issuer: "https://lamp.ar",
    audience: "YOUR_SITE_KEY",
  });
  return payload.age_over >= 18;   // then set your own session cookie
}

Never trust the browser result alone: always verify the token server-side. Public keys: https://lamp.ar/.well-known/jwks.json

Privacy

We keep no photos

Photos stored

Frames are processed in memory and deleted as soon as we answer.

EU server

The service runs in Germany, in a Hetzner data centre.

Only the threshold

The token carries only “18+”, never the age, a name or a photo.

Plans

Early access

The service is in early access. Write to us and we will run a free pilot on your site.

Pilot

Free

100 checks a month, one site. For testing.

Get started

Business

Custom

Thousands of checks, several sites, usage stats.

Contact us

Enterprise

Custom

On your servers, custom thresholds and an SLA.

Contact us

Limits

Straight talk

  • This is age estimation, not identity verification. The model's average error is a few years, so the default threshold is 25.
  • The head-turn check stops printed photos, not video replays or masks.
  • Where the law requires formal verification, offer an ID check when the result is “fail”.