Explainers

How reCAPTCHA Invisible Works and How to Solve It

Invisible reCAPTCHA is a variant of reCAPTCHA v2 that eliminates the "I'm not a robot" checkbox. Instead of requiring a user click, it fires automatically when a form is submitted or a button is clicked. Google's risk analysis runs in the background — if the user appears human, the form proceeds without interruption. If the score is suspicious, an image challenge pops up.

For automation, this creates a specific problem: there is no visible element to interact with, and the CAPTCHA may trigger only during the form submit event.


How it works under the hood

  1. Page load — the site loads api.js and renders an invisible widget (no visible UI)
  2. User action — the user clicks a button or submits a form that triggers grecaptcha.execute()
  3. Risk analysis — Google evaluates browser signals (mouse movement, browsing history, IP reputation)
  4. Decision — if the user passes, Google calls the data-callback function with a token. If suspicious, an image challenge appears
  5. Token verification — the site's backend verifies the token via siteverify

How to detect invisible reCAPTCHA on a page

<!-- Pattern 1: div with data-size="invisible" -->
<div class="g-recaptcha" data-sitekey="6LdKlZEU..." data-size="invisible" data-callback="onSubmit"></div>

<!-- Pattern 2: button with data-sitekey -->
<button class="g-recaptcha" data-sitekey="6LdKlZEU..." data-callback="onSubmit" data-action="submit">Submit</button>

<!-- Pattern 3: programmatic bind -->
<script>
  grecaptcha.render('submit-btn', {
    sitekey: '6LdKlZEU...',
    callback: onSubmit,
    size: 'invisible'
  });
</script>

Key indicators:

  • data-size="invisible" or size: 'invisible' in render()
  • No visible checkbox on the page
  • data-callback attribute pointing to a JavaScript function
  • reCAPTCHA badge in the bottom-right corner (can be hidden via CSS)

Invisible vs standard v2

Feature Standard v2 Invisible v2
User interaction Required (click checkbox) None (fires on button click)
Visible widget Checkbox No visible element
Image challenge Always (if not auto-passed) Only when suspicious
Token delivery Hidden field or callback Almost always callback
Detection Look for checkbox data-size="invisible"
CaptchaAI param invisible=0 (default) invisible=1

How to solve it with CaptchaAI

The solve flow is identical to standard v2 with one addition:

import requests
import time

# Submit with invisible=1
response = requests.get("https://ocr.captchaai.com/in.php", params={
    "key": "YOUR_API_KEY",
    "method": "userrecaptcha",
    "googlekey": "6LdKlZEUAAAAAPoxm...",
    "pageurl": "https://example.com/signup",
    "invisible": 1,
    "json": 1
})

task_id = response.json()["request"]

# Poll
for _ in range(40):
    time.sleep(5)
    result = requests.get("https://ocr.captchaai.com/res.php", params={
        "key": "YOUR_API_KEY", "action": "get", "id": task_id, "json": 1
    }).json()
    if result.get("status") == 1:
        token = result["request"]
        break

# Inject via callback (not hidden field)
# driver.execute_script(f"onSubmit('{token}');")

The critical difference is token injection: call the callback function instead of filling the hidden field. See How to Solve reCAPTCHA Invisible Using API for the full tutorial.


FAQ

Can invisible reCAPTCHA show image challenges?

Yes. If Google's risk analysis flags the user as suspicious, it displays an image challenge — exactly like standard v2.

How does invisible reCAPTCHA differ from v3?

Invisible v2 is triggered by a user action (button click) and may show a challenge. v3 runs on every page load, never shows a challenge, and only returns a score.

Why do I need invisible=1 for CaptchaAI?

Without it, CaptchaAI generates a standard v2 token. Some invisible implementations reject standard tokens because they expect a different verification context.

Can invisible reCAPTCHA be detected by my scraper without a browser?

Yes. Check the page HTML source for data-size="invisible" or buttons with data-sitekey. These are present in the raw HTML before any JavaScript executes.


Discussions (0)

No comments yet.

Related Posts

Explainers reCAPTCHA v2 Invisible: Trigger Detection and Solving
Detect and solve re CAPTCHA v 2 Invisible challenges with Captcha AI — identify triggers, extract parameters, and handle auto-invoked CAPTCHAs.

Detect and solve re CAPTCHA v 2 Invisible challenges with Captcha AI — identify triggers, extract parameters,...

Automation Python reCAPTCHA v2
Apr 07, 2026
API Tutorials How to Solve reCAPTCHA Invisible Using API
Step-by-step guide to solving invisible re CAPTCHA using Captcha AI API.

Step-by-step guide to solving invisible re CAPTCHA using Captcha AI API. Detect invisible widgets, extract sit...

Automation reCAPTCHA Invisible
Jan 10, 2026
Troubleshooting Common reCAPTCHA Invisible Errors and Fixes
Fix every common re CAPTCHA invisible solving error.

Fix every common re CAPTCHA invisible solving error. Covers callback failures, token rejection, sitekey detect...

Automation reCAPTCHA Invisible
Jan 14, 2026
API Tutorials Solve reCAPTCHA Invisible with Python and CaptchaAI
Step-by-step Python tutorial for solving invisible re CAPTCHA v 2 using the Captcha AI API.

Step-by-step Python tutorial for solving invisible re CAPTCHA v 2 using the Captcha AI API. Includes site key...

Automation Python reCAPTCHA Invisible
Feb 26, 2026
API Tutorials Solve reCAPTCHA Invisible with Node.js and CaptchaAI
Step-by-step Node.js tutorial for solving invisible re CAPTCHA v 2 using the Captcha AI API.

Step-by-step Node.js tutorial for solving invisible re CAPTCHA v 2 using the Captcha AI API. Includes site key...

Automation Node.js reCAPTCHA Invisible
Jan 11, 2026
Reference CAPTCHA Token Injection Methods Reference
Complete reference for injecting solved CAPTCHA tokens into web pages.

Complete reference for injecting solved CAPTCHA tokens into web pages. Covers re CAPTCHA, Turnstile, and Cloud...

Automation Python reCAPTCHA v2
Apr 08, 2026
Troubleshooting GeeTest v3 Error Codes: Complete Troubleshooting Reference
Complete reference for Gee Test v 3 error codes — from registration failures to validation errors — with causes, fixes, and Captcha AI-specific troubleshooting.

Complete reference for Gee Test v 3 error codes — from registration failures to validation errors — with cause...

Automation Testing GeeTest v3
Apr 08, 2026
DevOps & Scaling Ansible Playbooks for CaptchaAI Worker Deployment
Deploy and manage Captcha AI workers with Ansible — playbooks for provisioning, configuration, rolling updates, and health checks across your server fleet.

Deploy and manage Captcha AI workers with Ansible — playbooks for provisioning, configuration, rolling updates...

Automation Python All CAPTCHA Types
Apr 07, 2026
Explainers How BLS CAPTCHA Works: Grid Logic and Image Selection
Deep dive into BLS CAPTCHA grid logic — how images are arranged, how instructions map to selections, and how Captcha AI processes BLS challenges.

Deep dive into BLS CAPTCHA grid logic — how images are arranged, how instructions map to selections, and how C...

Automation BLS CAPTCHA
Apr 09, 2026
Explainers Browser Fingerprinting and CAPTCHA: How Detection Works
How browser fingerprinting affects CAPTCHA challenges, what signals trigger CAPTCHAs, and how to reduce detection with Captcha AI.

How browser fingerprinting affects CAPTCHA challenges, what signals trigger CAPTCHAs, and how to reduce detect...

reCAPTCHA v2 Cloudflare Turnstile reCAPTCHA v3
Mar 23, 2026
Explainers GeeTest v3 Challenge-Response Workflow: Technical Deep Dive
A technical deep dive into Gee Test v 3's challenge-response workflow — the registration API, challenge token exchange, slider verification, and how Captcha AI...

A technical deep dive into Gee Test v 3's challenge-response workflow — the registration API, challenge token...

Automation Testing GeeTest v3
Mar 02, 2026
Explainers How Image CAPTCHA Solving Works (OCR)
how image CAPTCHA solving works using OCR.

Learn how image CAPTCHA solving works using OCR. Understand text recognition, distortion techniques, and why A...

Automation Image OCR
Feb 18, 2026