Anti-Bot

What Is Cloudflare Turnstile?

What Is Cloudflare Turnstile? — conceptual illustration
On this page

Cloudflare Turnstile is a CAPTCHA-replacement service that verifies a visitor is a human without showing a traditional puzzle. It runs a series of non-interactive browser checks — fingerprinting signals, behavioral analysis, proof-of-work, and machine-learning scoring — and issues a token if the visitor passes. Sites embed Turnstile on forms and protected pages; scrapers and bots have to produce a valid Turnstile token to proceed.

Quick facts

VendorCloudflare
ReplacesCloudflare's older hCaptcha-based challenge
User experienceMostly invisible — a brief "Verifying" widget, no puzzle
Token TTLUsually 5 minutes
Bypass optionsReal-browser Turnstile solvers, integrated scraping APIs

How Turnstile works

Turnstile loads a small JavaScript widget from `challenges.cloudflare.com`. The widget runs a battery of checks: it inspects browser APIs (canvas, WebGL, audio, navigator properties), measures small behavioral signals (mouse movement timing, focus events, timing jitter), and runs a small proof-of-work computation in the background. The results are sent to Cloudflare, which scores the visitor and — if the score is high enough — returns a token. The token is included as a hidden form field when the page submits, and Cloudflare verifies it server-side via a sibling API call. Bots either fail one of the checks outright or score low enough that Turnstile holds them at the widget.

Turnstile vs Cloudflare Bot Management — what's the difference

This is the most common point of confusion. Cloudflare ships two distinct bot-protection products that get spoken about interchangeably:

TurnstileBot Management
What it isA CAPTCHA replacement widgetAn ML-driven scoring system
Where it firesOn specific forms / endpoints you chooseOn every request to your zone
TierFreeEnterprise add-on
Cookie evidencecf_clearance after solve__cf_bm on every request
Header evidenceWidget script from challenges.cloudflare.comcf-mitigated: challenge when blocked
Bypass approachSolve the widget (real browser or solver service)Pass the underlying fingerprint score

A site can run both — Bot Management scores every request, and only when the score is borderline does it surface a Turnstile widget as a friction-light challenge. Solving Turnstile alone won't help if the underlying score is already block-grade.

Why Turnstile is harder for scrapers than old CAPTCHAs

Old CAPTCHAs were image puzzles — solving them was a single discrete task you could outsource. Turnstile is continuous: it scores the entire browser environment, not just an interaction. A scraper that produces a valid token but does so from a Playwright instance with a leaky fingerprint will see Turnstile return a low score and the form will reject the token. The challenge is also tightly bound to the page — a token solved on `challenges.cloudflare.com` won't work on `example.com` because Cloudflare validates the sitekey and origin. This means token-reselling solvers have to operate at the right scope, with the right fingerprint, in the right session.

How scrapers handle Turnstile

The serious approach has two parts. First, present a real browser with consistent fingerprint signals — `--headless=new` Chrome with stealth patches, or a real headful instance running under display virtualization. Second, use a Turnstile-aware solver that runs the widget in that browser, lets it score naturally, and returns the resulting token. Pure API solvers that don't run in a real browser produce low-score tokens that the target rejects. Integrated scraping APIs that bundle browser, proxy, and Turnstile solving in one service produce the most consistent success rates because every layer is co-tuned.

Related terms

Concept map

How Cloudflare Turnstile connects

The terms most directly tied to this one. Hover a node to see its neighbours, click to preview, drag to rearrange.

0 terms · 0 connections
You are here · Anti-Bot
Building map…

Frequently asked questions

Is Turnstile a CAPTCHA?

Cloudflare calls it a CAPTCHA alternative. From the user's perspective there's no puzzle, just a brief verification. From a scraper's perspective it functions like a CAPTCHA — you need a valid token to pass, and producing one requires the same kind of solver infrastructure.

Does Turnstile work without JavaScript?

No. If JavaScript is disabled, Turnstile cannot run and the protected form won't submit. Plain HTTP scrapers cannot pass Turnstile without help — they need a JS-capable client.

How long does a Turnstile token last?

Usually 5 minutes from issuance. After that the token expires and a fresh challenge has to be completed. Sites can configure shorter or longer windows.

Why is my Turnstile token being rejected?

Either it's expired, it was solved for a different sitekey/origin, or it scored too low for the site's threshold. Low scores usually mean the fingerprint that produced the token didn't look human enough.

I see __cf_bm on every response but no Turnstile widget — what does that mean?

The site is running Cloudflare Bot Management (or the basic Bot Fight Mode), which scores every request silently. No Turnstile widget means your current score is acceptable. Lose the score (rotate to a bad IP, change User-Agent) and you'll start seeing the widget or an outright block.

Why does the cf_clearance cookie stop working after I rotate proxies?

cf_clearance is scoped to the IP + User-Agent that solved the challenge. Rotating either invalidates it and you'll be challenged again. Keep both stable for the lifetime of the session — same lesson as Akamai's _abck cookie.

Last updated: 2026-05-27