For developers
The human layer for the internet.
CAPTCHA proves you can click. I AM HUMAN proves there's a unique real person behind the account — verified by humanity, not by an ID document. One call returns a yes/no and a reusable Human ID. No names, no documents, no personal data ever leaves this platform.
Hard to fake
Every proof is AI-screened and voted on by real humans.
One person, one ID
Face matching blocks the same person verifying twice.
Zero personal data
Partners receive a yes/no and a Human ID — nothing else.
1. Get an API key
Connect a wallet, name your app, and copy the key. It's shown once.
2. Ask if someone is human
GET /api/public/v1/verify?wallet=… — also accepts POST with a JSON body. Look up a public profile with GET /api/public/v1/human/{id}.
curl "https://iamhuman.live/api/public/v1/verify?wallet=WALLET_ADDRESS" \
-H "x-api-key: ih_live_xxxxxxxxxxxxxxxx"{
"verified": true,
"human_id": 1,
"verified_at": "2026-08-24T21:04:11.921Z",
"human_percentage": 96.4,
"voters": 132,
"profile_url": "https://iamhuman.live/human/1"
}3. Drop-in SDK
Keep the key server-side — never ship it to the browser.
// iamhuman.js — drop-in SDK (server side only)
export async function isHuman(wallet, apiKey) {
const res = await fetch(
`https://iamhuman.live/api/public/v1/verify?wallet=${wallet}`,
{ headers: { "x-api-key": apiKey } },
);
if (!res.ok) throw new Error("verification failed");
const data = await res.json();
return data.verified ? data.human_id : null;
}
// usage
const humanId = await isHuman(user.wallet, process.env.IAMHUMAN_KEY);
if (!humanId) return deny("Bot or unverified account");Responses are yes/no only. Wallet addresses, videos and photos are never exposed through the API.
