PHPackages                             deathbycaptcha/deathbycaptcha-api-php - 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. [API Development](/categories/api)
4. /
5. deathbycaptcha/deathbycaptcha-api-php

ActiveLibrary[API Development](/categories/api)

deathbycaptcha/deathbycaptcha-api-php
=====================================

Official Death by Captcha API Client for PHP - Solve CAPTCHAs automatically including reCAPTCHA v2/v3, hCaptcha, Cloudflare Turnstile, FunCaptcha, GeeTest, and more

v4.6.2(3mo ago)107↓86.4%2MITPHPPHP &gt;=7.4CI passing

Since Mar 4Pushed 3mo agoCompare

[ Source](https://github.com/deathbycaptcha/deathbycaptcha-api-client-php)[ Packagist](https://packagist.org/packages/deathbycaptcha/deathbycaptcha-api-php)[ Docs](https://deathbycaptcha.com)[ RSS](/packages/deathbycaptcha-deathbycaptcha-api-php/feed)WikiDiscussions master Synced 4w ago

READMEChangelog (1)Dependencies (1)Versions (2)Used By (0)

[DeathByCaptcha](https://deathbycaptcha.com/)
=============================================

[](#deathbycaptcha)

 [![Python](https://camo.githubusercontent.com/324b4cfa68deb1b9c0008c02e910370ae1e1b7141ce0fe77972b6ea034e7abb7/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f507974686f6e2d3337373641423f7374796c653d666f722d7468652d6261646765266c6f676f3d707974686f6e266c6f676f436f6c6f723d7768697465)](https://github.com/deathbycaptcha/deathbycaptcha-api-client-python#readme) [![Node.js](https://camo.githubusercontent.com/d3eeba2b0ea055d4668da93143f4433748e6bbd4979abd4c073ec5c6903fafcd/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4e6f64652e6a732d3333393933333f7374796c653d666f722d7468652d6261646765266c6f676f3d6e6f6465646f746a73266c6f676f436f6c6f723d7768697465)](https://github.com/deathbycaptcha/deathbycaptcha-api-client-nodejs#readme) [![.NET](https://camo.githubusercontent.com/bb1a2715972728121475f2e32808ab69516fe7ea230068cbd9eda3b3b0469acb/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f2e4e45542d3531324244343f7374796c653d666f722d7468652d6261646765266c6f676f3d646f746e6574266c6f676f436f6c6f723d7768697465)](https://github.com/deathbycaptcha/deathbycaptcha-api-client-dotnet#readme) [![Java](https://camo.githubusercontent.com/1cfb134f21732c561f95a128ad5aaa1d429b4d50ed519086e6b40356056063ff/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4a6176612d4544384230303f7374796c653d666f722d7468652d6261646765266c6f676f3d6f70656e6a646b266c6f676f436f6c6f723d7768697465)](https://github.com/deathbycaptcha/deathbycaptcha-api-client-java#readme) [![PHP](https://camo.githubusercontent.com/e704e1a1f68243c1f0adfa09b0df307e12ab17b5ca84adef7a43d0b3694345fc/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f2545322538302542412d5048502d3737374242343f7374796c653d666f722d7468652d6261646765266c6f676f3d706870266c6f676f436f6c6f723d7768697465266c6162656c436f6c6f723d353535353535)](https://github.com/deathbycaptcha/deathbycaptcha-api-client-php#readme) [![Perl](https://camo.githubusercontent.com/5a5051294dcd7eee9bd5ca7927419c46e6fa61d2e4b1fe51db87c0a38d651b90/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5065726c2d3339343537453f7374796c653d666f722d7468652d6261646765266c6f676f3d7065726c266c6f676f436f6c6f723d7768697465)](https://github.com/deathbycaptcha/deathbycaptcha-api-client-perl#readme) [![C](https://camo.githubusercontent.com/f065dfb64231db2de852edcce80892b6f6fbaea56c6e30b7f36bfb03b4216f4d/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f432d4138423943433f7374796c653d666f722d7468652d6261646765266c6f676f3d63266c6f676f436f6c6f723d626c61636b)](https://github.com/deathbycaptcha/deathbycaptcha-api-client-c11#readme) [![C++](https://camo.githubusercontent.com/191d1acd6ef02224e00cd2ad8f31be32fda7ea4552eb52059836b74e1d838a10/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f432532422532422d3030353939433f7374796c653d666f722d7468652d6261646765266c6f676f3d63706c7573706c7573266c6f676f436f6c6f723d7768697465)](https://github.com/deathbycaptcha/deathbycaptcha-api-client-cpp#readme) [![Go](https://camo.githubusercontent.com/648c68d4193da5d98d32b13b7ac2141a9fea3eee6e25c6d5595eb12a1f7c0c91/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f476f2d3030414444383f7374796c653d666f722d7468652d6261646765266c6f676f3d676f266c6f676f436f6c6f723d7768697465)](https://github.com/deathbycaptcha/deathbycaptcha-api-client-go#readme)

📖 Introduction
--------------

[](#-introduction)

The [DeathByCaptcha](https://deathbycaptcha.com) PHP client is the official library for DeathByCaptcha — a trusted **bypass captcha service** used across thousands of automation pipelines. It provides a simple, well-documented interface that works as a **captcha solver for bots**, web scrapers, and any workflow where CAPTCHAs block access to the data you need. It supports both the HTTPS API (encrypted transport — recommended when security is a priority) and the socket-based API (faster and lower latency, recommended for high-throughput production workloads). Compatible with PHP 7.4+.

Key features:

- 🧩 Send image, audio and modern token-based CAPTCHA types (reCAPTCHA v2/v3, Turnstile, GeeTest, etc.).
- 🔄 Unified client API across HTTP and socket transports — switching implementations is straightforward.
- 🔐 Built-in support for proxies, timeouts and advanced token parameters for modern CAPTCHA flows.

Quick start example (HTTP):

```
require_once 'deathbycaptcha.php';

$client = new DeathByCaptcha_HttpClient("your_username", "your_password");
$captcha = $client->decode("path/to/captcha.jpg");
if ($captcha) {
    echo $captcha["text"];
}
```

> **🚌 Transport options:** Use `DeathByCaptcha_HttpClient` for encrypted HTTPS communication — credentials and data travel over TLS. Use `DeathByCaptcha_SocketClient` for lower latency and higher throughput — it is faster but communicates over a plain TCP connection to `api.dbcapi.me` on ports `8123–8130`.

---

### Tests Status

[](#tests-status)

[![Tests](https://github.com/deathbycaptcha/deathbycaptcha-api-client-php/actions/workflows/tests.yml/badge.svg)](https://github.com/deathbycaptcha/deathbycaptcha-api-client-php/actions/workflows/tests.yml)[![Coverage](https://camo.githubusercontent.com/8c97aaeae67a31b3640868598caeec8bd07d2e14fe398ccc56defbde06a5df32/68747470733a2f2f696d672e736869656c64732e696f2f656e64706f696e743f75726c3d68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f64656174686279636170746368612f64656174686279636170746368612d6170692d636c69656e742d7068702f6d61737465722f2e636f7665726167652f62616467652e6a736f6e)](https://github.com/deathbycaptcha/deathbycaptcha-api-client-php/actions/workflows/tests.yml)

---

🗂️ Index
--------

[](#️-index)

- [Installation](#installation)
    - [From Composer (Recommended)](#from-composer-recommended)
    - [From GitHub Repository](#from-github-repository)
- [How to Use DBC API Clients](#how-to-use-dbc-api-clients)
    - [Common Clients' Interface](#common-clients-interface)
    - [Available Methods](#captcha-methods)
- [Credentials &amp; Configuration](#credentials--configuration)
    - [Quick Setup](#quick-setup)
- [CAPTCHA Types Quick Reference &amp; Examples](#captcha-types-reference)
    - [Quick Start](#quick-start)
    - [Type Reference](#sample-index-by-captcha-type)
    - [Per-Type Code Snippets](#quick-type-snippets)
- [CAPTCHA Types Extended Reference](#captcha-types-extended-reference)
    - [reCAPTCHA Image-Based API — Deprecated (Types 2 &amp; 3)](#recaptcha-image-based-api)
    - [reCAPTCHA Token API (v2 &amp; v3)](#recaptcha-token-api)
    - [reCAPTCHA v2 API FAQ](#recaptcha-v2-api-faq)
    - [What is reCAPTCHA v3?](#what-is-recaptcha-v3)
    - [reCAPTCHA v3 API FAQ](#recaptcha-v3-api-faq)
    - [Amazon WAF API (Type 16)](#amazon-waf-api-faq)
    - [Cloudflare Turnstile API (Type 12)](#cloudflare-turnstile-api-faq)
- [Continuous Integration](#continuous-integration)
    - [GitHub Actions](#github-actions)
    - [GitLab CI/CD](#gitlab-cicd)
    - [Test Status by PHP Version](#test-status-by-php-version)
    - [Code Quality](#code-quality)

🛠️ Installation
---------------

[](#️-installation)

### 📦 From Composer (Recommended)

[](#-from-composer-recommended)

```
composer require deathbycaptcha/deathbycaptcha-api-php
```

### 🐙 From GitHub Repository

[](#-from-github-repository)

For the latest development version or to contribute:

```
git clone https://github.com/deathbycaptcha/deathbycaptcha-api-client-php.git
cd deathbycaptcha-api-client-php
```

Then include the library in your PHP script:

```
require_once '/path/to/deathbycaptcha.php';
```

See [INSTALL.md](INSTALL.md) for full requirements and setup details.

🚀 How to Use DBC API Clients
----------------------------

[](#-how-to-use-dbc-api-clients)

### 🔌 Common Clients' Interface

[](#-common-clients-interface)

All clients must be instantiated with your DeathByCaptcha credentials — *username* and *password*. Replace `DeathByCaptcha_HttpClient` with `DeathByCaptcha_SocketClient` to use the socket transport instead.

```
require_once 'deathbycaptcha.php';

// Username + password (HTTPS transport — encrypted, recommended when security matters)
$client = new DeathByCaptcha_HttpClient($username, $password);

// Username + password (socket transport — faster, lower latency, recommended for high throughput)
// $client = new DeathByCaptcha_SocketClient($username, $password);
```

TransportClassBest forHTTPS`DeathByCaptcha_HttpClient`Encrypted TLS transport — safer for credential handling and network-sensitive environmentsSocket`DeathByCaptcha_SocketClient`Plain TCP — faster and lower latency, recommended for high-throughput production workloadsAll clients share the same interface. Below is a summary of every available method and its pseudo-code signature.

MethodSignatureReturnsDescription`upload()``upload($captchaFile)``array` or `NULL`Upload a CAPTCHA for solving without waiting. `$captchaFile` is a file path or open file resource; pass type-specific params as second array argument.`decode()``decode($captcha=null, $extra=[], $timeout=null)``array` or `NULL`Upload and poll until solved or timed out. Preferred method for most integrations.`get_captcha()``get_captcha($captchaId)``array` or `NULL`Fetch status and result of a previously uploaded CAPTCHA by its numeric ID.`report()``report($captchaId)``bool`Report a CAPTCHA as incorrectly solved to request a refund. Only report genuine errors.`get_balance()``get_balance()``float`Return the current account balance in US cents.### 📬 CAPTCHA Result Object

[](#-captcha-result-object)

All methods that return a solved CAPTCHA return an associative array with the following keys:

KeyTypeDescription`"captcha"``int`Numeric CAPTCHA ID assigned by DBC`"text"``string`Solved text or token (the value you inject into the page)`"is_correct"``bool`Whether DBC considers the solution correct```
// Example result array
[
    "captcha"    => 123456789,
    "text"       => "03AOPBWq_...",
    "is_correct" => true
]
```

### 💡 Full Usage Example

[](#-full-usage-example)

```
require_once 'deathbycaptcha.php';

$client = new DeathByCaptcha_HttpClient($username, $password);

try {
    echo "Balance: " . $client->get_balance() . " US cents\n";

    $captcha = $client->decode("path/to/captcha.jpg");
    if ($captcha) {
        echo sprintf("Solved CAPTCHA %d: %s\n", $captcha["captcha"], $captcha["text"]);

        // Report only if you are certain the solution is wrong:
        // $client->report($captcha["captcha"]);
    }
} catch (DeathByCaptcha_AccessDeniedException $e) {
    echo "Access denied — check your credentials and/or balance\n";
}
```

🔑 Credentials &amp; Configuration
---------------------------------

[](#-credentials--configuration)

For detailed information about setting up credentials for different CI environments:

- **GitHub Actions**: Configure repository secrets — see [GITHUB\_ACTIONS.md](GITHUB_ACTIONS.md)
- **GitLab CI/CD**: Configure project CI/CD variables — see [GITLAB\_CI.md](GITLAB_CI.md)

### ⚡ Quick Setup

[](#-quick-setup)

```
# ① Clone the repository
git clone https://github.com/deathbycaptcha/deathbycaptcha-api-client-php.git
cd deathbycaptcha-api-client-php

# ② Install dependencies
composer install

# ③ Add your credentials inside any example script:
#    $username = "your_username";
#    $password = "your_password";

# ④ Run tests locally
./vendor/bin/phpunit tests/

# ⑤ Push to repo for GitHub Actions and GitLab CI
git push
```

See [QUICKSTART.md](QUICKSTART.md) for a step-by-step introduction.

🧩 CAPTCHA Types Quick Reference &amp; Examples
----------------------------------------------

[](#-captcha-types-quick-reference--examples)

This section covers every supported CAPTCHA type, how to run the corresponding example scripts, and ready-to-copy code snippets. Start with the Quick Start below, then use the Type Reference to find the type you need.

### 🏁 Quick Start

[](#-quick-start)

1. **📦 Install the library** (see [Installation](#installation))
2. **📂 Navigate to the `examples/` directory** and run the script for the type you need:

```
cd examples
php example.Normal_Captcha.php

# Balance check (accepts credentials as arguments):
php ../get_balance.php
```

> ⚠️ Always run examples from the `examples/` directory so the `images/` folder is accessible to scripts that need it.

Before running any script, add your DBC credentials inside it:

```
$username = "your_username";
$password = "your_password";
```

### 📋 Type Reference

[](#-type-reference)

The table below maps every supported type to its use case, a code snippet, and the corresponding example file in `examples/`.

Type IDCAPTCHA TypeUse CaseQuick UsePHP Sample0Standard ImageBasic image CAPTCHA[snippet](#sample-type-0-standard-image)[open](https://github.com/deathbycaptcha/deathbycaptcha-api-client-php/blob/master/examples/example.Normal_Captcha.php)2reCAPTCHA CoordinatesDeprecated — do not use for new integrations——3reCAPTCHA Image GroupDeprecated — do not use for new integrations——4reCAPTCHA v2 TokenreCAPTCHA v2 token solving[snippet](#sample-type-4-recaptcha-v2-token)[open](https://github.com/deathbycaptcha/deathbycaptcha-api-client-php/blob/master/examples/example.reCAPTCHA_v2.php)5reCAPTCHA v3 TokenreCAPTCHA v3 with risk scoring[snippet](#sample-type-5-recaptcha-v3-token)[open](https://github.com/deathbycaptcha/deathbycaptcha-api-client-php/blob/master/examples/example.reCAPTCHA_v3.php)25reCAPTCHA v2 EnterprisereCAPTCHA v2 Enterprise tokens[snippet](#sample-type-25-recaptcha-v2-enterprise)[open](https://github.com/deathbycaptcha/deathbycaptcha-api-client-php/blob/master/examples/example.reCAPTCHA_v2_Enterprise.php)8GeeTest v3Geetest v3 verification[snippet](#sample-type-8-geetest-v3)[open](https://github.com/deathbycaptcha/deathbycaptcha-api-client-php/blob/master/examples/example.Geetest_v3.php)9GeeTest v4Geetest v4 verification[snippet](#sample-type-9-geetest-v4)[open](https://github.com/deathbycaptcha/deathbycaptcha-api-client-php/blob/master/examples/example.Geetest_v4.php)11Text CAPTCHAText-based question solving[snippet](#sample-type-11-text-captcha)[open](https://github.com/deathbycaptcha/deathbycaptcha-api-client-php/blob/master/examples/example.Textcaptcha.php)12Cloudflare TurnstileCloudflare Turnstile token[snippet](#sample-type-12-cloudflare-turnstile)[open](https://github.com/deathbycaptcha/deathbycaptcha-api-client-php/blob/master/examples/example.Turnstile.php)13Audio CAPTCHAAudio CAPTCHA solving[snippet](#sample-type-13-audio-captcha)[open](https://github.com/deathbycaptcha/deathbycaptcha-api-client-php/blob/master/examples/example.Audio.php)14LeminLemin CAPTCHA[snippet](#sample-type-14-lemin)[open](https://github.com/deathbycaptcha/deathbycaptcha-api-client-php/blob/master/examples/example.Lemin.php)15CapyCapy CAPTCHA[snippet](#sample-type-15-capy)[open](https://github.com/deathbycaptcha/deathbycaptcha-api-client-php/blob/master/examples/example.Capy.php)16Amazon WAFAmazon WAF verification[snippet](#sample-type-16-amazon-waf)[open](https://github.com/deathbycaptcha/deathbycaptcha-api-client-php/blob/master/examples/example.Amazon_Waf.php)17SiaraSiara CAPTCHA[snippet](#sample-type-17-siara)[open](https://github.com/deathbycaptcha/deathbycaptcha-api-client-php/blob/master/examples/example.Siara.php)18MTCaptchaMtcaptcha CAPTCHA[snippet](#sample-type-18-mtcaptcha)[open](https://github.com/deathbycaptcha/deathbycaptcha-api-client-php/blob/master/examples/example.Mtcaptcha.php)19CutcaptchaCutcaptcha CAPTCHA[snippet](#sample-type-19-cutcaptcha)[open](https://github.com/deathbycaptcha/deathbycaptcha-api-client-php/blob/master/examples/example.Cutcaptcha.php)20Friendly CaptchaFriendly Captcha[snippet](#sample-type-20-friendly-captcha)[open](https://github.com/deathbycaptcha/deathbycaptcha-api-client-php/blob/master/examples/example.Friendly.php)21DataDomeDatadome verification[snippet](#sample-type-21-datadome)[open](https://github.com/deathbycaptcha/deathbycaptcha-api-client-php/blob/master/examples/example.Datadome.php)23TencentTencent CAPTCHA[snippet](#sample-type-23-tencent)[open](https://github.com/deathbycaptcha/deathbycaptcha-api-client-php/blob/master/examples/example.Tencent.php)24ATBATB CAPTCHA[snippet](#sample-type-24-atb)[open](https://github.com/deathbycaptcha/deathbycaptcha-api-client-php/blob/master/examples/example.Atb.php)

### 📝 Per-Type Code Snippets

[](#-per-type-code-snippets)

Minimal usage snippet for each supported type. Use these as a starting point and refer to the full example files in `examples/` for complete implementations.

#### 🖼️ Sample Type 0: Standard Image

[](#️-sample-type-0-standard-image)

Official description: [Supported CAPTCHAs](https://deathbycaptcha.com/api#supported_captchas)Full sample: [example.Normal\_Captcha.php](https://github.com/deathbycaptcha/deathbycaptcha-api-client-php/blob/master/examples/example.Normal_Captcha.php)

```
$captcha = $client->decode("images/normal.jpg");
```

---

#### 🤖 Sample Type 4: reCAPTCHA v2 Token

[](#-sample-type-4-recaptcha-v2-token)

Official description: [reCAPTCHA Token API (v2)](https://deathbycaptcha.com/api/newtokenrecaptcha#token-v2)Full sample: [example.reCAPTCHA\_v2.php](https://github.com/deathbycaptcha/deathbycaptcha-api-client-php/blob/master/examples/example.reCAPTCHA_v2.php)

```
$token_params = json_encode([
    'proxy'     => 'http://user:pass@127.0.0.1:1234',
    'proxytype' => 'HTTP',
    'googlekey' => 'sitekey',
    'pageurl'   => 'https://target',
]);
$captcha = $client->decode(null, ['type' => 4, 'token_params' => $token_params]);
```

---

#### 🤖 Sample Type 5: reCAPTCHA v3 Token

[](#-sample-type-5-recaptcha-v3-token)

Official description: [reCAPTCHA v3](https://deathbycaptcha.com/api/newtokenrecaptcha#reCAPTCHAv3)Full sample: [example.reCAPTCHA\_v3.php](https://github.com/deathbycaptcha/deathbycaptcha-api-client-php/blob/master/examples/example.reCAPTCHA_v3.php)

```
$token_params = json_encode([
    'proxy'     => 'http://user:pass@127.0.0.1:1234',
    'proxytype' => 'HTTP',
    'googlekey' => 'sitekey',
    'pageurl'   => 'https://target',
    'action'    => 'verify',
    'min_score' => 0.3,
]);
$captcha = $client->decode(null, ['type' => 5, 'token_params' => $token_params]);
```

---

#### 🏢 Sample Type 25: reCAPTCHA v2 Enterprise

[](#-sample-type-25-recaptcha-v2-enterprise)

Official description: [reCAPTCHA v2 Enterprise](https://deathbycaptcha.com/api/newtokenrecaptcha#reCAPTCHAv2Enterprise)Full sample: [example.reCAPTCHA\_v2\_Enterprise.php](https://github.com/deathbycaptcha/deathbycaptcha-api-client-php/blob/master/examples/example.reCAPTCHA_v2_Enterprise.php)

```
$token_enterprise_params = json_encode([
    'proxy'     => 'http://user:pass@127.0.0.1:1234',
    'proxytype' => 'HTTP',
    'googlekey' => 'sitekey',
    'pageurl'   => 'https://target',
]);
$captcha = $client->decode(null, ['type' => 25, 'token_enterprise_params' => $token_enterprise_params]);
```

---

#### 🧩 Sample Type 8: GeeTest v3

[](#-sample-type-8-geetest-v3)

Official description: [GeeTest](https://deathbycaptcha.com/api/geetest)Full sample: [example.Geetest\_v3.php](https://github.com/deathbycaptcha/deathbycaptcha-api-client-php/blob/master/examples/example.Geetest_v3.php)

```
$geetest_params = json_encode([
    'proxy'     => 'http://user:pass@127.0.0.1:1234',
    'proxytype' => 'HTTP',
    'gt'        => 'gt_value',
    'challenge' => 'challenge_value',
    'pageurl'   => 'https://target',
]);
$captcha = $client->decode(null, ['type' => 8, 'geetest_params' => $geetest_params]);
```

---

#### 🧩 Sample Type 9: GeeTest v4

[](#-sample-type-9-geetest-v4)

Official description: [GeeTest](https://deathbycaptcha.com/api/geetest)Full sample: [example.Geetest\_v4.php](https://github.com/deathbycaptcha/deathbycaptcha-api-client-php/blob/master/examples/example.Geetest_v4.php)

```
$geetest_params = json_encode([
    'proxy'      => 'http://user:pass@127.0.0.1:1234',
    'proxytype'  => 'HTTP',
    'captcha_id' => 'captcha_id',
    'pageurl'    => 'https://target',
]);
$captcha = $client->decode(null, ['type' => 9, 'geetest_params' => $geetest_params]);
```

---

#### 💬 Sample Type 11: Text CAPTCHA

[](#-sample-type-11-text-captcha)

Official description: [Text CAPTCHA](https://deathbycaptcha.com/api/textcaptcha)Full sample: [example.Textcaptcha.php](https://github.com/deathbycaptcha/deathbycaptcha-api-client-php/blob/master/examples/example.Textcaptcha.php)

```
$captcha = $client->decode(null, ['type' => 11, 'textcaptcha' => 'What is two plus two?']);
```

---

#### ☁️ Sample Type 12: Cloudflare Turnstile

[](#️-sample-type-12-cloudflare-turnstile)

Official description: [Cloudflare Turnstile](https://deathbycaptcha.com/api/turnstile)Full sample: [example.Turnstile.php](https://github.com/deathbycaptcha/deathbycaptcha-api-client-php/blob/master/examples/example.Turnstile.php)

```
$turnstile_params = json_encode([
    'proxy'     => 'http://user:pass@127.0.0.1:1234',
    'proxytype' => 'HTTP',
    'sitekey'   => 'sitekey',
    'pageurl'   => 'https://target',
]);
$captcha = $client->decode(null, ['type' => 12, 'turnstile_params' => $turnstile_params]);
```

---

#### 🔊 Sample Type 13: Audio CAPTCHA

[](#-sample-type-13-audio-captcha)

Official description: [Audio CAPTCHA](https://deathbycaptcha.com/api/audio)Full sample: [example.Audio.php](https://github.com/deathbycaptcha/deathbycaptcha-api-client-php/blob/master/examples/example.Audio.php)

```
$audio = base64_encode(file_get_contents('images/audio.mp3'));
$captcha = $client->decode(null, ['type' => 13, 'audio' => $audio, 'language' => 'en']);
```

---

#### 🔵 Sample Type 14: Lemin

[](#-sample-type-14-lemin)

Official description: [Lemin](https://deathbycaptcha.com/api/lemin)Full sample: [example.Lemin.php](https://github.com/deathbycaptcha/deathbycaptcha-api-client-php/blob/master/examples/example.Lemin.php)

```
$lemin_params = json_encode([
    'proxy'     => 'http://user:pass@127.0.0.1:1234',
    'proxytype' => 'HTTP',
    'captchaid' => 'CROPPED_xxx',
    'pageurl'   => 'https://target',
]);
$captcha = $client->decode(null, ['type' => 14, 'lemin_params' => $lemin_params]);
```

---

#### 🏴 Sample Type 15: Capy

[](#-sample-type-15-capy)

Official description: [Capy](https://deathbycaptcha.com/api/capy)Full sample: [example.Capy.php](https://github.com/deathbycaptcha/deathbycaptcha-api-client-php/blob/master/examples/example.Capy.php)

```
$capy_params = json_encode([
    'proxy'      => 'http://user:pass@127.0.0.1:1234',
    'proxytype'  => 'HTTP',
    'captchakey' => 'PUZZLE_xxx',
    'api_server' => 'https://www.capy.me/',
    'pageurl'    => 'https://target',
]);
$captcha = $client->decode(null, ['type' => 15, 'capy_params' => $capy_params]);
```

---

#### 🛡️ Sample Type 16: Amazon WAF

[](#️-sample-type-16-amazon-waf)

Official description: [Amazon WAF](https://deathbycaptcha.com/api/amazonwaf)Full sample: [example.Amazon\_Waf.php](https://github.com/deathbycaptcha/deathbycaptcha-api-client-php/blob/master/examples/example.Amazon_Waf.php)

```
$waf_params = json_encode([
    'proxy'     => 'http://user:pass@127.0.0.1:1234',
    'proxytype' => 'HTTP',
    'sitekey'   => 'sitekey',
    'pageurl'   => 'https://target',
    'iv'        => 'iv_value',
    'context'   => 'context_value',
]);
$captcha = $client->decode(null, ['type' => 16, 'waf_params' => $waf_params]);
```

---

#### 🔍 Sample Type 17: Siara

[](#-sample-type-17-siara)

Official description: [Siara](https://deathbycaptcha.com/api/siara)Full sample: [example.Siara.php](https://github.com/deathbycaptcha/deathbycaptcha-api-client-php/blob/master/examples/example.Siara.php)

```
$siara_params = json_encode([
    'proxy'      => 'http://user:pass@127.0.0.1:1234',
    'proxytype'  => 'HTTP',
    'slideurlid' => 'slide_master_url_id',
    'pageurl'    => 'https://target',
    'useragent'  => 'Mozilla/5.0',
]);
$captcha = $client->decode(null, ['type' => 17, 'siara_params' => $siara_params]);
```

---

#### 🔒 Sample Type 18: MTCaptcha

[](#-sample-type-18-mtcaptcha)

Official description: [MTCaptcha](https://deathbycaptcha.com/api/mtcaptcha)Full sample: [example.Mtcaptcha.php](https://github.com/deathbycaptcha/deathbycaptcha-api-client-php/blob/master/examples/example.Mtcaptcha.php)

```
$mtcaptcha_params = json_encode([
    'proxy'     => 'http://user:pass@127.0.0.1:1234',
    'proxytype' => 'HTTP',
    'sitekey'   => 'MTPublic-xxx',
    'pageurl'   => 'https://target',
]);
$captcha = $client->decode(null, ['type' => 18, 'mtcaptcha_params' => $mtcaptcha_params]);
```

---

#### ✂️ Sample Type 19: Cutcaptcha

[](#️-sample-type-19-cutcaptcha)

Official description: [Cutcaptcha](https://deathbycaptcha.com/api/cutcaptcha)Full sample: [example.Cutcaptcha.php](https://github.com/deathbycaptcha/deathbycaptcha-api-client-php/blob/master/examples/example.Cutcaptcha.php)

```
$cutcaptcha_params = json_encode([
    'proxy'     => 'http://user:pass@127.0.0.1:1234',
    'proxytype' => 'HTTP',
    'apikey'    => 'api_key',
    'miserykey' => 'misery_key',
    'pageurl'   => 'https://target',
]);
$captcha = $client->decode(null, ['type' => 19, 'cutcaptcha_params' => $cutcaptcha_params]);
```

---

#### 💚 Sample Type 20: Friendly Captcha

[](#-sample-type-20-friendly-captcha)

Official description: [Friendly Captcha](https://deathbycaptcha.com/api/friendly)Full sample: [example.Friendly.php](https://github.com/deathbycaptcha/deathbycaptcha-api-client-php/blob/master/examples/example.Friendly.php)

```
$friendly_params = json_encode([
    'proxy'     => 'http://user:pass@127.0.0.1:1234',
    'proxytype' => 'HTTP',
    'sitekey'   => 'FCMG...',
    'pageurl'   => 'https://target',
]);
$captcha = $client->decode(null, ['type' => 20, 'friendly_params' => $friendly_params]);
```

---

#### � Sample Type 21: DataDome

[](#-sample-type-21-datadome)

Official description: [DataDome](https://deathbycaptcha.com/api/datadome)Full sample: [example.Datadome.php](https://github.com/deathbycaptcha/deathbycaptcha-api-client-php/blob/master/examples/example.Datadome.php)

```
$datadome_params = json_encode([
    'proxy'       => 'http://user:pass@127.0.0.1:1234',
    'proxytype'   => 'HTTP',
    'pageurl'     => 'https://target',
    'captcha_url' => 'https://target/captcha',
]);
$captcha = $client->decode(null, ['type' => 21, 'datadome_params' => $datadome_params]);
```

---

#### 🔷 Sample Type 23: Tencent

[](#-sample-type-23-tencent)

Official description: [Tencent](https://deathbycaptcha.com/api/tencent)Full sample: [example.Tencent.php](https://github.com/deathbycaptcha/deathbycaptcha-api-client-php/blob/master/examples/example.Tencent.php)

```
$tencent_params = json_encode([
    'proxy'     => 'http://user:pass@127.0.0.1:1234',
    'proxytype' => 'HTTP',
    'appid'     => 'appid',
    'pageurl'   => 'https://target',
]);
$captcha = $client->decode(null, ['type' => 23, 'tencent_params' => $tencent_params]);
```

---

#### 🏷️ Sample Type 24: ATB

[](#️-sample-type-24-atb)

Official description: [ATB](https://deathbycaptcha.com/api/atb)Full sample: [example.Atb.php](https://github.com/deathbycaptcha/deathbycaptcha-api-client-php/blob/master/examples/example.Atb.php)

```
$atb_params = json_encode([
    'proxy'     => 'http://user:pass@127.0.0.1:1234',
    'proxytype' => 'HTTP',
    'appid'     => 'appid',
    'apiserver' => 'https://cap.aisecurius.com',
    'pageurl'   => 'https://target',
]);
$captcha = $client->decode(null, ['type' => 24, 'atb_params' => $atb_params]);
```

📚 CAPTCHA Types Extended Reference
----------------------------------

[](#-captcha-types-extended-reference)

Full API-level documentation for selected CAPTCHA types: parameter references, payload schemas, request/response formats, token lifespans, and integration notes.

### ⛔ reCAPTCHA Image-Based API — Deprecated (Types 2 &amp; 3)

[](#-recaptcha-image-based-api--deprecated-types-2--3)

> ⚠️ **Deprecated.** Types 2 (Coordinates) and 3 (Image Group) are legacy image-based reCAPTCHA challenge methods that are no longer used at captcha solving. Do not use them for new integrations — use the [reCAPTCHA Token API (v2 &amp; v3)](#recaptcha-token-api) instead.

---

### 🔐 reCAPTCHA Token API (v2 &amp; v3)

[](#-recaptcha-token-api-v2--v3)

The Token-based API solves reCAPTCHA challenges by returning a token you inject directly into the page form, rather than clicking images. Given a site URL and site key, DBC solves the challenge on its side and returns a token valid for one submission.

- **Token Image API**: Provided a site URL and site key, the API returns a token that you use to submit the form on the page with the reCAPTCHA challenge.

---

### ❓ reCAPTCHA v2 API FAQ

[](#-recaptcha-v2-api-faq)

**What's the Token Image API URL?**To use the Token Image API you will have to send a HTTP POST Request to

**What are the POST parameters for the Token image API?**

- **`username`**: Your DBC account username
- **`password`**: Your DBC account password
- **`type`=4**: Type 4 specifies this is the reCAPTCHA v2 Token API
- **`token_params`=json(payload)**: the data to access the recaptcha challenge json payload structure:
    - **`proxy`**: your proxy url and credentials (if any). Examples:

        -
        -
    - **`proxytype`**: your proxy connection protocol. For supported proxy types refer to Which proxy types are supported?. Example:

        - HTTP
    - **`googlekey`**: the google recaptcha site key of the website with the recaptcha. For more details about the site key refer to What is a recaptcha site key?. Example:

        - 6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx\_mJ-
    - **`pageurl`**: the url of the page with the recaptcha challenges. This url has to include the path in which the recaptcha is loaded. Example: if the recaptcha you want to solve is in , pageurl has to be  and not .
    - **`data-s`**: This parameter is only required for solve the google search tokens, the ones visible, while google search trigger the robot protection. Use the data-s value inside the google search response html. For regulars tokens don't use this parameter.

The **`proxy`** parameter is optional, but we strongly recommend to use one to prevent token rejection by the provided page due to inconsistencies between the IP that solved the captcha (ours if no proxy is provided) and the IP that submitted the token for verification (yours). **Note**: If **`proxy`** is provided, **`proxytype`** is a required parameter.

Full example of **`token_params`**:

```
{
  "proxy": "http://127.0.0.1:3128",
  "proxytype": "HTTP",
  "googlekey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
  "pageurl": "http://test.com/path_with_recaptcha"
}
```

Example of **`token_params`** for google search captchas:

```
{
  "googlekey": "6Le-wvkSA...",
  "pageurl": "...",
  "data-s": "IUdfh4rh0sd..."
}
```

**What's the response from the Token image API?**The token image API response has the same structure as regular captchas' response. Refer to Polling for uploaded CAPTCHA status for details about the response. The token will come in the text key of the response. It's valid for one use and has a 2 minute lifespan. It will be a string like the following:

```
"03AOPBWq_RPO2vLzyk0h8gH0cA2X4v3tpYCPZR6Y4yxKy1s3Eo7CHZRQntxrdsaD2H0e6S3547xi1FlqJB4rob46J0-wfZMj6YpyVa0WGCfpWzBWcLn7tO_EYsvEC_3kfLNINWa5LnKrnJTDXTOz-JuCKvEXx0EQqzb0OU4z2np4uyu79lc_NdvL0IRFc3Cslu6UFV04CIfqXJBWCE5MY0Ag918r14b43ZdpwHSaVVrUqzCQMCybcGq0yxLQf9eSexFiAWmcWLI5nVNA81meTXhQlyCn5bbbI2IMSEErDqceZjf1mX3M67BhIb4"

```

---

### 🔎 What is reCAPTCHA v3?

[](#-what-is-recaptcha-v3)

This API extends the reCAPTCHA v2 Token API with two additional parameters: `action` and **minimal score (`min_score`)**. reCAPTCHA v3 returns a score from each user, that evaluate if user is a bot or human. Then the website uses the score value that could range from 0 to 1 to decide if will accept or not the requests. Lower scores near to 0 are identified as bot. The `action` parameter at reCAPTCHA v3 is an additional data used to separate different captcha validations like for example **login**, **register**, **sales**, **etc**.

---

### ❓ reCAPTCHA v3 API FAQ

[](#-recaptcha-v3-api-faq)

**What is `action` in reCAPTCHA v3?**Is a new parameter that allows processing user actions on the website differently. To find this we need to inspect the javascript code of the website looking for call of grecaptcha.execute function. Example:

```
grecaptcha.execute('6Lc2fhwTAAAAAGatXTzFYfvlQMI2T7B6ji8UVV_f', {action: something})
```

Sometimes it's really hard to find it and we need to look through all javascript files. We may also try to find the value of action parameter inside \_\_\_grecaptcha\_cfg configuration object. Also we can call grecaptcha.execute and inspect javascript code. The API will use "verify" default value it if we won't provide action in our request.

**What is `min-score` in reCAPTCHA v3 API?**The minimal score needed for the captcha resolution. We recommend using the 0.3 min-score value, scores highers than 0.3 are hard to get.

**What are the POST parameters for the reCAPTCHA v3 API?**

- **`username`**: Your DBC account username
- **`password`**: Your DBC account password
- **`type`=5**: Type 5 specifies this is reCAPTCHA v3 API
- **`token_params`**=json(payload): the data to access the recaptcha challenge json payload structure:
    - **`proxy`**: your proxy url and credentials (if any). Examples:

        -
        -
    - **`proxytype`**: your proxy connection protocol. For supported proxy types refer to Which proxy types are supported?. Example:

        - HTTP
    - **`googlekey`**: the google recaptcha site key of the website with the recaptcha. For more details about the site key refer to What is a recaptcha site key?. Example:

        - 6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx\_mJ-
    - **`pageurl`**: the url of the page with the recaptcha challenges. This url has to include the path in which the recaptcha is loaded. Example: if the recaptcha you want to solve is in , pageurl has to be  and not .
    - **`action`**: The action name.
    - **`min_score`**: The minimal score, usually 0.3

The **`proxy`** parameter is optional, but we strongly recommend to use one to prevent rejection by the provided page due to inconsistencies between the IP that solved the captcha (ours if no proxy is provided) and the IP that submitted the solution for verification (yours). **Note**: If **`proxy`** is provided, **`proxytype`** is a required parameter.

Full example of **`token_params`**:

```
{
  "proxy": "http://127.0.0.1:3128",
  "proxytype": "HTTP",
  "googlekey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
  "pageurl": "http://test.com/path_with_recaptcha",
  "action": "example/action",
  "min_score": 0.3
}
```

**What's the response from reCAPTCHA v3 API?**The response has the same structure as regular captcha. Refer to [Polling for uploaded CAPTCHA status](https://deathbycaptcha.com/api#polling-captcha) for details about the response. The solution will come in the **text** key of the response. It's valid for one use and has a 1 minute lifespan.

---

### 🛡️ Amazon WAF API (Type 16)

[](#️-amazon-waf-api-type-16)

Amazon WAF Captcha (also referred to as AWS WAF Captcha) is part of the Intelligent Threat Mitigation system within Amazon AWS. It presents image-alignment challenges that DBC solves by returning a token you set as the `aws-waf-token` cookie on the target page.

- **Official documentation:** [deathbycaptcha.com/api/amazonwaf](https://deathbycaptcha.com/api/amazonwaf)
- **PHP sample:** [examples/example.Amazon\_Waf.php](https://github.com/deathbycaptcha/deathbycaptcha-api-client-php/blob/master/examples/example.Amazon_Waf.php)

**API URL:** Send a HTTP POST request to `http://api.dbcapi.me/api/captcha`

**POST parameters:**

- **`username`**: Your DBC account username
- **`password`**: Your DBC account password
- **`type`=16**: Type 16 specifies this is the Amazon WAF API
- **`waf_params`=json(payload)**: The data needed to access the Amazon WAF challenge

`waf_params` payload fields:

ParameterRequiredDescription`proxy`Optional\*Proxy URL with credentials. E.g. `http://user:password@127.0.0.1:3128``proxytype`Required if proxy setProxy protocol. Currently only `HTTP` is supported.`sitekey`RequiredAmazon WAF site key found in the page's captcha script (value of the `key` parameter)`pageurl`RequiredFull URL of the page showing the Amazon WAF challenge (must include the path)`iv`RequiredValue of the `iv` parameter found in the captcha script on the page`context`RequiredValue of the `context` parameter found in the captcha script on the page`challengejs`OptionalURL of the `challenge.js` script referenced on the page`captchajs`OptionalURL of the `captcha.js` script referenced on the page> The `proxy` parameter is optional but strongly recommended — using a proxy prevents token rejection caused by IP inconsistencies between the solving machine (DBC) and the submitting machine (yours). **📌 Note:** If `proxy` is provided, `proxytype` is required.

Full example of `waf_params`:

```
{
  "proxy": "http://user:password@127.0.0.1:1234",
  "proxytype": "HTTP",
  "sitekey": "AQIDAHjcYu/GjX+QlghicBgQ/7bFaQZ+m5FKCMDnO+vTbNg96AHDh0IR5vgzHNceHYqZR+GO...",
  "pageurl": "https://efw47fpad9.execute-api.us-east-1.amazonaws.com/latest",
  "iv": "CgAFRjIw2vAAABSM",
  "context": "zPT0jOl1rQlUNaldX6LUpn4D6Tl9bJ8VUQ/NrWFxPii..."
}
```

With optional `challengejs` and `captchajs`:

```
{
  "proxy": "http://user:password@127.0.0.1:1234",
  "proxytype": "HTTP",
  "sitekey": "AQIDAHjcYu/GjX+QlghicBgQ/7bFaQZ+m5FKCMDnO+vTbNg96AHDh0IR5vgzHNceHYqZR+GO...",
  "pageurl": "https://efw47fpad9.execute-api.us-east-1.amazonaws.com/latest",
  "iv": "CgAFRjIw2vAAABSM",
  "context": "zPT0jOl1rQlUNaldX6LUpn4D6Tl9bJ8VUQ/NrWFxPii...",
  "challengejs": "https://41bcdd4fb3cb.610cd090.us-east-1.token.awswaf.com/41bcdd4fb3cb/0d21de737ccb/cd77baa6c832/challenge.js",
  "captchajs": "https://41bcdd4fb3cb.610cd090.us-east-1.captcha.awswaf.com/41bcdd4fb3cb/0d21de737ccb/cd77baa6c832/captcha.js"
}
```

**Response:** The API returns a token string valid for one use with a 1-minute lifespan. Once received, set it as the `aws-waf-token` cookie on the target page before submitting the form:

```
c3b50e60-d76c-4d13-ae25-159ec7ec3121:EQoAj4x6fnENAAAA:YIvITdQewAaLmaLXo4r6Es783keXM2ahoP...

```

---

### 🌐 Cloudflare Turnstile API (Type 12)

[](#-cloudflare-turnstile-api-type-12)

Cloudflare Turnstile is a CAPTCHA alternative that protects pages without requiring user interaction in most cases. DBC solves it by returning a token you inject into the target form or pass to the page's callback.

- **Official documentation:** [deathbycaptcha.com/api/turnstile](https://deathbycaptcha.com/api/turnstile)
- **PHP sample:** [examples/example.Turnstile.php](https://github.com/deathbycaptcha/deathbycaptcha-api-client-php/blob/master/examples/example.Turnstile.php)

**API URL:** Send a HTTP POST request to `http://api.dbcapi.me/api/captcha`

POST ParameterDescription`username`Your DBC account username`password`Your DBC account password`type``12` — specifies this is a Turnstile API request`turnstile_params`JSON-encoded payload (see fields below)**`turnstile_params` payload fields:**

FieldRequiredDescription`proxy`OptionalProxy URL with optional credentials. E.g. `http://user:password@127.0.0.1:3128``proxytype`Required if `proxy` setProxy connection protocol. Currently only `HTTP` is supported.`sitekey`RequiredThe Turnstile site key found in `data-sitekey` attribute, the captcha iframe URL, or the `turnstile.render` call. E.g. `0x4AAAAAAAGlwMzq_9z6S9Mh``pageurl`RequiredFull URL of the page hosting the Turnstile challenge, including path. E.g. `https://testsite.com/xxx-test``action`OptionalValue of the `data-action` attribute or the `action` option passed to `turnstile.render`.> **📌 Note:** The `proxy` parameter is optional but strongly recommended to avoid rejection due to IP inconsistency between the solver and the submitter. If `proxy` is provided, `proxytype` becomes required.

**Example `turnstile_params` (basic):**

```
{
    "proxy": "http://user:password@127.0.0.1:1234",
    "proxytype": "HTTP",
    "sitekey": "0x4AAAAAAAGlwMzq_9z6S9Mh",
    "pageurl": "https://testsite.com/xxx-test"
}
```

**Example `turnstile_params` with optional `action`:**

```
{
    "proxy": "http://user:password@127.0.0.1:1234",
    "proxytype": "HTTP",
    "sitekey": "0x4AAAAAAAGlwMzq_9z6S9Mh",
    "pageurl": "https://testsite.com/xxx-test",
    "action": "login"
}
```

**Response:** The API returns a token string valid for one use with a 2-minute lifespan. Submit it via the `input[name="cf-turnstile-response"]` field (or `input[name="g-recaptcha-response"]` when reCAPTCHA compatibility mode is enabled), or pass it to the callback defined in `turnstile.render` / `data-callback`:

```
0.Ja5ditqqMhsYE6r9okpFeZVg6ixDXZcbSTzxypXJkAeN-D-VxmNaEBR_XfsPGk-nxhJFUwMERSIXk6npwAifIYfKuP5AZHeLgCAm0W6CAyJlc9WvO_t7pGYnR_wwbyUyroooPkOI9mfHeeXb1urRmsTF_kP5pU5kQ05OVx3EyuXK3nl0fd4y1u7SyYThi...

```

---

⚙️ Continuous Integration
-------------------------

[](#️-continuous-integration)

This project is configured for automated testing on multiple platforms:

### GitHub Actions

[](#github-actions)

- **Tested PHP Versions**: 7.4 (LTS), 8.1 (LTS), 8.3 (latest)
- **Coverage**: Code coverage reports generated in each workflow run
- **Caching**: Composer dependencies cached for faster builds
- **Configuration**: See [GITHUB\_ACTIONS.md](GITHUB_ACTIONS.md) for details

### GitLab CI/CD

[](#gitlab-cicd)

- **Tested PHP Versions**: 7.4 (LTS), 8.1 (LTS), 8.3 (latest)
- **Coverage**: Code coverage reports with Xdebug
- **Static Analysis**: PHPStan for code quality
- **Configuration**: See [GITLAB\_CI.md](GITLAB_CI.md) for details

Both CI systems run the full test suite (74 tests, 158 assertions) on every push and pull request, ensuring compatibility across PHP versions 7.4+.

---

### Test Status by PHP Version

[](#test-status-by-php-version)

PHP VersionStatus7.4 LTS[![PHP 7.4](https://camo.githubusercontent.com/aeae0f698009b23f5cc8dea861159d8e0c831e6523aed6379394591bbbd3e873/68747470733a2f2f696d672e736869656c64732e696f2f656e64706f696e743f75726c3d68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f64656174686279636170746368612f64656174686279636170746368612d6170692d636c69656e742d7068702f6d61737465722f2e6261646765732f70687037342f62616467652e6a736f6e)](https://github.com/deathbycaptcha/deathbycaptcha-api-client-php/actions/workflows/tests.yml)8.1 LTS[![PHP 8.1](https://camo.githubusercontent.com/8279ea8bfd5ef8df7380cf19b2e182f1d3fcd4344ebd79d21959ce59bfb6a47d/68747470733a2f2f696d672e736869656c64732e696f2f656e64706f696e743f75726c3d68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f64656174686279636170746368612f64656174686279636170746368612d6170692d636c69656e742d7068702f6d61737465722f2e6261646765732f70687038312f62616467652e6a736f6e)](https://github.com/deathbycaptcha/deathbycaptcha-api-client-php/actions/workflows/tests.yml)8.3[![PHP 8.3](https://camo.githubusercontent.com/f23d511d75d58c5bc45c4cf955b46feff627d329820a961587658aaa0441a697/68747470733a2f2f696d672e736869656c64732e696f2f656e64706f696e743f75726c3d68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f64656174686279636170746368612f64656174686279636170746368612d6170692d636c69656e742d7068702f6d61737465722f2e6261646765732f70687038332f62616467652e6a736f6e)](https://github.com/deathbycaptcha/deathbycaptcha-api-client-php/actions/workflows/tests.yml)### Code Quality

[](#code-quality)

CheckStatusIntegration Tests[![Integration](https://camo.githubusercontent.com/6c49e1d3907e3b1ea426bd82a2089da95c7a5a888bd76972718fb809ee706d22/68747470733a2f2f696d672e736869656c64732e696f2f656e64706f696e743f75726c3d68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f64656174686279636170746368612f64656174686279636170746368612d6170692d636c69656e742d7068702f6d61737465722f2e6261646765732f696e746567726174696f6e2f62616467652e6a736f6e)](https://github.com/deathbycaptcha/deathbycaptcha-api-client-php/actions/workflows/tests.yml)PHP Linting[![Lint](https://camo.githubusercontent.com/9150ff54043e3ba6341b15a4d3a4ebeb714626c49e05d8644eba28721a0973d0/68747470733a2f2f696d672e736869656c64732e696f2f656e64706f696e743f75726c3d68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f64656174686279636170746368612f64656174686279636170746368612d6170692d636c69656e742d7068702f6d61737465722f2e6261646765732f6c696e742f62616467652e6a736f6e)](https://github.com/deathbycaptcha/deathbycaptcha-api-client-php/actions/workflows/tests.yml)PHPStan Analysis[![PHPStan](https://camo.githubusercontent.com/8314ac6fc04cea0641e0ab0f41f1eefd7cc17f9af9898d1251f359e6419a1b5a/68747470733a2f2f696d672e736869656c64732e696f2f656e64706f696e743f75726c3d68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f64656174686279636170746368612f64656174686279636170746368612d6170692d636c69656e742d7068702f6d61737465722f2e6261646765732f7068707374616e2f62616467652e6a736f6e)](https://github.com/deathbycaptcha/deathbycaptcha-api-client-php/actions/workflows/tests.yml)⚖️ Responsible Use
------------------

[](#️-responsible-use)

See [Responsible Use Agreement](RESPONSIBLE_USE.md).

###  Health Score

36

—

LowBetter than 79% of packages

Maintenance80

Actively maintained with recent releases

Popularity14

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity34

Early-stage or recently created project

 Bus Factor1

Top contributor holds 50% 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

Unknown

Total

1

Last Release

119d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/cd324b51cc4a670b6c779da20beb943e0433c0e38b14aa53cf5fc893faceae9d?d=identicon)[deathbycaptcha](/maintainers/deathbycaptcha)

---

Top Contributors

[![deathbycaptcha](https://avatars.githubusercontent.com/u/82105378?v=4)](https://github.com/deathbycaptcha "deathbycaptcha (7 commits)")[![deathbycaptcha-dev](https://avatars.githubusercontent.com/u/82105378?v=4)](https://github.com/deathbycaptcha-dev "deathbycaptcha-dev (7 commits)")

---

Tags

amazon-wafapiautomationbypass-captcha-servicecaptcha-bypass-apicaptcha-solvercaptcha-solver-for-botscaptcha-solver-phpcloudflare-turnstiledatadomedeathbycaptchageetest-solvergoogle-recaptcha-solverphprecaptcha-enterpriserecaptcha-v2-bypassrecaptcha-v2-solverrecaptcha-v3-bypassrecaptcha-v3-solverturnstile-solverrecaptchacaptchaapi clientsolverturnstilefuncaptchageetestcaptcha solverhcaptchadeathbycaptcha

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/deathbycaptcha-deathbycaptcha-api-php/health.svg)

```
[![Health](https://phpackages.com/badges/deathbycaptcha-deathbycaptcha-api-php/health.svg)](https://phpackages.com/packages/deathbycaptcha-deathbycaptcha-api-php)
```

###  Alternatives

[2captcha/2captcha

PHP package for easy integration with 2captcha API

88492.7k4](/packages/2captcha-2captcha)[solvercaptcha/solvecaptcha-php

PHP package for easy integration with solvecaptcha API.

132.6k](/packages/solvercaptcha-solvecaptcha-php)[recaptcha/php5

A properly coded PHP 5 reCaptcha class that will allow you to interact with Google's reCaptcha API.

48711.8k4](/packages/recaptcha-php5)[aryehraber/statamic-captcha

Protect your Statamic forms using a Captcha service

17211.2k](/packages/aryehraber-statamic-captcha)

PHPackages © 2026

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