Explainers

reCAPTCHA Grid Challenge Explained

The reCAPTCHA grid challenge presents a 3x3 or 4x4 image grid and asks users to "Select all squares with [traffic lights / crosswalks / buses]". Users must click the correct tiles, sometimes waiting for new images to fade in.

This is the visual challenge component of reCAPTCHA v2. It appears when v2 cannot verify the user through the checkbox alone, or when v3 scores are too low and the site falls back to a visual challenge.


How grid challenges work

Static grids

One large image is split into a 3x3 or 4x4 grid. The user selects all tiles containing the target object (e.g., traffic lights), then clicks "Verify."

┌───┬───┬───┐
│ 1 │ 2 │ 3 │  ← "Select all squares with traffic lights"
├───┼───┼───┤
│ 4 │ 5 │ 6 │  ← User clicks tiles 2, 5, 6
├───┼───┼───┤
│ 7 │ 8 │ 9 │
└───┴───┴───┘

Dynamic grids

After selecting a tile, it fades out and a new image fades in. The user must continue selecting until no more target objects remain. This makes the challenge take longer and prevents simple screenshot-based solving.

4x4 grids

Some challenges use a 4x4 grid (16 tiles) with smaller individual tiles. These appear for higher-risk interactions and require more precise object recognition.


What triggers a grid challenge

Trigger Description
v2 checkbox failure Clicking "I'm not a robot" with suspicious signals
v3 low score Site falls back to v2 challenge when v3 score is below threshold
Suspicious IP Datacenter or flagged IP address
Missing cookies No Google browsing history
Headless browser detected navigator.webdriver = true or missing plugins
Repeated requests Same user solving too many captchas

Common challenge categories

Google uses a fixed set of image categories:

  • Traffic lights
  • Crosswalks / pedestrian crossings
  • Buses
  • Bicycles
  • Motorcycles
  • Fire hydrants
  • Stairs
  • Chimneys
  • Palm trees
  • Mountains
  • Bridges
  • Boats
  • Taxis

Solving grid challenges with CaptchaAI

Grid challenges can be solved by sending the image to CaptchaAI. The API returns which tiles contain the target object.

Python

import requests
import time
import base64

# Capture the grid image
with open("captcha_grid.png", "rb") as f:
    image_data = base64.b64encode(f.read()).decode()

# Submit to CaptchaAI
response = requests.post("https://ocr.captchaai.com/in.php", data={
    "key": "YOUR_API_KEY",
    "method": "post",
    "body": image_data,
    "recaptcha": 1,
    "json": 1
})

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

# Poll for result
for _ in range(30):
    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:
        # Returns click coordinates or tile indices
        answer = result["request"]
        print(f"Selected tiles: {answer}")
        break

Alternative: Solve reCAPTCHA v2 by token

Instead of solving the image grid directly, you can solve the entire reCAPTCHA v2 challenge via the token method:

response = requests.get("https://ocr.captchaai.com/in.php", params={
    "key": "YOUR_API_KEY",
    "method": "userrecaptcha",
    "googlekey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_kl-",
    "pageurl": "https://example.com/page",
    "json": 1
})

This approach is simpler because CaptchaAI handles the entire challenge internally and returns the g-recaptcha-response token.


Grid challenge vs token solving

Approach When to use
Token solving (method=userrecaptcha) Standard reCAPTCHA v2 on web pages — simpler, more reliable
Image solving (method=post) Standalone grid images outside of reCAPTCHA context
Grid solving (method=grid) Grid-based challenges that are not standard reCAPTCHA

For most reCAPTCHA v2 use cases, token solving is recommended because it handles the grid challenge internally.


FAQ

How many tiles do I need to select?

Typically 2–4 tiles in a 3x3 grid. For 4x4 grids, usually 3–6 tiles. Selecting too few or too many fails the challenge.

What happens if I select the wrong tiles?

Google presents a new challenge. After 5–10 failures, it may show an audio challenge instead or block the session entirely.

Can dynamic grid challenges be solved automatically?

Yes, but they require multiple rounds of image recognition. CaptchaAI handles dynamic grids when you use the token-based method (method=userrecaptcha).

Why do I keep getting grid challenges?

Frequent grid challenges indicate suspicious signals — headless browser detection, datacenter IP, or missing cookies. Improve your browser stealth setup to reduce challenge frequency.


Discussions (0)

No comments yet.

Related Posts

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
Tutorials Pytest Fixtures for CaptchaAI API Testing
Build reusable pytest fixtures to test CAPTCHA-solving workflows with Captcha AI.

Build reusable pytest fixtures to test CAPTCHA-solving workflows with Captcha AI. Covers mocking, live integra...

Automation Python reCAPTCHA v2
Apr 08, 2026
API Tutorials How to Solve reCAPTCHA v2 Callback Using API
how to solve re CAPTCHA v 2 callback implementations using Captcha AI API.

Learn how to solve re CAPTCHA v 2 callback implementations using Captcha AI API. Detect the callback function,...

Automation reCAPTCHA v2 Webhooks
Mar 01, 2026
Reference Browser Session Persistence for CAPTCHA Workflows
Manage browser sessions, cookies, and storage across CAPTCHA-solving runs to reduce repeat challenges and maintain authenticated state.

Manage browser sessions, cookies, and storage across CAPTCHA-solving runs to reduce repeat challenges and main...

Automation Python reCAPTCHA v2
Feb 24, 2026
Integrations Browser Profile Isolation + CaptchaAI Integration
Browser profile isolation tools create distinct browser environments with unique fingerprints per session.

Browser profile isolation tools create distinct browser environments with unique fingerprints per session. Com...

Automation Python reCAPTCHA v2
Feb 21, 2026
Tutorials Securing CaptchaAI Credentials in Environment Variables
Store Captcha AI API keys securely using environment variables, .env files, Docker secrets, and cloud secret managers instead of hardcoding.

Store Captcha AI API keys securely using environment variables, .env files, Docker secrets, and cloud secret m...

Automation Python reCAPTCHA v2
Feb 12, 2026
Comparisons WebDriver vs Chrome DevTools Protocol for CAPTCHA Automation
Compare Web Driver and Chrome Dev Tools Protocol (CDP) for CAPTCHA automation — detection, performance, capabilities, and when to use each with Captcha AI.

Compare Web Driver and Chrome Dev Tools Protocol (CDP) for CAPTCHA automation — detection, performance, capabi...

Automation Python reCAPTCHA v2
Mar 27, 2026
Use Cases CAPTCHA Solving in Ticket Purchase Automation
How to handle CAPTCHAs on ticketing platforms Ticketmaster, AXS, and event sites using Captcha AI for automated purchasing workflows.

How to handle CAPTCHAs on ticketing platforms Ticketmaster, AXS, and event sites using Captcha AI for automate...

Automation Python reCAPTCHA v2
Feb 25, 2026
Tutorials Caching CAPTCHA Tokens for Reuse
Cache and reuse CAPTCHA tokens with Captcha AI to reduce API calls and costs.

Cache and reuse CAPTCHA tokens with Captcha AI to reduce API calls and costs. Covers token lifetimes, cache st...

Automation Python reCAPTCHA v2
Feb 15, 2026
Use Cases Event Ticket Monitoring with CAPTCHA Handling
Build an event ticket availability monitor that handles CAPTCHAs using Captcha AI.

Build an event ticket availability monitor that handles CAPTCHAs using Captcha AI. Python workflow for checkin...

Automation Python reCAPTCHA v2
Jan 17, 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