How an AI captcha solver works: models, tokens and limits
An AI captcha solver is software that uses machine learning models to answer a captcha on your behalf. It works best on challenges where the answer can be read from the content, such as distorted text or a grid of images. For token-based widgets, the model's job is to produce a response that the site's server accepts, and that is a different problem. This guide explains both cases, where the limits are, and what you actually receive from a solver service.
This guide describes general techniques. It does not describe the internals of any particular service. What matters to you as a developer is the contract: you send a captcha's details and you get back a token.
Three families of captcha
Most captchas fall into one of three families, and AI treats each differently.
Content challenges. The visitor reads or identifies something: distorted characters, a set of street numbers, traffic lights in a grid, a rotated object. The correct answer is in the image or audio itself. This is the area where machine learning is strongest.
Behavioural scoring. There may be no visible challenge at all. The site watches how the browser behaves, looks at the request history and scores the visitor. reCAPTCHA v3 works this way, and it returns a number rather than a puzzle. A model cannot simply "read" the answer here, because there is no answer to read. The question is whether the signals look human enough.
Token-based widgets. A widget runs in the page, does its checks, and writes a token into a hidden form field. The site's backend then verifies the token with the provider. PopularCaptcha works this way, and so do reCAPTCHA v2 and Cloudflare Turnstile.
How models handle content challenges
For distorted text, the standard approach is an optical character recognition model. A convolutional network, or a transformer-based vision model, reads the image and outputs a sequence of characters. Training uses large sets of generated captchas with known answers, so the model learns the common distortions: warping, noise lines, overlapping glyphs and background texture.
For image grids, the task is classification. The model looks at each tile and decides whether it contains the object the challenge asks for. The hard cases are objects that are partly hidden, at the edge of a tile, or ambiguous, such as a bus that is mostly out of frame. Accuracy on those is lower, and a good solver has to decide when to guess and when to request another round.
Audio challenges use speech recognition. The model transcribes the clip, and the answer is the transcription. Background noise and deliberate distortion are the main difficulties.
Puzzle challenges, such as rotating an image or sliding a piece into place, need a different kind of model. The model estimates an angle or a position from the image, then produces the drag or click that matches it.
How models handle scoring and tokens
Behavioural scoring and token widgets are harder to solve by reading the page. The provider's own checks run in the visitor's browser, and their output depends on signals such as the browser environment, the timing of input events and the history of the session. The solver cannot see the score or the signals in any useful detail from outside.
For these cases the working approach is a solver that returns the response the provider expects, using a pipeline built to produce valid tokens. From your side, the important property is simple: you get a token or an error, and the token is checked by the site.
That is why the Scarnox API is shaped the way it is. You send the task type, the sitekey and the page URL, and receive a token in the solution field:
{"errorId": 0, "solution": {"token": "..."}, "cost": ...}
The token goes into the form field the site expects, and it expires after about two minutes. The captcha solver API guide covers the full request.
Where AI helps and where it stops
AI solvers are good at:
- reading distorted text consistently, once they have been tuned for the captcha family;
- classifying image grids with high accuracy on clear examples;
- returning quickly enough for a synchronous request;
- failing in a way that costs you nothing, if the solver is built around free failed solves.
They are weaker at:
- puzzles that change design often, because a model trained on last month's version may not transfer;
- behavioural checks, where the outcome depends on the environment you run in as much as on the answer;
- any challenge that requires a real person's judgement about the content, such as a question about meaning or context.
There is also a practical limit that no model removes. A captcha is a deliberate barrier, and vendors update their challenges. A solver that works today can fail next month, so you should treat solver output as something to monitor, not something to assume will keep working.
Choosing a solver
Four questions help you evaluate any solver service:
- Which captcha types does it support today, as opposed to on a roadmap?
- What does a failed solve cost you? A solver that charges for failures makes retries expensive.
- How does it behave under a timeout or a slow response? Your code needs a clear error to act on.
- What do you need to change in your code when the captcha changes? The less, the better.
Scarnox currently supports PopularCaptcha, proxyless, live. Other types are coming soon, and the types of captcha guide explains the status of each one.