Troubleshooting

CaptchaAI Wrong CAPTCHA Type Error: How to Fix

Submitting a CAPTCHA with the wrong method parameter is the fastest way to waste credits and get errors. When you send userrecaptcha for a Turnstile, or turnstile for a GeeTest, CaptchaAI either returns ERROR_BAD_PARAMETERS, ERROR_CAPTCHA_UNSOLVABLE, or a token that the target rejects.


Symptoms

What happens Likely cause
ERROR_BAD_PARAMETERS Missing required fields for the method
ERROR_CAPTCHA_UNSOLVABLE Method does not match CAPTCHA type
Token solved but rejected by site Correct solver, wrong CAPTCHA type on page
Unexpected response format Used the wrong method family

CAPTCHA type to method mapping

CAPTCHA type CaptchaAI method Required parameters
reCAPTCHA v2 userrecaptcha googlekey, pageurl
reCAPTCHA v2 Enterprise userrecaptcha + enterprise=1 googlekey, pageurl
reCAPTCHA v2 Invisible userrecaptcha + invisible=1 googlekey, pageurl
reCAPTCHA v3 userrecaptcha + version=v3 googlekey, pageurl
reCAPTCHA v3 Enterprise userrecaptcha + version=v3 + enterprise=1 googlekey, pageurl
Cloudflare Turnstile turnstile sitekey, pageurl
Cloudflare Challenge cloudflare_challenge pageurl, proxy, userAgent
GeeTest v3 geetest gt, challenge, pageurl
Image/OCR base64 or post body (base64) or file upload
Grid Image post + grid_size File, grid_size, instructions

How to identify the CAPTCHA type

reCAPTCHA (any version)

def detect_recaptcha(html):
    if "www.google.com/recaptcha" in html or "www.recaptcha.net" in html:
        if 'data-sitekey="' in html:
            start = html.index('data-sitekey="') + 14
            end = html.index('"', start)
            sitekey = html[start:end]

            if "invisible" in html.lower() or 'data-size="invisible"' in html:
                return {"type": "recaptcha_v2_invisible", "method": "userrecaptcha",
                        "googlekey": sitekey, "extra": {"invisible": 1}}
            return {"type": "recaptcha_v2", "method": "userrecaptcha",
                    "googlekey": sitekey}

        # v3 is loaded via JavaScript, no visible widget
        if "recaptcha/api.js?render=" in html:
            start = html.index("render=") + 7
            end = html.index('"', start) if '"' in html[start:start+50] else html.index("'", start)
            sitekey = html[start:end]
            return {"type": "recaptcha_v3", "method": "userrecaptcha",
                    "googlekey": sitekey, "extra": {"version": "v3"}}
    return None

Cloudflare (Turnstile or Challenge)

def detect_cloudflare(html, status_code):
    if "cf-turnstile" in html or "challenges.cloudflare.com/turnstile" in html:
        sitekey = None
        if 'data-sitekey="' in html:
            start = html.index('data-sitekey="') + 14
            end = html.index('"', start)
            sitekey = html[start:end]
        return {"type": "turnstile", "method": "turnstile", "sitekey": sitekey}

    if status_code in [403, 503] and ("Just a moment" in html or "challenge-platform" in html):
        return {"type": "cloudflare_challenge", "method": "cloudflare_challenge"}

    return None

GeeTest

def detect_geetest(html):
    if "geetest" in html.lower() or "gt.js" in html or "initGeetest" in html:
        return {"type": "geetest", "method": "geetest"}
    return None

Combined detection

import requests

def detect_captcha_type(url):
    """Detect CAPTCHA type on a URL."""
    resp = requests.get(url)
    html = resp.text

    # Check each type
    result = detect_recaptcha(html)
    if result:
        return result

    result = detect_cloudflare(html, resp.status_code)
    if result:
        return result

    result = detect_geetest(html)
    if result:
        return result

    return {"type": "unknown", "method": None}


info = detect_captcha_type("https://example.com/login")
print(f"CAPTCHA type: {info['type']}")
print(f"CaptchaAI method: {info['method']}")

Common mistakes

Mistake What happens Fix
Using userrecaptcha for Turnstile Wrong token format, rejection Switch to turnstile method
Using turnstile for reCAPTCHA ERROR_BAD_PARAMETERS (wrong sitekey format) Switch to userrecaptcha
Missing enterprise=1 for Enterprise reCAPTCHA Low scores, token rejected Add enterprise=1
Missing version=v3 for reCAPTCHA v3 Treated as v2, wrong token type Add version=v3
Missing invisible=1 for invisible reCAPTCHA Solve may fail or return wrong token Add invisible=1
Using any token method for Cloudflare Challenge Challenge returns cookies, not tokens Use cloudflare_challenge

FAQ

How do I know if it is reCAPTCHA v2 or v3?

reCAPTCHA v2 shows a visible widget (checkbox or image challenge). reCAPTCHA v3 is invisible — it loads via JavaScript with render=SITEKEY and runs in the background.

What if the page uses a CAPTCHA I do not recognize?

Check the page source for known markers: recaptcha, cf-turnstile, geetest, hcaptcha. If none match, it may be a custom image CAPTCHA — use the base64 or post method.

Can I solve Enterprise reCAPTCHA with the standard method?

No. Enterprise reCAPTCHA requires enterprise=1. Without it, the token may solve but the site will reject it because Enterprise tokens have a different structure.


Get your CaptchaAI API key

Solve any CAPTCHA type correctly at captchaai.com.


Discussions (0)

No comments yet.