Three ways in.
One script tag, a call from your backend, or a link you send to someone. Pick the one that fits how much you want to build, and change your mind later.
Least to build
Embed the widget
One script tag on your page
Drop the verification widget into your site. No build step, no framework requirement, nothing to keep updated.
- Renders in an iframe, isolated from your page
- Auto-sizes to its content
- Callbacks for ready, started, verdict and error
- Works with a shareable link or a session you created
- Restrict which of your domains may embed it
<script src="https://verify.cognau.com/embed.js"></script>
<script>
const v = Cognau.open({
link: 'cgn_vl_…',
onVerdict: r => { v.close(); console.log(r.passed, r.sessionId) }
});
</script>Production shape
Server API
Create sessions with your secret key
Your backend opens the session, so the browser only ever holds a single-use token and the result arrives somewhere a user cannot touch.
- Separate test and live keys, with separate data
- Signed webhooks as the authoritative result
- Your own reference echoed back for reconciliation
- Optional monthly quota per account
- Full session history and audit log
// Your server, with your secret key
POST /api/v1/session/create
Authorization: Bearer cgn_sk_live_…
{
"platform": "web",
"clientReference": "user_4821"
}
// Returns a single-use token for the browser
{ "sessionId": "…", "sessionToken": "cgn_st_…" }Nothing to deploy
Verification links
Send someone a URL
They complete the check, you get the result. Useful for trials, support flows and one-off verifications, with no integration at all.
- Created from the dashboard or one API call
- Single use by default, and always expires
- Revocable instantly
- Optional redirect back to your own page
- Same result delivery as any other session
POST /api/v1/cockpit/verification-links
Authorization: Bearer cgn_sk_live_…
{
"label": "Acme onboarding",
"clientReference": "user_4821",
"maxUses": 1
}
// → https://verify.cognau.com/?link=cgn_vl_…Full reference, including webhook payloads and error codes, is in the documentation.
What happens between the session opening and the result landing.
- 1
The session opens
Your server creates it with a secret key, or someone opens a link you sent.
- 2
The check runs
The camera opens and a short sequence of prompts is issued, drawn at random for that session.
- 3
Scoring happens elsewhere
Frames are read as they arrive, never on the user device, so the result is not something the device can influence.
- 4
The result lands
A pass or a fail with a confidence score, delivered to your server by signed webhook as verification.completed.
- 5
The capture is pruned
An abandoned session is deleted within 24 hours. A scored one keeps a small sample as evidence, on a published schedule.
What holds true whichever way you integrate.
Credentials that expire
Encrypted transport, single-use session tokens and time-limited links. Deletion deadlines are enforced by the database rather than by a job somebody can forget to run.
Scored as it runs
Frames are scored as they arrive over a persistent connection, so the result lands as soon as the check itself is over, usually inside a minute.
A sandbox that behaves
Test keys run every path above and let you force a pass or a fail without a camera. Sandbox traffic stores no video and is never billed.
Ready to secure your platform?
Confirm a real person is on the other end, before the decision that depends on it. Create an account and run your first check in the sandbox, free.