PHPackages                             gladyshev/rucaptcha-client - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. gladyshev/rucaptcha-client

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

gladyshev/rucaptcha-client
==========================

Lightweight and useful 2captcha.com/rucaptcha.com PHP-client with PSRs support.

v2.1.0(2y ago)1325.5k42UnlicensePHPPHP &gt;=7.4CI failing

Since Dec 19Pushed 2y ago3 watchersCompare

[ Source](https://github.com/gladyshev/rucaptcha-client)[ Packagist](https://packagist.org/packages/gladyshev/rucaptcha-client)[ RSS](/packages/gladyshev-rucaptcha-client/feed)WikiDiscussions v2 Synced today

READMEChangelog (10)Dependencies (7)Versions (21)Used By (2)

rucaptcha-client
================

[](#rucaptcha-client)

Удобная PHP-обёртка для сервиса распознавания капчи [rucaptcha.com](https://rucaptcha.com?from=1342124).
Оригинальная документация доступна [по ссылке](https://rucaptcha.com/api-rucaptcha?from=1342124).

[![Build Status](https://camo.githubusercontent.com/6a323608da2d1b6454dcf1d75683a4666e339bbad862ceae95806723a14f1319/68747470733a2f2f7472617669732d63692e6f72672f676c616479736865762f7275636170746368612d636c69656e742e7376673f6272616e63683d7632)](https://travis-ci.org/gladyshev/rucaptcha-client)[![Code Coverage](https://camo.githubusercontent.com/89ae7132d490baef37c40d0e0e1a7fc94ca295e51167d77942467b4d429066c3/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f676c616479736865762f7275636170746368612d636c69656e742f6261646765732f636f7665726167652e706e673f623d7632)](https://scrutinizer-ci.com/g/gladyshev/rucaptcha-client/?branch=v2)[![Scrutinizer Code Quality](https://camo.githubusercontent.com/6059d66bb9b1b556a1fba70dbde1016ac58e19190453882c8a5839b35d35830a/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f676c616479736865762f7275636170746368612d636c69656e742f6261646765732f7175616c6974792d73636f72652e706e673f623d7632)](https://scrutinizer-ci.com/g/gladyshev/rucaptcha-client/?branch=v2)

### Install

[](#install)

```
$ composer require --prefer-dist gladyshev/rucaptcha-client "*"
```

or

```
"require": {
  ...
  "gladyshev/rucaptcha-client": "*"
  ...
}
```

### Examples

[](#examples)

Больше примеров в папке [examples](/examples).

```
/* Simple */

$rucaptcha = new Rucaptcha\Client(
    Rucaptcha\Config::fromApiKey(getenv('__RUCAPTCHA_KEY__')),
    new GuzzleHttp\Client() // Any PSR-18 HTTP-client
);

$captchaText = $rucaptcha->recognizeFile('captcha.png');
print_r($captchaText); // h54g6
```

```
/* Advanced example */

$rucaptcha = new \Rucaptcha\Client(
    \Rucaptcha\Config::fromApiKey('YOUR_API_KEY'),
    new \GuzzleHttp\Client(['base_uri' => 'https://2captcha.com']),
    new \Monolog\Logger('2Captcha', [new \Monolog\Handler\StreamHandler('php://stdout')])
);

$taskIds = [];

$taskIds[] = $rucaptcha->sendCaptcha(file_get_contents('captcha1.png'));
$taskIds[] = $rucaptcha->sendCaptcha(file_get_contents('captcha2.jpg'));
$taskIds[] = $rucaptcha->sendCaptcha(file_get_contents('captcha3.gif'), [
    Rucaptcha\Extra::NUMERIC => 1
]);

$results = [];

while (count($taskIds) > 0)
{
    // Try get results
    foreach ($taskIds as $i=>$taskId)
    {
        // Wait 5 sec
        sleep(5);

        $results[$taskId] = $rucaptcha->getCaptchaResult($taskId);

        // false === is not ready, on error we've got an exception
        if ($results[$taskId] === false) {
            continue;
        } else {
            unset($taskIds[$i]);
        }
    }
}

print_r($results);
```

### Methods of `Rucaptcha\Client`

[](#methods-of-rucaptchaclient)

```
use Rucaptcha\Client;

/* Solving captcha methods */

Client::recognize(string $content, array $extra = []): string;
Client::recognizeFile(string $path, array $extra = []): string;
Client::sendCaptcha(string $content, array $extra = []): int;
Client::getCaptchaResult(int $captchaId): string;
Client::getCaptchaResultBulk(array $captchaIds): array;

/* Pingback stuff */

Client::addPingback(string $uri): void;
Client::getPingbacks(): array;
Client::deletePingback(string $uri): void;
Client::deleteAllPingbacks(): void;

/* Google Recaptcha V2 */

Client::sendRecapthaV2($googleKey, $pageUrl, $extra = []): int
Client::recognizeRecapthaV2($googleKey, $pageUrl, $extra = []): string

/* Other */

Client::getLastCaptchaId(): string;
Client::getBalance(): string;
Client::reportGood(string $captchaId): bool;
Client::reportBad(string $captchaId): bool;
```

### Client options

[](#client-options)

ПараметрТипПо умолчаниюВозможные значения`verbose`boolfalseВключает/отключает логирование в стандартный вывод`apiKey`string''Ключ API с которым вызывается сервис`rTimeout`integer5Период между опросами серевера при получении результата распознавания`mTimeout`integer120Таймаут ожидания ответа при получении результата распознавания`serverBaseUri`string''Базовый URI сервиса### Solving options `$extra`

[](#solving-options-extra)

ПараметрТипПо умолчаниюВозможные значения`phrase`integer00 = одно слово
 1 = капча имеет два слова`regsense`integer00 = регистр ответа не имеет значения
 1 = регистр ответа имеет значение`question`integer00 = параметр не задействован
 1 = на изображении задан вопрос, работник должен написать ответ`numeric`integer00 = параметр не задействован
 1 = капча состоит только из цифр
 2 = Капча состоит только из букв
 3 = Капча состоит либо только из цифр, либо только из букв.`calc`integer00 = параметр не задействован
 1 = работнику нужно совершить математическое действие с капчи`min_len`0..2000 = параметр не задействован
 1..20 = минимальное количество знаков в ответе`max_len`1..2000 = параметр не задействован
 1..20 = максимальное количество знаков в ответе`is_russian`integer0параметр больше не используется, т.к. он означал "слать данную капчу русским исполнителям", а в системе находятся только русскоязычные исполнители. Смотрите новый параметр language, однозначно обозначающий язык капчи`soft_id`stringID разработчика приложения. Разработчику приложения отчисляется 10% от всех капч, пришедших из его приложения.`language`integer00 = параметр не задействован
 1 = на капче только кириллические буквы
 2 = на капче только латинские буквы`lang`stringКод языка. [См. список поддерживаемых языков](https://rucaptcha.com/api-rucaptcha#language).`header_acao`integer00 = значение по умолчанию
 1 = in.php передаст Access-Control-Allow-Origin: \* параметр в заголовке ответа. (Необходимо для кросс-доменных AJAX запросов в браузерных приложениях. Работает также для res.php.)`textinstructions`stringТекст, который будет показан работнику. Может содержать в себе инструкции по разгадке капчи. Ограничение - 140 символов. Текст необходимо слать в кодировке UTF-8.`textcaptcha`stringТекстовая капча. Картинка при этом не загружается, работник получает только текст и вводит ответ на этот текст. Ограничение - 140 символов. Текст необходимо слать в кодировке UTF-8.`pingback`stringURL для автоматической отправки ответа на капчу (callback). URL должен быть зарегистрирован на сервере. [Больше информации здесь](https://rucaptcha.com/api-rucaptcha#pingback).`recaptcha`stringИспользуется при работе со старым алгоритмом распознования Google Recaptcha V2. [Больше информации здесь](https://rucaptcha.com/api-rucaptcha#solving_recaptchav2_old).`proxy`stringФормат: логин:пароль@123.123.123.123:3128 [Больше информации о прокси здесь.](https://rucaptcha.com/api-rucaptcha#proxies)`proxytype`stringТип вашего прокси-сервера: HTTP, HTTPS, SOCKS4, SOCKS5.

###  Health Score

40

—

FairBetter than 86% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity34

Limited adoption so far

Community19

Small or concentrated contributor base

Maturity72

Established project with proven stability

 Bus Factor1

Top contributor holds 75% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~147 days

Recently: every ~226 days

Total

20

Last Release

1055d ago

Major Versions

v1.4.1 → v2.0.02021-07-17

PHP version history (4 changes)v1.0.0-alphaPHP &gt;=5.6

v1.0.1PHP &gt;=5.5.0

v1.4.1PHP &gt;=7.2.5

v2.0.0PHP &gt;=7.4

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/3429161?v=4)[Dmitry Gladyshev](/maintainers/gladyshev)[@gladyshev](https://github.com/gladyshev)

---

Top Contributors

[![gladyshev](https://avatars.githubusercontent.com/u/3429161?v=4)](https://github.com/gladyshev "gladyshev (9 commits)")[![adideas](https://avatars.githubusercontent.com/u/50667072?v=4)](https://github.com/adideas "adideas (1 commits)")[![parpalak](https://avatars.githubusercontent.com/u/9402484?v=4)](https://github.com/parpalak "parpalak (1 commits)")[![scrutinizer-auto-fixer](https://avatars.githubusercontent.com/u/6253494?v=4)](https://github.com/scrutinizer-auto-fixer "scrutinizer-auto-fixer (1 commits)")

---

Tags

phprucaptcharucaptcha-client2captcha.comrucaptcharucaptcha.comcaptcha recognition

###  Code Quality

TestsPHPUnit

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/gladyshev-rucaptcha-client/health.svg)

```
[![Health](https://phpackages.com/badges/gladyshev-rucaptcha-client/health.svg)](https://phpackages.com/packages/gladyshev-rucaptcha-client)
```

###  Alternatives

[civicrm/civicrm-core

Open source constituent relationship management for non-profits, NGOs and advocacy organizations.

751291.4k43](/packages/civicrm-civicrm-core)[guzzlehttp/guzzle

Guzzle is a PHP HTTP client library

23.5k1.0B35.4k](/packages/guzzlehttp-guzzle)[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.5k5.9M738](/packages/sylius-sylius)[drupal/core-recommended

Locked core dependencies; require this project INSTEAD OF drupal/core.

6942.5M421](/packages/drupal-core-recommended)[tempest/framework

The PHP framework that gets out of your way.

2.2k34.4k15](/packages/tempest-framework)[typo3/cms

TYPO3 CMS is a free open source Content Management Framework initially created by Kasper Skaarhoj and licensed under GNU/GPL.

1.2k1.9M122](/packages/typo3-cms)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
