Skip to main content
FunCaptcha (Arkose Labs) is an interactive CAPTCHA system commonly found on gaming, fintech, and e-commerce sites. Surfsky solves the audio challenge presented by the widget — automatically or manually with Surfsky’s cloud browser. It requires an available audio flow; some deployments only present the visual puzzle, in which case there is no audio prompt for the solver to answer.

Before you start

Use the CAPTCHA setup example to start a browser with anti_captcha.enabled: true and create a page-level cdp session. The snippets below use an async Playwright or Puppeteer session after navigating to your target. Configure a Gemini key on the account or pass it as anti_captcha.gemini_api_key. For automatic mode, explicitly include "funcaptcha" in auto_captcha_types; it is not in the default list.
Use quality proxies. Datacenter IPs raise the FunCaptcha challenge frequency the same way they do for other anti-bot systems, and Human Emulation for mouse and keyboard timing further reduces how often the widget appears.

Manual captcha solving

Wait for the challenge to appear, then send:
The timeout is in milliseconds. Detection can raise a CDP error when the expected challenge is absent. After success, wait for a selector or response that identifies the protected content.

Automatic captcha solving

Include "funcaptcha" in anti_captcha.auto_captcha_types at startup. Attach solve event listeners, then start detection before navigating:
status: "started" confirms the background loop started. Observe failures and use a bounded wait for your page result. Keep the CDP session connected until the job completes.

Reducing challenges

  • Gemini API Key Required — the audio solver needs AI analysis; there is no keyless path for FunCaptcha.
  • Quality proxies reduce challenge frequency — datacenter IPs trigger the widget more often.
  • Human Emulation for mouse and keyboard helps avoid triggering the challenge in the first place. See Human Emulation.
  • Be patient — Arkose Labs frequently chains multiple audio rounds before releasing the page; 1-2 minutes to complete is normal, not a stuck job.

Verify bypass worked

A success status from Captcha.solve confirms the audio prompt was answered and submitted — it does not confirm the site’s own risk check accepted it. Check that the protected content actually loaded before treating the job as done. Inspect the widget when audio controls or challenge frames cannot be found. The solver does not support every visual challenge variant, and a site can change the audio flow independently of your code. Check solver configuration, inspect one attempt in DevTools, and record the result or error before retrying. Stop the browser when the job ends.

FunCaptcha bypass FAQ

No. Surfsky’s FunCaptcha solver targets the audio challenge specifically. If a target only presents the visual rotation or image-selection puzzle, there is no audio prompt for it to answer — this limitation applies to audio-based FunCaptcha solvers generally, not just Surfsky.
Yes. Unlike DataDome’s slider option, FunCaptcha’s audio solver has no keyless path — anti_captcha.gemini_api_key is required for the AI analysis step every time.
It carries a hard Gemini key dependency that other supported CAPTCHA types don’t, so it’s opt-in — add "funcaptcha" to the list yourself when you’re ready to use it.
A success status means the audio prompt was answered, not that the site accepted it. Confirm the protected content actually loaded, and check whether the exit IP changed mid-session before assuming the solver failed.
Arkose Labs frequently chains multiple audio rounds before releasing the page. 1-2 minutes is normal for FunCaptcha specifically — set your timeout accordingly rather than treating it as a stuck job.
Questions? Contact support.