Widget Mode Comparison

All three widgets below use the same account and validate against the same siteverify endpoint. The only difference is the widget's mode setting and the UX it produces for the visitor.

How to demo this: Watch what happens to each widget as the page loads. Non-Interactive shows a loading spinner then a checkmark. Managed adapts based on risk (usually invisible, sometimes shows a checkbox). Invisible shows nothing at all - the challenge runs entirely in the background and the token is populated silently.

Non-Interactive

Always visible widget. User sees a spinner then a checkmark. No user action needed.

Use for: Public forms where you want the user to see verification is happening.

Managed recommended

Cloudflare picks the challenge type dynamically based on risk. Usually invisible. Falls back to interactive only when needed.

Use for: Almost everything. Best UX-to-security trade-off.

Invisible

Fully invisible. No widget rendered. User sees only your form. Token is populated in the background.

Use for: Native mobile-style UX where a widget would feel intrusive.

Note on this demo: Two of the three widgets use Cloudflare's public "always pass" test key (1x00000000000000000000AA) because a real site key can only be one mode at a time. The Managed widget uses the real site key. All three still perform full server-side siteverify on submission.
Cloudflare public test keys (for developer testing):