Cookie usage notification

This site uses cookies. Cookies remember you, so we can provide you with personalized services. Read our privacy policy.

Cloudflare Turnstile demo

This page explains how Cloudflare Turnstile is displayed and how Cloudflare Turnstile verification works. You can also check how the Cloudflare Challenge works on example page.

  • Cloudflare Turnstile
  • Cloudflare Challenge
Logo of «Cloudflare Turnstile»

In many cases Cloudflare Turnstile hinder accessibility, frustrate users, limits access to open information, makes testing application and sites difficult. Use Cloudflare Turnstile solver for automatic bypass.

How to solve Cloudflare Turnstile

  1. Open developer's console in your browser and find element with data-sitekey attribute.

    <div class="cf-turnstile" data-sitekey="0x4AAAAAAAVrOwQWPlm3Bnr5"></div>
  2. Send sitekey and pageurl to our API.


    $result = $solver->turnstile([
      'sitekey' => '0x4AAAAAAAVrOwQWPlm3Bnr5',
      'url'     => '',


    result = solver.turnstile(sitekey='0x4AAAAAAAVrOwQWPlm3Bnr5', url='')


    require 'api_2captcha'
    client ="YOUR_API_KEY")
    result = client.turnstile({
      sitekey: '0x1AAAAAAAAkg0s2VIOD34y5',
      pageurl: ''

    Wait for the result, which may look like this:



    1. Make a POST request to with the following parameters:

        "key": "YOUR_API_KEY",
        "method": "turnstile",
        "sitekey": "0x4AAAAAAAVrOwQWPlm3Bnr5",
        "pageurl": "",
        "json": 1
    2. If everything is fine server will return the ID of your captcha:

        "status": 1,
        "request": "2122988149"
    3. After 15-20 seconds send GET request to get the result:


      If captcha is already solved server will respond with the answer token:

        "status": 1,
        "request": "0.WoGeDojxQzHCCk023JRjfxv23olYh37jFdvPrcqmNeQ7PbSYIEuiBTK2SR_GdjfMitYEC23Gm7Vt93U1CPcI6aIFEhG-ffe1i9e6tIfIlYCFtb7OMxTB4tKCyTdpiaA.SP5YT77nuMNdOhZlvoBWAQ.da6448d22df7dd92f56a9fcf6d7138e5ee712bcf7d00c281f419b3bc091cbe64"

      If captcha is not solved yet server will return CAPCHA_NOT_READY code. Repeat your request in 5 seconds. If something went wrong server will return an error code.

  3. Use the token returned in your interaction with the target website.
    Normally the token is sent through the input with name="cf-turnstile-response" or, if reCAPTCHA compatibility mode is enabled, also in input with name="g-recaptcha-response". Also the token can be processed by a callback function defined in turnstile.render call or inside data-callback attribute.

    On this demo page we use the input that can be changed this way:

    document.querySelector('[name="cf-turnstile-response"]').value = 'TOKEN';