Cloudflare Turnstile demo

backBack to captcha list

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="0x4AAAAAAAC3DHQFLr1GavRN"></div>
  2. Send sitekey and pageurl to our API.


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


    result = solver.turnstile(sitekey='0x4AAAAAAAC3DHQFLr1GavRN', 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": "0x4AAAAAAAC3DHQFLr1GavRN",
        "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';