Cloudflare Turnstile solver on «SolveCaptcha»

Cloudflare captcha solver

Cloudflare uses multiple methods to manage unwanted traffic, including JavaScript challenges, CAPTCHA tests, and Turnstile—a user-friendly CAPTCHA that reduces user interaction while ensuring security. Cloudflare captcha solver automatically bypasses any types Cloudflare captcha.

Bypass Cloudflare captcha

Best Cloudflare captcha auto solver

By leveraging advanced human-based and AI-driven captcha-solving algorithms, SolveCaptcha achieves speed and cost efficiency, providing a top-tier experience for developers.

  • High Reliability with «SolveCaptcha» High Reliability

    Service offers the fastest update speeds compared to similar providers, keeping you ahead.

  • No Risks with «SolveCaptcha» No Risks

    You only pay for successfully solved CAPTCHAs, with strict monitoring in place to prevent any misuse or illegal activities.

  • «SolveCaptcha» is AI and Human-Powered service AI and Human-Powered

    We combine advanced AI with human verification for efficient, fully automated CAPTCHA solving.

  • Wide Compatibility with «SolveCaptcha» Wide Compatibility

    SolveCaptcha seamlessly integrates with APIs from top manual CAPTCHA recognition services.

  • Diverse Solutions on «SolveCaptcha» Diverse Solutions

    Access SolveCaptcha through both captcha solver API and a convenient Chrome extension.

  • «SolveCaptcha» is a trusted service Trusted

    Over 1 000 platforms have integrated captcha solver API for smooth, reliable automation.

Pricing for a Cloudflare captcha auto solver service.

SolveCaptcha is the most cheap and fastest service for solving Cloudflare captcha captchas.

«Cloudflare Turnstile» logo Cloudflare Turnstile Pricing $0.8 Speed 15 sec. Free capacity, per min. 2,883
More types

Cloudflare captcha solver API: How to solve and bypass Cloudflare captcha

The process for resolving Cloudflare captcha with SolveCaptcha is follows: When users encounter a captcha, they send a request to SolveCaptcha via captcha solver API, which quickly the captcha, allowing users to proceed without interruption.

Cloudflare Turnstile

Cloudflare Turnstile is a CAPTCHA system developed by Cloudflare designed to protect web forms and pages from automated submissions or malicious activity.

Turnstile is used in two scenarios:

  1. As a standalone CAPTCHA widget embedded on a webpage to safeguard forms against automated submissions. In this setup, the sitekey is retrieved and sent to the API alongside the full page URL. The resulting token is then added to the cf-turnstile-response and g-recaptcha-response fields before form submission. Optionally, a callback can be defined in the turnstile.render method.
  2. On Cloudflare-proxied websites where the Turnstile Challenge page appears. In this case, specific parameters (cData, chlPageData, and action) must be extracted, along with the User-Agent value provided by the API.
Standalone Turnstile captcha

Request example:

https://mysite.com/in.php?method=turnstile&key=YOUR_API_KEY&sitekey=0x4AAAAAAAVrOwQWPlm3Bnr5&pageurl=https%3A%2F%2Fmysite.com%2Fregister&json=1

Code examples for submitting Cloudflare Turnstile using cURL, Python, JavaScript, and Go are described below.

Response example:

{
              "status": 1,
              "request": "74327409378"
            }

The returned ID can be used to retrieve the CAPTCHA solution by sending a request to the res.php endpoint of the API.

Turnstile captcha on Cloudflare Challenge pages
The Turnstile Challenge Page

To bypass the Turnstile CAPTCHA on Cloudflare Challenge pages, you must include the following additional parameters in your request:

  • action: The action parameter value extracted from the page.
  • data: The cData value passed to the turnstile.render method or defined in the data-cdata attribute.
  • pagedata: The chlPageData value passed to the turnstile.render method.
How to extract the required parameters

To extract the required parameters, you can redefine the turnstile.render method to capture the parameters passed to it during execution. This involves injecting JavaScript code into the page before the Turnstile widget is initialized. Below is an example of how to achieve this:

const i = setInterval(() => {
              if (window.turnstile) {
                clearInterval(i);
                window.turnstile.render = (a, b) => {
                  let p = {
                    method: "turnstile",
                    key: "YOUR_API_KEY",
                    sitekey: b.sitekey,
                    pageurl: window.location.href,
                    data: b.cData,
                    pagedata: b.chlPageData,
                    action: b.action,
                    userAgent: navigator.userAgent,
                    json: 1
                  };
                  console.log(JSON.stringify(p));
                  window.tsCallback = b.callback;
                  return 'foo';
                };
              }
            }, 50);

Request example:

https://api.solvecaptcha.com/in.php?key=YOUR_API_KEY&method=turnstile&sitekey=0x0AAAAAAADnPIDROzbs0Aaj&data=7fab0000b0e0ff00&pagedata=3gAFo2...0ME1UVT0=&pageurl=https://mysite.com/&action=managed&json=1

Response example:

{
            "status": 1,
            "request": "74327409378"
            }

Use the returned ID to request the result from res.php endpoint of our API:

https://api.solvecaptcha.com/res.php?key=1abc234de56fab7c89012d34e56fa7b8&action=get&id=74327409378&json=1

Result example:

{
            "status": 1,
            "request": "0.4uMMZZdSfsVM8...610cd090",
            "useragent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36"
            }
List of GET/POST request parameters for https://api.solvecaptcha.com/in.php
Parameter Type Required Description
key String Yes Your API key
method String Yes turnstile - defines that you're sending Cloudflare Turnstile
sitekey String Yes Value of sitekey parameter you found on the page
pageurl String Yes Full URL of the page where you see the captcha
action String No* Value of optional action parameter you found on the page, can be defined in data-action attribute or passed to turnstile.render call
data String No* The value of cData passed to turnstile.render call. Also can be defined in data-cdata attribute
pagedata String No* The value of chlPageData passed to turnstile.render call
header_acao Integer
Default: 0
No 0 - disabled
1 - enabled.
If enabled, in.php will include Access-Control-Allow-Origin: * header in the response. Used for cross-domain AJAX requests in web applications. Also supported by res.php.
pingback String No URL for pingback (callback) response that will be sent when the captcha is solved.
URL should be registered on the server. More info here.
json Integer
Default: 0
No 0 - server will send the response as plain text
1 - tells the server to send the response as JSON
proxy String No Format: login:[email protected]:3128
You can find more info about proxies here.
proxytype String No Type of your proxy: HTTP, HTTPS, SOCKS4, SOCKS5.

* - parameters required to bypass Turnstile on Cloudflare Challenge pages

List of GET request parameters for https://api.solvecaptcha.com/res.php
GET Parameter Type Required Description
key String Yes Your API key
action String Yes get - get the answer for your captcha
id Integer Yes ID of captcha returned by in.php.
json Integer
Default: 0
No 0 - server will send the response as plain text
1 - tells the server to send the response as JSON

Request URL example:

https://api.solvecaptcha.com/res.php?key=1abc234de56fab7c89012d34e56fa7b8&action=get&id=2122988149

Code examples for send Cloudflare Turnstile:

cURL

curl --location 'https://api.solvecaptcha.com/in.php' \
            --form 'key="YOUR_API_KEY"' \
            --form 'method="turnstile"' \
            --form 'sitekey="0x1AAAAAAAAkg0s2VIOD34y5"' \
            --form 'pageurl="https://mysite.com/register"' \
            --form 'json="1"'
Python

import requests

            url = "https://api.solvecaptcha.com/in.php"

            payload = {'key': 'YOUR_API_KEY',
            'method': 'turnstile',
            'sitekey': '0x1AAAAAAAAkg0s2VIOD34y5',
            'pageurl': 'https://mysite.com/register',
            'json': '1'}
            files=[

            ]
            headers = {}

            response = requests.request("POST", url, headers=headers, data=payload, files=files)

            print(response.text)
JavaScript (Node.js)

var request = require('request');
            var options = {
              'method': 'POST',
              'url': 'https://api.solvecaptcha.com/in.php',
              'headers': {
              },
              formData: {
                'key': 'YOUR_API_KEY',
                'method': 'turnstile',
                'sitekey': '0x4AAAAAAAPMtoL-SSuvUpPf',
                'pageurl': 'https://mysite.com/page/containing/cloudflare-turnstile',
                'json': '1'
              }
            };
            request(options, function (error, response) {
              if (error) throw new Error(error);
              console.log(response.body);
            });
Go

package main

              import (
                "fmt"
                "bytes"
                "mime/multipart"
                "net/http"
                "io"
              )
              
              func main() {
              
                url := "https://api.solvecaptcha.com/in.php"
                method := "POST"
              
                payload := &bytes.Buffer{}
                writer := multipart.NewWriter(payload)
                _ = writer.WriteField("key", "YOUR_API_KEY")
                _ = writer.WriteField("method", "turnstile")
                _ = writer.WriteField("sitekey", "0x1AAAAAAAAkg0s2VIOD34y5")
                _ = writer.WriteField("pageurl", "https://mysite.com/register")
                _ = writer.WriteField("json", "1")
                err := writer.Close()
                if err != nil {
                  fmt.Println(err)
                  return
                }
              
              
                client := &http.Client {
                }
                req, err := http.NewRequest(method, url, payload)
              
                if err != nil {
                  fmt.Println(err)
                  return
                }
                req.Header.Set("Content-Type", writer.FormDataContentType())
                res, err := client.Do(req)
                if err != nil {
                  fmt.Println(err)
                  return
                }
                defer res.Body.Close()
              
                body, err := io.ReadAll(res.Body)
                if err != nil {
                  fmt.Println(err)
                  return
                }
                fmt.Println(string(body))
              }
«SolveCaptcha» captcha bypass extensions

Captcha Bypass Extension

Chrome browser extension allows automatically solving captchas. Including Google reCAPTCHA v2, v3, FunCaptcha, hCaptcha, Cloudflare bypass, Amazon AWS WAF, and more types.

Best Captcha Recognition and Solving Service Supported

The service enables recognition, solve, bypass, pass of any type of popular captcha.

More types