Now in beta for AI browser agents

Stop babysitting your AI agent at every CAPTCHA.

captcha-ninja lets your agent pass CAPTCHAs on its own, in the Chrome you already have open. One tool call in, one token back, and the run keeps going.

8CAPTCHA types covered
1tool call per CAPTCHA
$0.001per solved CAPTCHA
1API key for every type
The problem

One CAPTCHA is all it takes to stop an agent

Agents are good at forms and bad at proving they can click a box.

Runs die at the last step

Your agent fills the whole form, then meets a checkbox it cannot click. The run ends one step from done.

You become the solver

Every stalled run pings you to click a box. Automation that needs a babysitter is not automation.

Your pages leave your browser

A typical solving service gets your page URL, sitekey, images or audio, and solves on someone else's workers.

The fix

Your agent hits a CAPTCHA and keeps going

This is the whole integration: one extra tool call in the middle of a run.

agent session
agent › browser_click "Submit application"  ✗ timeout: element not visible, enabled and stableagent › a GeeTest slide puzzle is covering the buttonagent › solve_captcha { type: "geetest", url: "https://example.com/apply" }  · click widget · find gap with vision model · drag knob  ✓ { status: "solved", via: "v4", token: "…" }agent › browser_click "Submit application"  ✓ submittedagent ›
How it works

Three steps, zero changes to your agent

Your agent keeps driving the browser. captcha-ninja only steps in for the CAPTCHA.

  1. Your agentLLM with browser tools
  2. captcha-ninjasolve_captcha
  3. Your Chromethe tab already open

Attach

Connects to the Chrome that is already running and takes the tab your agent is on. It never navigates, so your session stays intact.

Detect

Finds the widget across every frame on the page. With several widgets of one type, it reports that and does not guess.

Solve

Clicks, listens, reads or drags with human-like motion, then hands the token and a clear status back to your agent.

AI inside

Four ways through, one model for each

Specialist models do what an LLM is slow at: hearing digits, reading warped text, finding a puzzle gap.

Motion

Human-like click

A short wander near the box, an uneven approach, a pause and a held press. Enough for most checkboxes.

Vision

Slide puzzles

A small vision model finds the gap. The knob is dragged in an eased sweep, then aimed from the piece's live position.

Speech

Audio challenges

An image challenge is switched to audio, transcribed by a speech model and typed back one key at a time.

Vision + LLM

Distorted text

A model trained on CAPTCHAs reads the image first. A vision LLM takes over when it cannot.

How each model is used →

Built for agents

Your agent always knows its next move

Every browser call ends in one of four statuses. No silent hangs, no guessing.

solved

Token returned. The agent carries on with its task.

challenge

A puzzle outside its range opened. The agent hands over to you.

blocked

The provider refused. The agent stops and does not hammer.

no_token

Nothing was issued. Usually the check was never started.

Coverage

8 CAPTCHA types, one tool

Pick a type to see what your agent sends and what it gets back.

reCAPTCHA v2 checkbox

Clicks the checkbox. If an image challenge opens, it is answered through its audio version.

Inputs

urlsitekeyaudioChallenge

Steps

  1. Attach to Chrome and take the open tab showing the URL
  2. Click the checkbox with human-like motion
  3. On an image challenge, switch to audio and transcribe each clip with the speech model
  4. Type the answer, verify, and read the token from the page

Returns

{ status: "solved", token: "…", via: "click" | "audio" }

Otherwise

blocked when Google refuses the audio challenge, no_token when nothing is issued.

Proof

Measured, not promised

Solved runs on public demo pages.

5/5GeeTest v4
5/5Lemin
5/5Invisible reCAPTCHA
8/10GeeTest v3

solvecaptcha.com demo pages, 2026-11-06. Small samples: a sanity check, not a benchmark.

Why switch

Solved in your browser, not on someone else's workers

How it compares with sending each CAPTCHA to a typical solving service.

captcha-ninjaTypical solving service
Where the CAPTCHA is solvedIn your own Chrome tabOn someone else's workers
What leaves your browserNothingPage URL, sitekey, images or audio
What you get

Everything your agent needs to get past the box

Pricing · Beta

Pay per solve, nothing else

One small price for every solved CAPTCHA, whatever the type.

$0.001 per solved CAPTCHA

$1 per 1,000 solves

  • Every one of the 8 CAPTCHA types
  • One API key for all your agents
  • No subscription and no minimum

Join the beta

Leave your email and your API key will be sent to it.

FAQ

Questions before you start

How much does it cost?

$0.001 per solved CAPTCHA, which is $1 per 1,000. One API key covers every type.

Does it open or navigate pages?

No. It attaches to the Chrome that is already running and takes the open tab showing the URL you pass. Your agent stays in charge of navigation.

What if a page has several CAPTCHAs?

Pass the sitekey to pick one. With several widgets of one type and no sitekey, it reports that and does not guess.

What about text riddles like "what is 3 + four?"

Those are not a tool type. An LLM reads and answers them better than any solver, so the agent does it itself.

Does it pass hard image challenges?

No. reCAPTCHA image challenges are answered through their audio version. hCaptcha and Turnstile challenges, reCAPTCHA v3 and GeeTest icon or match puzzles are out of range and come back as challenge.

Which agents can use it?

Any MCP client that speaks stdio. It ships with a Claude Code skill that tells the agent when to call the tool and when not to.

Can I run it as a solving service for others?

It is not built for that. It works on the tab you have open, under your own session, for forms you are meant to fill.