Sample · Live demo

Text Captcha Demo

A self-contained challenge: type the distorted characters shown in the image.

  • Free, no signup
  • The real provider widget
  • See the verification response

Live Text Captcha widget

Type the distorted characters shown in the image, then press Verify.

Time to solve 0.0s
Solve cost $0 with CapSkip

How to Solve a Text Captcha

The box above is a text captcha: a short string of distorted characters drawn into an image that you have to read and type in. This page shows three easy ways to solve it and get the right characters automatically: with the CapSkip browser extension, in your own code with the CapSkip SDK, or by routing the captcha service your tools already call to CapSkip. CapSkip reads the image with on-device OCR, so there are no per solve fees and nothing leaves your machine.

No code needed

Option 1: Solve it with the browser extension

The simplest way to beat a text captcha is the CapSkip captcha solver extension for Chrome and Firefox. After a quick one-time setup that shows it which image to read and where to type, it fills in the answer for you, with no code to write.

1

Install the extension

Add CapSkip from the Chrome Web Store or Firefox Add-ons. It also works in Brave, Edge, Opera and Vivaldi.

2

Run the CapSkip app

Install and open the CapSkip desktop app. It does the solving on your own device and pairs with the extension.

3

Point out the captcha

Image captchas need one quick step. In CapSkip click Select on page, then click the captcha image and the answer field. You only do this once per page.

CapSkip then reads the characters and fills the field you picked, so all you do is press Verify. You can also bind it by right clicking the image (Mark as CAPTCHA Source) and the field (Insert CAPTCHA answer here). This one-time setup is only needed for image and text captchas, not reCAPTCHA or Turnstile. See the setup guide.

For developers

Option 2: Solve it with the CapSkip SDK

Building automation, a scraper or a bot? Use the CapSkip captcha solving SDK to solve text captchas from Python, Node.js, PHP or C#. You hand the captcha image to normal() and CapSkip returns the characters it reads. No site key and no page URL are needed, because CapSkip works straight from the image.

Image file
"captcha.png"
Image URL
"https://site.com/captcha.php"
Base64
"data:image/png;base64,..."

Before you start

CapSkip solves locally. Download and run the CapSkip desktop app and keep it open in the background. The SDK talks to it on 127.0.0.1:8080, so there are no cloud calls and no per solve fees.

1

Install the SDK

Add the official CapSkip client to your project.

pip install capskip
npm install capskip
composer require capskip/capskip
dotnet add package CapSkip
2

Read the captcha image and get the characters

Pass the captcha image to normal(). It accepts a file path, an image URL, or a base64 data URI. CapSkip runs OCR on it and returns the characters as plain text.

from capskip import CapSkip

# Connect to the CapSkip app running on your machine
solver = CapSkip(host="127.0.0.1", port=8080)

# Read the distorted characters from the captcha image
result = solver.normal("captcha.png")

answer = result["code"]   # the characters CapSkip read
print(answer)
const { CapSkip } = require('capskip');

// Connect to the CapSkip app running on your machine
const solver = new CapSkip({ host: '127.0.0.1', port: 8080 });

(async () => {
  // Read the distorted characters from the captcha image
  const result = await solver.normal('captcha.png');

  const answer = result.code; // the characters CapSkip read
  console.log(answer);
})();
<?php
require 'vendor/autoload.php';

use CapSkip\CapSkip;

// Connect to the CapSkip app running on your machine
$solver = new CapSkip(['host' => '127.0.0.1', 'port' => 8080]);

// Read the distorted characters from the captcha image
$result = $solver->normal('captcha.png');

$answer = $result['code']; // the characters CapSkip read
echo $answer;
using CapSkip;

// Connect to the CapSkip app running on your machine
var solver = new CapSkipClient(host: "127.0.0.1", port: 8080);

// Read the distorted characters from the captcha image
var result = await solver.NormalAsync("captcha.png");

string answer = result.Code; // the characters CapSkip read
Console.WriteLine(answer);

You get the characters from the image, for example 5F59R, ready to type into the box.

3

Use the answer: type it in and verify

Put the characters into the captcha's text field and submit. On this demo the field is .captcha-input and the button is .captcha-btn, so you can fill and send it straight from the browser.

// 1. Put the recognized characters into the text field
document.querySelector('.captcha-input').value = answer;

// 2. Press the Verify button
document.querySelector('.captcha-btn').click();
Advanced

Using CapSkip on other text captcha sites

A text captcha is always an image of distorted characters. To solve one anywhere, grab that image and hand it to normal() in whichever form is easiest:

  • From an <img> tag: pass its src straight to CapSkip as an image URL, or right click and save it as a file.
  • From a <canvas>: call canvas.toDataURL() to get a base64 string, then pass that. This demo draws its captcha on a <canvas class="captcha-text__canvas">, so base64 is the way here.
  • From a screenshot: capture just the captcha element and pass the saved file, or its base64.

Solve from a base64 image

When the captcha is a canvas or an inline data URI, pass the base64 string directly:

# Grab the canvas in the browser with canvas.toDataURL(), then:
result = solver.normal("data:image/png;base64,iVBORw0KGgo...")

answer = result["code"]   # the characters CapSkip read
// Grab the canvas in the browser with canvas.toDataURL(), then:
const result = await solver.normal('data:image/png;base64,iVBORw0KGgo...');

const answer = result.code; // the characters CapSkip read
// A base64 data URI works anywhere a file path does
$result = $solver->normal('data:image/png;base64,iVBORw0KGgo...');

$answer = $result['code']; // the characters CapSkip read
// A base64 data URI works anywhere a file path does
var result = await solver.NormalAsync("data:image/png;base64,iVBORw0KGgo...");

string answer = result.Code; // the characters CapSkip read

No site key or page URL is needed for a text captcha. CapSkip reads the image on your own device, so it works even on offline or internal pages.

Not using Python, Node.js, PHP or C#? The SDKs are just wrappers over the CapSkip HTTP API (the standard in.php / res.php endpoints), so you can solve text captchas from any language, framework or tool. See the Image Captcha API reference.

No code changes

Option 3: Send your existing solver-service code to CapSkip

Already solving text captchas through a pay-per-captcha service such as 2Captcha, Anti-Captcha or CapMonster? You do not have to rewrite a line. The CapSkip app includes a service emulator that speaks those services' own APIs locally: pick the service you use, click Add to hosts file, and every request your bot, scraper or off-the-shelf tool already sends to it is answered by CapSkip on your own machine, for a flat price instead of a per-solve bill.

1

Pick your service

Open the CapSkip app and choose the service your code already talks to: 2Captcha, RuCaptcha, Anti-Captcha, CapMonster Cloud, CapSolver, DeathByCaptcha, SolveCaptcha or Captchas.io.

2

Add to hosts file

One click in the app points that service's domain at CapSkip, so the calls your tool makes are answered on your own machine instead of going out to a paid API.

3

Run your tool unchanged

Same API key, same request, same polling loop. CapSkip replies in that service's own format and your code gets the characters read out of the image back.

Nothing below changes when you switch. It is the same call your code makes today, except that text captchas is now solved locally and the characters read out of the image comes back from CapSkip:

POST https://2captcha.com/in.php
     key=YOUR_EXISTING_API_KEY
     method=base64
     body=BASE64_OF_THE_CAPTCHA_IMAGE

GET  https://2captcha.com/res.php?key=YOUR_EXISTING_API_KEY&action=get&id=2122988149
     OK|W7H4KP  the characters CapSkip read

Client libraries work the same way: an Anti-Captcha style createTask / getTaskResult pair, or any wrapper built on one of these services, keeps working once the emulator is on. The full request and response reference lives in the CapSkip API docs.

About this text captcha demo

This page is a live text captcha demo where you can watch a classic character recognition challenge get solved in real time. A text captcha shows a short string of distorted characters drawn into an image and asks you to read them and type them back. It is one of the oldest and most common captcha types, used to block spam, fake signups and automated form submissions.

Developers, testers and automation engineers can use this text captcha test page to benchmark OCR based captcha solving, validate integrations and study how character recognition challenges are generated and checked. Whether you need to solve one text captcha or automate thousands, CapSkip is a text captcha solver that works three ways: the no-code captcha solver extension for Chrome and Firefox, and the captcha solving SDK for Python, Node.js, PHP and C#, and drop-in emulation of the captcha services you may be paying per solve today, all with unlimited solving on one flat price. All three are driven by the same desktop AI captcha solver, installed once and running on your own machine, so nothing is queued on a remote server and nothing is billed per solve.

Can I keep my existing 2Captcha or Anti-Captcha code?
Yes. The CapSkip app emulates the APIs of 2Captcha, RuCaptcha, Anti-Captcha, CapMonster Cloud, CapSolver, DeathByCaptcha and SolveCaptcha. Pick your service in the app, click "Add to hosts file", and the requests your code already sends are solved locally by CapSkip, with no code changes and no per-solve fee.
How do I solve a text captcha?
Install the CapSkip extension or the SDK and run the CapSkip desktop app. Hand the captcha image to CapSkip, or let the extension grab it for you, and it returns the characters. Type them into the field and press Verify.
What is a text captcha?
A text captcha is an image of distorted or noisy characters that you must read and type back. It relies on the fact that people read warped text more easily than simple bots do. Solving it is an OCR, or optical character recognition, task.
Can a text captcha be bypassed?
Yes. CapSkip reads the distorted characters with on-device OCR and returns them as plain text, which you type into the field like a real user. No site key or page URL is involved.
How fast does CapSkip solve a text captcha?
CapSkip reads a text captcha in about 0.1 seconds. Every solve runs locally on your own device, so nothing is queued on a remote server.
Can I use CapSkip with other programming languages?
Yes. Beyond the Python, Node.js, PHP and C# SDKs, CapSkip exposes a standard HTTP API, so you can solve text captchas from any language, framework or tool. See the Image Captcha API reference.
Is CapSkip a free text captcha solver?
The extension is free to install, and a one dollar trial gives you full access for seven days with 1,000 solves. Paid licenses unlock unlimited solving at one flat price, with no per captcha fees.