perimeterx solver presses and holds it in the browser page, automatically or manually, and reports whether the site accepted the hold. No API key is required.
Before you start
Use the CAPTCHA setup example to start a browser withanti_captcha.enabled: true and create a page-level cdp session. The snippets below use an async Playwright session after navigating to your target.
The press-and-hold button often sits inside a closed Shadow DOM, specifically to break standard element locators like Selenium’s
find_element. Surfsky’s solver interacts with the challenge at the browser level rather than through a locator, so this doesn’t affect the solve — but it’s why a manual DOM-based approach to this challenge tends to fail.Manual captcha solving
Wait for the challenge to appear, then sendCaptcha.solve:
attached, not the default visible: some sites keep an empty #px-captcha in the page and show the challenge in the modal iframe.
The solver takes no options and returns after the site has answered the hold.
The timeout is in milliseconds. An accepted attempt usually takes 10 to 20 seconds and a refused one up to 45, so keep it at 60000. Do not click, move the mouse, or navigate until the command returns. After
success, a block page reloads into the page you asked for, so wait for your content before reading it.
Automatic captcha solving
Include"perimeterx" in anti_captcha.auto_captcha_types at startup. Attach solve event listeners, then start detection before navigating:
Reducing challenges
PerimeterX scores the session, not only the hold. Keep the page in the same session while solving, and avoid clicking or navigating concurrently with the hold action — the challenge reads mouse movement and hold timing during that window, and a concurrent action can interrupt that signal.If the hold is refused
A refused hold shows “Please try again” and returnsfailed. Send Captcha.solve again. If that fails too, start a new browser on a different proxy.
Verify bypass worked
success means the challenge left the page. Wait for the protected content or a successful response before treating the job as done. Inspect one attempt in DevTools, record the result or error before retrying, and stop the browser when the job ends.
PerimeterX bypass FAQ
Is PerimeterX the same as HUMAN Security?
Is PerimeterX the same as HUMAN Security?
Yes. PerimeterX was rebranded as HUMAN Security; the press-and-hold challenge and the
perimeterx solver type are unchanged.Do I need an API key for PerimeterX?
Do I need an API key for PerimeterX?
No. The
perimeterx solver works without a Gemini key or any other API key.Why does the challenge break when I click during the hold?
Why does the challenge break when I click during the hold?
The challenge is reading mouse movement and hold duration during that window. A concurrent click or navigation interrupts that signal and can fail the solve — avoid interacting with the page until the command returns.
What does a failed result mean?
What does a failed result mean?
failed means the challenge is still on the page: the site refused the hold, or the button did not render. Retry once, then switch to a different proxy.