Explainers

reCAPTCHA Cookie Requirements: What Gets Set and Why It Matters

reCAPTCHA reads and writes cookies to assess risk. A browser with fresh Google cookies faces easier challenges than one with no cookies at all. Understanding what cookies reCAPTCHA uses helps you maintain session state and improve solving outcomes in your automation workflows.

Cookies reCAPTCHA Uses

Google Domain Cookies

These are set on .google.com and read by the reCAPTCHA iframe:

Cookie Domain Purpose Lifetime
NID .google.com Google preferences and unique ID 6 months
SID / HSID / SSID .google.com Google account session (if logged in) 2 years
APISID / SAPISID .google.com Google API authentication 2 years
1P_JAR .google.com Google ad personalization 1 month
CONSENT .google.com Cookie consent preference 17 years

reCAPTCHA-Specific Cookies

Cookie Domain Purpose Lifetime
_GRECAPTCHA .google.com / .recaptcha.net reCAPTCHA session tracking Session
rc::a localStorage Risk analysis data Persistent
rc::b localStorage Timestamp data Session
rc::c localStorage Challenge-specific data Session
rc::d-<id> localStorage Per-widget data Session

Target Site Cookies

The site hosting the reCAPTCHA may also use cookies for session and CSRF tracking:

Cookie type Example Relevance
Session ID PHPSESSID, session_id Ties CAPTCHA solve to user session
CSRF token csrf_token, _token Required for form submission
Custom tracking Site-specific May affect CAPTCHA triggering

How Cookies Affect Challenge Difficulty

Google uses cookies as one of many signals in its risk assessment:

Cookie state Challenge difficulty Why
Logged into Google account Lowest Strong identity signal
Google cookies present (not logged in) Low–Medium Shows normal browsing history
Fresh browser, no Google cookies Medium–High No history to assess risk
Cookies blocked or stripped High Suspicious — normal browsers have cookies
Incognito / private mode High No persistent identity

reCAPTCHA's risk engine weighs cookies heavily:

  1. Best case: Browser has SID, HSID, NID cookies from a logged-in Google session → often passes with checkbox click only
  2. Good case: Browser has NID and 1P_JAR from normal browsing → easier image challenges or checkbox pass
  3. Worst case: No Google cookies, fresh session → multi-round image challenges

With Browser Automation (Playwright/Puppeteer)

Browser automation naturally handles cookies. To preserve them between sessions:

# Save cookies after session
cookies = page.context.cookies()
import json
with open("cookies.json", "w") as f:
    json.dump(cookies, f)

# Restore cookies in next session
with open("cookies.json") as f:
    cookies = json.load(f)
page.context.add_cookies(cookies)

With CaptchaAI (API-Only Solving)

When using CaptchaAI without a browser, cookies don't directly affect the solve — CaptchaAI manages its own solving environment. However, you may want to pass cookies if the target site requires them for session continuity:

POST https://ocr.captchaai.com/in.php

key=YOUR_API_KEY
&method=userrecaptcha
&googlekey=SITE_KEY
&pageurl=https://example.com/login
&cookies=NID=12345;1P_JAR=2026-04-04-12

The cookies parameter is optional and sends cookie context to CaptchaAI for solving.

reCAPTCHA loads in an iframe from google.com. Modern browsers enforce strict cookie policies:

Browser policy Effect on reCAPTCHA
SameSite=Lax (default) Google cookies not sent in reCAPTCHA iframe by default
Third-party cookie blocking reCAPTCHA falls back to recaptcha.net or first-party mode
ITP (Safari) Google cookies expire faster, harder challenges more frequent

Google's Mitigations

Google addresses third-party cookie restrictions by:

  • Using recaptcha.net as an alternative domain
  • Employing localStorage (rc::* entries) for client-side state
  • Using first-party script loading options for Enterprise customers

localStorage Entries

reCAPTCHA stores risk assessment data in localStorage under rc:: prefixed keys:

Key pattern Data
rc::a Encoded risk analysis payload
rc::b Timestamp of last challenge
rc::c Current challenge session data
rc::d-<hash> Per-widget instance data

These entries help reCAPTCHA maintain state across page loads without relying on third-party cookies. In automation, preserving localStorage can reduce challenge difficulty:

# Save localStorage
storage = page.evaluate("() => JSON.stringify(localStorage)")
with open("localstorage.json", "w") as f:
    f.write(storage)

# Restore localStorage
with open("localstorage.json") as f:
    storage = f.read()
page.evaluate(f"Object.entries(JSON.parse('{storage}')).forEach(([k,v]) => localStorage.setItem(k,v))")

Best Practices

Practice Benefit
Persist browser profiles between runs Builds browsing history → easier challenges
Don't clear cookies between tasks Maintains Google's risk assessment continuity
Use recaptcha.net when google.com is blocked Same service, different domain
Preserve localStorage rc:: entries Maintains reCAPTCHA session state
Visit Google properties occasionally Refreshes cookie validity

Troubleshooting

Issue Cause Fix
Always getting hard image challenges No cookies / fresh profile Build up a browser profile with Google cookies
reCAPTCHA shows "cookies required" error Third-party cookies blocked Enable cookies for google.com or use recaptcha.net
Token valid but session mismatch Site cookie (PHPSESSID) not maintained Save and restore all cookies, not just Google ones
Challenge loop — keeps asking for more images localStorage cleared between attempts Preserve rc::* localStorage entries

FAQ

Does CaptchaAI need my browser's cookies to solve reCAPTCHA?

No. CaptchaAI solves reCAPTCHA independently using its own infrastructure. You can optionally pass cookies for additional context, but it's not required.

Should I use incognito mode for CAPTCHA automation?

No. Incognito mode clears all cookies and localStorage, making reCAPTCHA challenges harder. Use a persistent browser profile for easier challenges when using browser automation.

Do cookies expire and need refreshing?

Yes. Google's NID cookie lasts about 6 months, while 1P_JAR only lasts about 1 month. Regularly using the browser profile keeps cookies fresh.

Next Steps

Improve your reCAPTCHA solve rates — get your CaptchaAI API key and manage cookies properly in your automation workflows.

Discussions (0)

No comments yet.