How to Solve Cloudflare Turnstile and Challenge in 2024

Sora Fujimoto
AI Solutions Architect
15-May-2024

Approximately 20% of the websites that require scraping employ Cloudflare, a robust anti-bot protection system that can easily block your access. With technologies that stand out in the mainstream, cloudflare could be a force to be reckoned with in 2024. Dealing with this can be quite frustrating, right?
But fret not! We'll be in for exploring effective ways to solve Cloudflare in 2024, so you don't have to go through all that hassle again. In fact, what you're reading right now is the most comprehensive guide on the subject!
Bonus Code
Here's a special bonus code for top CAPTCHA solutions: CapSolver: WEBS. Redeem this code and enjoy an additional 5% bonus with each recharge, without any limits!
Understanding Cloudflare Turnstile
Cloudflare Turnstile is a free tool designed to replace traditional CAPTCHAs. By integrating a simple code snippet, Turnstile allows website visitors to enjoy a seamless browsing experience without the interruptions of CAPTCHA challenges. It effectively prevents misuse and confirms the legitimacy of visitors while maintaining data privacy and eliminating the negative user experience often associated with CAPTCHAs. With Turnstile, websites can provide users with a more smooth and pleasant interaction.
Turnstiles Types Supported by CapSolver
Introducing CapSolver - The Premier Automated CAPTCHA Solver:
CapSolver stands out as the top automated CAPTCHA solver, offering exceptional capabilities in CAPTCHA resolution. Leveraging advanced automation methods and a strong infrastructure, CapSolver delivers precise and efficient CAPTCHA solving, making it the best solution for handling Turnstile and other CAPTCHA challenges in 2024 and beyond.

The Turnstile/Challenge verification code is a new attempt to replace reCaptcha. CapSolver automatically supports all its subtypes:
- Manual
- Non-Interactive
- Invisible
How to solve cloudflare turnstile
Next we'll cover then solving Cloudflare Turnstile by means of a token. In the beginning, there is no need to specify subtypes during your call. It is not necessary to provide your own custom User-Agent
yet,
Lets ignore this parameter.
The task type type
is as follows
AntiTurnstileTaskProxyLess
Step 1 Create the task
Create the task with the createTask.
In the process of using turnstile, we must input websiteURL
and websiteKey
, other parameters are optional.
Task Object Structure
Properties | Type | Required | Description |
---|---|---|---|
type | String | Required | AntiTurnstileTaskProxyLess |
websiteURL | String | Required | The address of the target page. |
websiteKey | String | Required | Turnstile website key. |
metadata | Map<String,String> | Required | Turnstile extra data . Turnstile Documentation |
metadata.acton | String | Optional | The value of the data-action attribute of the Turnstile element if it exists. |
metadata.cdata | String | Optional | The value of the data-cdata attribute of the Turnstile element if it exists. |
Example Request
txt
POST https://api.capsolver.com/createTask
Host: api.capsolver.com
Content-Type: application/json
json lines
{
"clientKey": "YOUR_API_KEY",
"task": {
"type": "AntiTurnstileTaskProxyLess",
"websiteURL": "https://www.yourwebsite.com",
"websiteKey": "0x4XXXXXXXXXXXXXXXXX",
"metadata": {
"action": "login", //optional
"cdata": "0000-1111-2222-3333-example-cdata" //optional
}
}
}
Example Response
json lines
{
"errorId": 0,
"status": "idle",
"taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006" // record taskId
}
Step 2 Getting Result
Use the getTaskResult method to get the recognition results
Depending on the system load, you will get the results within the interval of 1s
to 20s
Example Request
txt
POST https://api.capsolver.com/getTaskResult
Host: api.capsolver.com
Content-Type: application/json
json lines
{
"clientKey": "YOUR_API_KEY",
"taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006"
}
Example Response
json lines
{
"errorId": 0,
"taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006",
"status": "ready",
"errorCode": null,
"errorDescription": null,
"solution": {
"token": "0.mF74FV8wEufAWOdvOak_xFaVy3lqIDel7SwNhw3GgpICSWwTjYfrQB8mRT1dAJJBEoP7N1sESdp6WH9cTS1T0catWLecG3ayNcjwxVtr3hWfS-dmcBGRTx4xYwI64sAVboYGpIyuDBeMIRC3W8dK35v1nDism9xa595Da5VlXKM7hk7pIXg69lodfiftasIkyD_KUGkxBwxvrmz7dBo10-Y5zvro9hD4QKRjOx7DYj9sumnkyYCDx0m4ImDIIkNswfVTWI2V22wlnpHdvMgdtKYgOIIAU28y9gtdrdDkpkH0GHcDyd15sxQGd9VjwhGZA_mpusUKMsEoGgst2rJ3zA.UWfZupqLlGvlATkPo3wdaw.38d55cd0163610d8ce8c42fcff7b62d8981495cc1afacbb2f14e5a23682a4e13",
"type": "turnstile",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36"
}
}
Use SDK Request
::: code-group
python
# pip install --upgrade capsolver
# export CAPSOLVER_API_KEY='...'
import capsolver
# capsolver.api_key = "..."
solution = capsolver.solve({
"type": "AntiTurnstileTaskProxyLess",
"websiteURL": "https://www.yourwebsite.com",
"websiteKey": "0x4XXXXXXXXXXXXXXXXX",
"metadata": {
"action": "login" # optional
}
})
-
go
package main
import (
"fmt"
capsolver_go "github.com/capsolver/capsolver-go"
"log"
)
func main() {
// first you need to install sdk
//go get github.com/capsolver/capsolver-go
capSolver := capsolver_go.CapSolver{ApiKey: "..."}
solution, err := capSolver.Solve(map[string]any{
"type": "AntiTurnstileTaskProxyLess",
"websiteURL": "https://www.yourwebsite.com",
"websiteKey": "0x4XXXXXXXXXXXXXXXXX",
"metadata": map[string]string{
"action": "login" // optional
},
})
if err != nil {
log.Fatal(err)
return
}
fmt.Println(solution)
}
Understanding Cloudflare Chanllenge 5S
It uses the same underlying technology as Turnstile. It helps website owners to embed non-intrusive Cloudflare challenges on their websites to effectively prevent bot attacks. Also Cloudflare Challenge 5s introduces a brief 5-second delay before granting access to a website. Its purpose is to deter automated bots by requiring users to wait for a short period.
Chanlleges types Supported by CapSolver
There is no need to specify subtypes during your call. It is not necessary to provide your own custom User-Agent
yet,
we will ignore this parameter.
![][image_ref_a6kb1cxb]
The task type type
is as follows
AntiCloudflareTask
Proxy required
How to Solve Cloudflare Challenge
Firstly, as with Turnstile, we use CapSolver to create the task, (the steps are largely the same)
Step 1 Create Task
Create the task with the createTask.
In the process of using challenge, we must input websiteURL
,proxy
other parameters are optional.
Task Object Structure
Properties | Type | Required | Description |
---|---|---|---|
type | String | Required | AntiCloudflareTask |
websiteURL | String | Required | The address of the target page. |
proxy | String | Required | Learn using proxies |
Example request
txt
POST https://api.capsolver.com/createTask
Host: api.capsolver.com
Content-Type: application/json
json lines
{
"clientKey": "YOUR_API_KEY",
"task": {
"type": "AntiCloudflareTask",
"websiteURL": "https://www.yourwebsite.com",
"proxy": "158.120.100.23:334:user:pass"
}
}
Example Response
json lines
{
"errorId": 0,
"status": "idle",
"taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006" // record taskId
}
Step 2 Getting Result
Use the getTaskResult method to get the recognition results
Depending on the system load, you will get the results within the interval of 1s
to 20s
Example Request
txt
POST https://api.capsolver.com/getTaskResult
Host: api.capsolver.com
Content-Type: application/json
json lines
{
"clientKey": "YOUR_API_KEY",
"taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006"
}
Example Response
json lines
{
"errorId": 0,
"taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006",
"status": "ready",
"solution": {
"cookies": {
"cf_clearance": "..."
},
"proxy": "...",
"token": "...",
"type": "challenge",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
}
}
Use SDK Request
::: code-group
python
# pip install --upgrade capsolver
# export CAPSOLVER_API_KEY='...'
import capsolver
# capsolver.api_key = "..."
solution = capsolver.solve({
"type": "AntiCloudflareTask",
"websiteURL": "https://www.yourwebsite.com",
"proxy": "158.120.100.23:334:user:pass"
})
-
go
package main
import (
"fmt"
capsolver_go "github.com/capsolver/capsolver-go"
"log"
)
func main() {
// first you need to install sdk
//go get github.com/capsolver/capsolver-go
capSolver := capsolver_go.CapSolver{ApiKey: "..."}
solution, err := capSolver.Solve(map[string]any{
"type": "AntiCloudflareTask",
"websiteURL": "https://www.yourwebsite.com",
"proxy": "158.120.100.23:334:user:pass"
})
if err != nil {
log.Fatal(err)
return
}
fmt.Println(solution)
}
Conclusion
In 2024, CapSolver stands out as the optimal solution for managing Cloudflare's Turnstile and Challenge 5s, two prominent security mechanisms. CapSolver excels as a top automated CAPTCHA solver, offering superior CAPTCHA resolution capabilities. Utilizing advanced automation technology and a strong infrastructure, CapSolver effectively and accurately solves CAPTCHAs, making it the perfect choice for addressing Turnstile and other CAPTCHA challenges in 2024 and beyond.
Compliance Disclaimer: The information provided on this blog is for informational purposes only. CapSolver is committed to compliance with all applicable laws and regulations. The use of the CapSolver network for illegal, fraudulent, or abusive activities is strictly prohibited and will be investigated. Our captcha-solving solutions enhance user experience while ensuring 100% compliance in helping solve captcha difficulties during public data crawling. We encourage responsible use of our services. For more information, please visit our Terms of Service and Privacy Policy.
More

Cloudflare TLS Fingerprinting: What It Is and How to Solve It
Learn about Cloudflare's use of TLS fingerprinting for security, how it detects and blocks bots, and explore effective methods to solve it for web scraping and automated browsing tasks.

Lucas Mitchell
28-Feb-2025

How to Extract Data from a Cloudflare-Protected Website
In this guide, we'll explore ethical and effective techniques to extract data from Cloudflare-protected websites.

Lucas Mitchell
20-Feb-2025

How to Fix Cloudflare Errors 1006, 1007, and 1008 Quickly
Cloudflare errors 1006, 1007, and 1008 can block your access due to suspicious or automated traffic. Learn quick fixes using premium proxies, user agent rotation, human behavior simulation, and IP address changes to overcome these roadblocks for smooth web scraping.

Ethan Collins
05-Feb-2025

How to Bypass Cloudflare Challenge While Web Scraping in 2025
Learn how to bypass Cloudflare Challenge and Turnstile in 2025 for seamless web scraping. Discover Capsolver integration, TLS fingerprinting tips, and fixes for common errors to avoid CAPTCHA hell. Save time and scale your data extraction.

Aloísio Vítor
23-Jan-2025

How to Solve Cloudflare Turnstile CAPTCHA by Extension
Learn how to bypass Cloudflare Turnstile CAPTCHA with Capsolver’s extension. Install guides for Chrome, Firefox, and automation tools like Puppeteer.

Adélia Cruz
23-Jan-2025

How to Solve Cloudflare by Using Python and Go in 2025
Will share insights on what Cloudflare Turnstile is, using Python and Go for these tasks, whether Turnstile can detect Python scrapers, and how to effectively it using solutions like CapSolver.

Lucas Mitchell
05-Nov-2024