Stop bots. Stop AI agents. Let humans through.
NeuroGuard is a 12 KB JavaScript widget that uses cognitive challenges and behavioral telemetry to block spam bots, scrapers, scalpers, and autonomous LLM agents — while keeping your real users in flow.
A real form, protected in real time.
Submit the form on the right. The widget collects behavioral telemetry, asks for a cognitive challenge if needed, and issues a single-use token that the server verifies. No CAPTCHA, no friction for humans.
- Token bound to your browser fingerprint + IP hash
- Single-use, expires in 120 seconds
- Server-side verification via
/api/v1/verify
shield.js · loading widget…Built for the agent era.
CAPTCHAs are dead. LLM agents solve them. NeuroGuard uses cognition + behavior instead.
Live in four steps.
The bots got smarter. So did we.
Autonomous LLM agents can click, type, scroll, and solve visual puzzles. They cannot (yet) reason about absurd logic, category ambiguity, or odd-one-out judgment the way humans can. That is the gap NeuroGuard exploits.
Pay only for what you verify.
Soft quota caps on all paid plans — we never break your forms. Upgrade anytime for more capacity.
- 1 site
- 10K verifications / mo
- All challenge types
- Community support
- 25 sites
- 500K verifications / mo
- Real-time analytics
- Webhook alerts
- Email support
- Unlimited sites
- Unlimited verifications
- 99.95% SLA
- Audit logs
- Priority support
Two snippets. That's it.
1. Embed the widget
<!-- Add once, anywhere in your <body> -->
<script
src="https://cdn.neuroguard.pro/shield.js"
data-site-key="ng_pk_your_site_key"
data-auto="true"
defer
></script>
<!-- Any <form> on the page is now protected. -->
<form action="/api/your-endpoint" method="POST">
<input name="email" type="email" required />
<textarea name="message" required></textarea>
<button type="submit">Send</button>
</form>2. Verify the token server-side
// Your backend — verify the token BEFORE acting on the submission.
export async function POST(req: Request) {
const { neuroguard_token } = await req.json();
const res = await fetch("https://api.neuroguard.pro/api/v1/verify", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
siteKey: process.env.NEUROGUARD_SITE_KEY,
secretKey: process.env.NEUROGUARD_SECRET_KEY,
token: neuroguard_token,
userAgent: req.headers.get("user-agent") || "",
ip: req.headers.get("x-forwarded-for") || "",
}),
});
const data = await res.json();
if (!data.valid) {
return Response.json({ error: "BLOCKED" }, { status: 403 });
}
// data.label: "HUMAN" | "BOT" | "AI_AGENT"
// data.score: 0..100
// data.challengePassed: boolean
return Response.json({ ok: true, label: data.label });
}