Cloudflare Demo Shop

Turnstile

A user-friendly, privacy-preserving CAPTCHA replacement. Most users pass invisibly; only suspicious sessions see a challenge. Free, drop-in, and works on any site.

How do you prove a user is human without making them click traffic lights for two minutes?

Traditional CAPTCHAs hurt your conversion rate, annoy real users, and increasingly get solved by cheap third-party services. Visually impaired users are punished disproportionately. And the popular alternatives ship browsing data to ad-tech companies. You need something that proves humanity without the friction — and without selling out your visitors.

How it fits together

Diagram coming soon

Architecture diagram for this solution will be added here.

How Cloudflare solves it

Common questions

Is Turnstile really free, even at high volume?
Yes, free for everyone. Cloudflare uses Turnstile to improve its own bot detection (and the broader internet's), so it's offered at no cost regardless of traffic volume.
What if a visitor still gets challenged? What do they see?
A simple managed challenge (a brief 'verifying you are human' spinner) or an interactive challenge for the most suspicious sessions. Far less intrusive than a Google CAPTCHA — no image grids, no audio puzzles, no 'select all crosswalks.'
Does Turnstile prevent every bot?
No tool does — but Turnstile catches the vast majority of common bot traffic against forms and login flows, especially when paired with rate limiting and Bot Management. For high-stakes endpoints (account creation, password reset), most customers stack Turnstile + bot scores + rate limiting.
Can I use Turnstile on a mobile app?
Yes — Turnstile supports webview-based mobile flows and provides a JS API your native wrapper can call into. There's also a server-to-server attestation API for fully native flows.

Try it live

Pick a scenario below to open a mock login page under that outcome. Each one uses one of Cloudflare's public test sitekeys, verified against the real siteverify endpoint on the server — the site itself never sees or chooses the key.

Turnstile's outcome depends on what its risk signals say about the visitor. Pick a scenario below to open a mock login page pre-wired to Cloudflare's public test keys for that outcome — each one shows what a real visitor would actually see.

Trusted human

Browser signals look normal. The challenge runs invisibly and the widget shows a green check almost immediately — no interaction needed.

Open as a human →

Suspicious visitor

Turnstile isn't sure and presents an interactive checkbox challenge. Solve it and the widget still passes — login proceeds normally.

Open as suspicious →

Confirmed bot

Turnstile classifies the session as automated and never issues a token. The widget shows its own failure state and login stays disabled — nothing reaches the server.

Open as a bot →

Docs & blogs

← Back to all solutions