Zeno Invisible Mode validates the user in the background without any user interaction.
Do not emit the <zeno-widget> tag. Instead, import the class.
import { Zeno } from 'https://cdn.jsdelivr.net/gh/zeno-security/zeno@latest/dist/client/zeno.min.js';
async function protectAction() {
const zeno = new Zeno({
siteKey: 'YOUR_KEY',
apiEndpoint: 'https://your-worker/api'
});
try {
const token = await zeno.solve();
// Submit token with your form data
} catch (error) {
console.error("Bot detected or timeout", error);
}
}
In this mode, the “observation” happens so quickly the user doesn’t notice, but the computational cost remains real for any bot attempting to automate this at scale.