Skip to content
For AI Agents & Browser Automation

CAPTCHA Solver for AI Agents

When your LangChain, CrewAI, browser-use or Playwright agent hits a captcha, it stalls. CaptchaSonic gives agents and MCP clients a solve capability so they finish the task instead of getting blocked.

Why AI agents get blocked

Autonomous agents browse the live web, so they run into the same anti-bot challenges as any automation: reCAPTCHA, hCaptcha, Cloudflare Turnstile, AWS WAF and more. A captcha mid-run breaks the loop, the agent loses context, and the task fails. Treat captcha solving as a tool the agent can call, and the run continues end to end.

Works with your agent stack

LangChainCrewAIbrowser-usePlaywrightPuppeteerSeleniumMCP clientsAutoGen

Drop captcha solving into the agent loop

Expose CaptchaSonic as a tool/function the model can call, or connect the hosted MCP server. When a step returns a captcha instead of content, the agent calls the tool, gets a token, and resumes — no human in the loop.

agent_loop.py
from captchasonic import CaptchaSonic
from langchain.tools import tool

solver = CaptchaSonic(api_key="YOUR_API_KEY")

@tool
def solve_captcha(captcha_type: str, website_url: str, website_key: str) -> str:
    """Solve a captcha and return a token the agent can submit."""
    task = solver.create_task(
        type=captcha_type,          # e.g. "ReCaptchaV2" | "Turnstile" | "HCaptcha"
        website_url=website_url,
        website_key=website_key,
    )
    return solver.get_task_result(task.id).token

# Agent loop: detect -> solve -> continue
page.goto(target_url)
if page.locator('iframe[src*="recaptcha"]').count():
    sitekey = page.get_attribute('[data-sitekey]', 'data-sitekey')
    token = solve_captcha("ReCaptchaV2", page.url, sitekey)
    page.evaluate("(t)=>{document.querySelector('#g-recaptcha-response').value=t}", token)
    page.click('button[type=submit]')  # task resumes, no human in the loop

Hosted MCP server

Point any MCP-compatible client at the CaptchaSonic MCP server to give it a solve_captcha tool instantly — no glue code. See the MCP / AI agents docs for setup.

MCP / AI Agent Docs

How the agent loop works

01

Detect the block

The agent notices a page returned a captcha challenge instead of the expected content.

02

Call the solve tool

It calls CaptchaSonic (tool or MCP) with the captcha type, page URL and site key, then polls for the token.

03

Continue the task

The token is injected into the page or request and the agent resumes its original objective.

Give your agent a solve capability

Start free with $0.50 bonus credits. Hosted MCP server plus Python, Node.js and Go SDKs.

Frequently asked questions

It is an API (and, for CaptchaSonic, a hosted MCP server) that an autonomous agent can call as a tool when it hits a captcha. The agent submits the captcha type, page URL and site key, receives a token, injects it, and continues its task instead of stalling.

Yes. Expose CaptchaSonic as a LangChain/CrewAI tool or a Python/Node.js/Go function, or connect the hosted MCP server. browser-use, Playwright, Puppeteer and Selenium agents call the same solve flow inline.

Point any MCP-compatible client at the CaptchaSonic MCP server and it gains a solve_captcha tool with no glue code. The model decides when to call it during a run. Setup is documented in the MCP / AI agents docs.

reCAPTCHA v2/v3, hCaptcha, Cloudflare Turnstile, GeeTest, AWS WAF, TikTok, image/OCR and 30+ more — the same coverage as the rest of the CaptchaSonic API, only charged for successful solves.

Agents browse the live web, so anti-bot systems present the same challenges they show any automation. Without a solve step the agent loses its loop context and the task fails. Adding captcha solving as a callable tool keeps the run going end to end.

Related