[ live_signal_demo ]

Stop interrogating
humans.

One script, one verdict. HumanProof watches the shape of interaction — counts, never contents — and answers likely_human before your expensive action runs. No CAPTCHA. No LLM.

standing.verdictwaiting
pointer_rhythm
▯▯▯▯▯▯▯▯ 0.00
typing_cadence
▯▯▯▯▯▯▯▯ 0.00
scroll_drift
▯▯▯▯▯▯▯▯ 0.00
verdict
no_signal_yet
move, scroll or type — a live illustration, not a real verdict

[ the_dead_internet ]

The web isn’t human anymore.

Bots now outnumber people online. Modern AI agents pass as human on every signup, vote, review and referral — and telling a person from a machine has never been harder, or moving faster.

51%
of web traffic is bots — the first time machines outnumber humans.
imperva, 2025
57%
of web requests aren’t human.
cloudflare, 2025
+7,851%
growth in autonomous AI-agent traffic in a year.
hyman, 2026

The old defenses — captchas, puzzles, “click all the traffic lights” — are already solved by the bots they’re meant to stop. So we built a different kind of proof.

[ the_captcha_is_obsolete ]

Stop interrogating. Start reading.

the_old_way
“Click all the traffic lights.”
Friction on every real human
Already solved by bots
A puzzle, not a proof
humanproof
“Just be yourself.”
Zero friction — nothing to solve
Combines behavior, integrity and request evidence
A durable, readable verdict

[ live_now / building_next ]

Honest about the boundary.

available_now

Passive collection, proof and standing, app-scoped reputation, guided onboarding, idempotent shadow recommendations for expensive AI and SaaS actions, independent outcome ingestion, signed webhooks, policy controls, exact source-backed usage with customer caps.

building_next

Self-serve subscription lifecycle and billing recovery. Plans are published on the pricing page; checkout isn’t live yet — we’ll say so until it is.

the proof is likely_human, confidence-qualified — never guaranteed. a fully coherent cold bot can still pass; we say so plainly.

[ what_we_measure ]

Evidence of likely human activity.

Deterministic signals, read passively. No LLM, no content, and no claim that any one signal is impossible to spoof.

01 / pointer
Pointer rhythm

The cadence and timing of movement — never the coordinates — at a tempo scripts struggle to fake.

02 / typing
Typing cadence

Inter-key rhythm and natural hesitation — the tempo of a human hand, never the keys.

03 / scroll
Scroll rhythm

The cadence and presence of scrolling — the timing, not pixel deltas.

04 / coherence
Request coherence

Checks browser declarations against request headers emitted by the browser itself.

[ how_it_works ]

Invisible to likely human
in three lines.

01
Embed one script

Drop a single tag on the page. Nothing to configure, no UI to render.

02
We read, passively

As the visitor just moves and types, the verdict forms. No gesture, no puzzle.

03
Read the verdict

Query GET /api/verify/standing any time for a durable proof-of-human.

[ the_anti-browsergate ]

Counts,
never contents.

We watch process to prove integrity — for one purpose, then we drop the raw. We keep the proof you are human, never a record of what you did — and never sell it. Privacy isn’t an apology here; it’s the architecture.

read_the_boundary →
datumderivedraw sent
What you typedrhythm onlynever
Where you pointedshape onlynever
Page contentnever read

[ for_developers ]

One script.
One verdict.

Embed, then read the standing verdict from your backend whenever you need to gate an action.

full_docs →
index.html
<!-- embed once -->
<script src="https://humanproof.work/gate.js"
        data-site-key="YOUR_KEY"></script>

// read the standing verdict
GET /api/verify/standing
→ { human: true, score: 92, tier: "passive" }

See the signal
form in real time.

No sign-up. Just move and type — and watch the picture build.

try_the_live_demo →