Skip to main content
Google reCAPTCHA has three versions in active use — v2 (checkbox or invisible widget), v3 (score-based, often no visible interaction), and Enterprise (adds risk signals on top of standard v2/v3). Use Captcha.autoSolve for reCAPTCHA. This type is handled by the external provider integration; sending it to Captcha.solve returns an error.

Before you start

Enable the solver when starting the browser:
Your account needs the corresponding external provider configuration. Check solver balance and provider settings if solving does not begin.

Automatic captcha solving

Use the Playwright or Puppeteer lifecycle, adding the settings above to the start request. Create a page-level CDP session and attach listeners before enabling automatic mode:
Replace the target URL with your page. Add a bounded wait for the form result or protected content after navigation. {"status": "started"} only confirms that automatic mode started.

Reducing challenges

reCAPTCHA v2, v3, and Enterprise can behave differently. A v2 challenge may display a widget, while v3 relies on a score and can require no visible interaction. Verify the form submission or protected response for the version the site uses; Surfsky does not promise a particular score. Keep the CDP connection open while solving. Avoid running a second solver against the same challenge — a second concurrent attempt at the same widget can invalidate both.

reCAPTCHA v3 score

reCAPTCHA v3 never shows a widget. Instead, Google returns a numeric score from 0.0 to 1.0 for every request — 1.0 means the interaction looks very likely human, 0.0 means it looks very likely automated. The target site reads this score in its own server-side response and decides what to do with it; there is no universal “passing” number, because each site sets its own threshold. Google’s official response format for a v3 check includes:
A few things worth knowing about how the score behaves:
  • Google doesn’t publish the scoring formula. The score reflects a mix of browsing behavior, IP reputation, and session signals Google doesn’t fully disclose — there’s no fixed checklist to “pass.”
  • 0.5 is a common default threshold, not a Google-mandated one. Sites choose their own cutoff; a score that clears one site’s threshold can fail another’s.
  • Enterprise adds more granularity. The free tier effectively reports coarse bands, while an Enterprise project with billing enabled can request an 11-level scale across the same 0.0–1.0 range, plus reason codes explaining why a score landed where it did.
  • A score near 0.9 on Google’s public test keys is expected, not a sign the integration is broken — Google’s shared test key pair always returns a fixed score for wiring up an integration, independent of real traffic.
Surfsky’s solver interacts with the page the same way regardless of the version, but it cannot see or influence the score a target site’s backend assigns after the fact — that check happens entirely on Google’s and the site’s side, not in the browser session.

Verify bypass worked

If verification completes but the page is still blocked, inspect the next network response or form validation error — a v3 score that clears the widget does not guarantee the site’s own check accepted the request.

Troubleshooting

If nothing happens, confirm that the external integration was loaded, "recaptcha" is allowed in auto_captcha_types, and the challenge is present. Observe failure events and check provider availability before retrying. See CAPTCHA troubleshooting for shared errors and DevTools to inspect a running attempt. Stop the browser after the job completes.

reCAPTCHA bypass FAQ

No — reCAPTCHA only supports automatic mode through Captcha.autoSolve. Sending "recaptcha" to Captcha.solve returns an error; there is no manual solving path for this type.
That’s often expected, not broken. Both v3 and invisible v2 are designed to require no visible widget for most visitors — the score-based check runs in the background, and a challenge only surfaces when the risk signal is high enough. If your automation never sees a checkbox or puzzle, verify the form submission or protected response instead of waiting for a widget that may never render.
v2 invisible still returns a pass/fail outcome and can escalate to a visible challenge if Google’s risk check is uncertain. v3 never shows a widget and instead returns a numeric score for the target site to interpret on its own threshold — Surfsky solves both the same way through auto_captcha_types, but the target site’s handling of the result differs by version.
No. v3 is score-based and the required threshold is set by the target site, not by the solver — see Understanding the reCAPTCHA v3 score for what the 0.0–1.0 range means and why Google doesn’t publish the exact formula. Surfsky attempts to clear the widget but does not promise a particular score.
It only confirms automatic mode began — not that a challenge was found, solved, or accepted. Attach Captcha.solveCompleted and Captcha.solveFailed listeners and wait for the actual page result before treating the job as done.
Enterprise adds risk signals on top of standard v2 or v3 checks and is billed separately by Google. The solving flow through Surfsky is the same Captcha.autoSolve call — the difference is in what the target site checks on its side, not in how you call the API.
Questions? Contact support.