DEVELOPER PREVIEW Meet your new human verification API

Prove you’re human.

Human verification for the internet of agents.

Establish human presence. Return with a passkey.
Protect the action, without collecting your users’ biometric data.

No puzzles No app required No DNS migration
THE VERIFICATION FLOWBrowser → I’m Real → Your backend
01 / YOUR APPLICATION

One protected action.

Account registration,
with a human behind it.

account.register
I’m RealHOSTED FLOW

A quick check.
Then you’re in.

Use a passkey linked to your
previous human enrollment.

Try the sandbox
Your biometric data stays private
02 / YOUR BACKEND
Bound to this action
Assurance
enrolled_human
Method
passkey
Fresh presence
false
Code exchange
one-time

Illustrated result. The sandbox
demonstrates the full flow.

The decision is made on the server.Explore the security model
DESIGNED FOR YOUR STACK
Next.js
React
Node.js
REST API
MCP
THE HUMAN CHECK, REBUILT

Verify once.
Make the return simple.

A clear separation between establishing human presence and authenticating an enrolled credential.

01

Establish presence

An approved liveness provider checks for a live person. I’m Real validates the result on the backend.

02

Connect a passkey

Register a passkey securely linked to the accepted enrollment. Your device or security key keeps the credential.

03

Protect the action

Your backend redeems a one-time code and validates the result for the exact application and action.

DEVELOPER FIRST

A small integration.
A real security boundary.

Add the widget. Open the hosted flow. Validate the result on your backend before the protected action.

React component and browser SDK Typed server and partner SDKs OAuth-secured MCP tools for coding agents
Build your first integration
protect-registration.tsSERVER
// Exchange and validate on your backend.
const proof = await imreal.exchange({
 code, codeVerifier, redirectUri,
 action: 'account.register',
 actionReference, nonce,
 assurance: 'enrolled_human'
});

// Consume once, with the protected action.
await db.transaction(async tx => {
 await consumeOnce(tx, proof.verificationId);
 await createAccount(tx, input);
});
A browser callback never authorizes the action.
EXPLICIT ASSURANCE

Know what
your proof means.

Require the evidence your action needs. A successful passkey authentication and a fresh presence check make different claims.

LEVEL 01

Enrolled human

Control of a passkey linked to a previously accepted human enrollment.

Does not establish fresh physical presence.
enrolled_human
LEVEL 02

Fresh presence

A new, server-validated live-person check within the required freshness window.

A passkey alone cannot satisfy this policy.
fresh_presence

Identity proofing and unique-person assurance are reserved for future capabilities. Global identity uniqueness is not a current guarantee.

PLATFORMS & PARTNERS

Your platform.
Human verification, built in.

Provision customer organizations, create applications and attribute usage through one API. Customers don’t need a separate developer account.

Explore the partner API
I’m Real infrastructure
Your platformpartner
Customer workspaceorganization
Protected applicationapplication

Isolated configuration. Shared verification infrastructure.

DATA MINIMIZATION

The proof belongs
in your application.
The face doesn’t.

Applications receive a verification result and an application-specific identifier. Face images, biometric templates and identity documents are never included.

Each application gets a different subject identifier, limiting automatic correlation between unrelated services.

Read the privacy approach
CLEAR USAGE ACCOUNTING

Different checks.
Separate meters.

Enrollment, returning verification and fresh presence are counted separately, with customer and partner attribution.

Developer sandboxAvailable
Production & wholesale plansSetup required

Commercial pricing and payment collection are not enabled yet. Production enrollment requires an approved provider and operational setup.

Open the developer console
BUILT FOR THE HUMAN ON THE OTHER SIDE

Start with a real check.