Death By Captcha - API
Death By Captcha API (Condensed)
OVERVIEW
The Death By Captcha API allows you to bypass the most popular captchas in a simple and effective manner. We retrieve most of the captchas with just the URL and Sitekey, there are some other captchas which require an image(s) to be uploaded. Featuring support for Text Captcha, reCaptcha, Funcaptcha and many other.
API KEY?
We make it easier, you can use your Death By Captcha username and password, no need for an API Key. 2FA can be enabled and then configured to be used instead of your username and password for higher security levels.
OUR SERVERS
http://api.deathbycaptcha.com/
http://api.dbcapi.me/
If you need to allow our IP addresses in your firewall you can use the IP address lookup tool of your preference to locate the current IPs of our servers.
ENDPOINTS
GET
Used to check Death By Captcha server status, accuracy rate, average solving time:
http://api.dbcapi.me/api/status
GET
Used to check balance, account status:
http://api.dbcapi.me/api/user?username={yourUsername}&password={yourPassword}
Balance is displayed in US¢ (cents).
POST
Used to upload captchas:
http://api.dbcapi.me/api/captcha
GET
Used to check captcha status and text of the solved captcha:
http://api.dbcapi.me/api/captcha/{captcha_id}
POST
Report a captcha that has been incorrectly solved:
http://api.dbcapi.me/api/captcha/{captcha_id}/report
COMMON API EXCEPTIONS
500: Insufficient balance, incorrect credentials.
Could as well be caused due to IP issues, please contact support if you have enough balance and the right credentials are being used.
503: Captcha rejected due to server overload.
This is a temporary server side issue, at that moment our servers are running at top capacity due to high demand levels, you can still solve captchas however some of them may take longer to be resolved or get rejected (in which case you are not billed for them).
255: Not logged in. Make sure the right username and password are being used.
400, 413: Captcha was rejected by the service, check image is valid.
Connection lost/not established: Our SOCKET client needs port range 8123–8130. TCP outgoing traffic should be allowed for those ports (only for SOCKET, not HTTP API).
RATES
Type | Rate (cost per each 1,000 captchas solved) |
---|---|
Text | Math Captcha |
$1.39 |
ReCaptcha v2 via Token |
$2.89 |
ReCaptcha v2 via Image Groups | Coordinates |
$3.99 |
ReCaptcha v3 |
$2.89 |
Funcaptcha |
$3.99 |
hCaptcha |
$1.79 |
Geetest |
$2.89 |
Text | Math Captcha
OVERVIEW
Text captcha is usually represented as text which is blurry or distorted, on the other hand Math Captcha contains a simple arithmetic problem that needs to be solved, we can solve both with the same API, you need to upload the captcha image to our client and then we produce the resolution text and return it to you, that response should be submitted to the target website via DOM manipulation or via form submission with a POST request to complete the automation process.
ENDPOINT
POST
Used to upload captchas:
http://api.dbcapi.me/api/captcha
PARAMETERS
We need your Death By Captcha credentials/Authentication token and the image file. All parameters are required. We expect an image in any of the following file formats: JPG, PNG, GIF and BMP, TXT (base64 encoded image).
Required Parameters:
username (String)
password (String)
captchafile (File)
If you are using 2FA you can use "authtoken" instead of "username" and "password" parameters.
Note: Base64 encoded images should include the prefix "base64:" and then the encoded string of text (the string could be shorter or longer depending on the image size, your images should be smaller than 180 KB).
Format:
base64:4AAQSkZJ…PyoA//2Q==
HERE you can download a model of an encoded image.
SOLVING TEXT CAPTCHA EXAMPLE
SOLVING CAPTCHAS WITH CMD
Commands:
Check balance:
deathbycaptcha.exe -l '{username}' -p '{password}'
Solve captcha:
deathbycaptcha.exe -l '{username}' -p '{password}' -c '{captcha_img_name}'
NOTE: You can append '-t {timeout} -d '{directory}'' to the captcha upload command if preferred.
Report captcha:
deathbycaptcha.exe -l '{username}' -p '{password}' -n '{captcha_id}'
If using 2FA use -a '{authtoken}' instead of -l '{username}' -p '{password}' .Ex:
deathbycaptcha.exe -a '{authtoken}' -c '{captcha_img_name}'
ReCaptcha v2 (New reCaptcha)
OVERVIEW
ReCaptcha v2 also known as "I'm not a robot" captchas can be bypassed through our service, we can retrieve it with the URL of the webpage where the reCaptcha is located at and the Sitekey. You can use a proxy along with your API request (you can check our recommended proxy providers) to lower the changes of captcha rejections due to IP conflicts. Using a proxy is optional however. ReCaptchas are solved in 30-120 seconds, by default if the resolution takes longer than that captchas just time out and a question mark is returned (?) indicating an empty response.
There's an invisible version for reCaptcha v2 as well (it's identical to reCaptcha v3, check Image 1.0) and it is also solved using the method explained bellow.
Image 1.0
ENDPOINT
POST
Used to upload captchas:
http://api.dbcapi.me/api/captcha
PARAMETERS
If you are using 2FA you can use "authtoken" instead of "username" and "password" parameters.
Parameter | Data type | Value | Example sub-keys and sub-values | Use |
---|---|---|---|---|
username | String |
{DBC username} |
Required | |
password | String |
{DBC password} |
Required | |
type | Integer | 4 | Required | |
token_params |
File | JSON |
{payload} |
{ “proxy”: “http://username:password@proxy_server”, “proxytype”: “http”, “googlekey”: “6LeEnRsTAAAAAPHVIS06iy22BKCiUsqAyC7IrTVi“, “pageurl”: “http://web-page-with-recaptcha.com/uri” } |
Required |
Finding the Sitekey: You can open the Developer Tools of your favorite browser and on the "Elements" or "Inspector" tab search for "data-sitekey". If it can't be found then search for "iframe" (make sure that's the iframe tag that corresponds to the reCaptcha) and you will find it appended to the URL.
NOTES:
Using a proxy is optional, if you opt by not using one you can use empty strings as value for 'proxy' and 'proxytype' parameters.
If the reCaptchas are attempting to solve are the ones that appear while you are browsing the web with a message that reads "Unusual traffic from your computer network" and they are not getting solved with the method above then that's because they're subject to the new Google update and an additional (data-s) parameter should be added to your payload.
Finding data-s:
Then your JSON should look as follows:
RESOLVING RECAPTCHA V2
The process can be broken down in two modules:
a) Receiving a token for the target website reCaptcha
You should expect a 484 character long token from us after successful solution.
b) Submitting the token to the target website.
Can either be done by:
a) Manipulating the DOM elements (JavaScript, WebDriver).
b) POST form submission.
c) Invoking the 'callback' function. In those scenarios where the reCaptcha doesn't have a Submit button or it's not contained in a HTML form.
We will illustrate all three methods bellow.
PYTHON + SELENIUM CODE EXAMPLE
(DOM Manipulation)(Browser Automation)
PYTHON + SELENIUM (Download our Python client, extract and replace 'new_recaptcha_token_image.py' with this content):
Expected output (wait to see output after balance is retrieved):
DBC PHP CLIENT + POST FORM SUBMISSION CODE EXAMPLE:
PHP client +POST form submission (Download our PHP client, extract and replace 'example.newrecaptcha.token.php' content with this content):
Expected output (PHP & POST):
FINDING CALLBACK FUNCTION NAME
On the 'Elements' tab of your Development Tools press CTRL+F and search for 'data-callback'.
If there is not a HTML property with that name then go to the 'Console' tab, we need to make use of the variable 'callback' to find the function name. To call that variable we need to insert its path. So, the structure is as follows '___grecaptcha_cfg.clients[0].c.l.J.callback'. The path may change from site to site, so, we will show you how to find yours.
Once in the 'Console' tab paste: ___grecaptcha_cfg.clients[0]
'___grecaptcha_cfg' Is an array of objects for that reason you will need to use ___grecaptcha_cfg.clients[n] ('n' being any number (1, 2...)) traversing the array, if there are no elements in the first position, then trying with second position and so on. Once an element is found then we need the path of the object. The object path is usually 3 characters long, can be shorter.
We need to find the path of the object that contains the Sitekey. To find the object path we need expand each element and sub-element until the Sitekey is found.
In this case due to that each sub-path is represented by 'A' the complete path is: '___grecaptcha_cfg.clients[0].A.A.callback'. Insert it in console press 'Enter' and the name of the callback will display. On this example the name is 'onSubmit'.
JAVASCRIPT (FETCH API) CLIENT + CALLBACK
Required dependencies: json-object, node-fetch, form-data.
First let's run the client code above... Let's confirm the name of the callback function on the webpage, then copy the token produced by our API and insert it to the 'g-recaptcha-response' element. Finally invoke your callback function.
ReCaptcha v3
OVERVIEW
The invisible captcha or ReCaptcha v3 adds more complexity to the captcha bypass process, nothing to worry about however, we got you covered. If you've used our reCaptcha v2 API you are half way already, only two additional parameters are needed to complete their resolution with our service. You need to find the 'action' parameter on the target website and use 0.3 as value for the final parameter 'min_score' which is the score in which we can most optimally resolve them.
ENDPOINT
POST
Used to upload captchas:
http://api.dbcapi.me/api/captcha
PARAMETERS
If you are using 2FA you can use "authtoken" instead of "username" and "password" parameters.
Parameter | Data type | Value | Example sub-keys and sub-values | Use |
---|---|---|---|---|
username | String |
{DBC username} |
Required | |
password | String |
{DBC password} |
Required | |
type | Integer | 5 | Required | |
token_params |
File | JSON |
{payload} |
{ “proxy”: “http://username:password@proxy_server”, “proxytype”: “http”, “googlekey”: “6LeEnRsTAAAAAPHVIS06iy22BKCiUsqAyC7IrTVi“, “pageurl”: “http://web-page-with-recaptcha.com/uri”, “action”: “verify”, “min_score”: 0.3 } |
Required |
Finding the Sitekey: You can open the Developer Tools of your favorite browser and on the "Elements" or "Inspector" tab search for "data-sitekey". If it can't be found then search for "iframe" (make sure that's the iframe tag that corresponds to the reCaptcha) and you will find it appended to the URL.
Finding the 'action': It's very important finding the exact name of the 'action', an incorrect name could lead to empty responses from our server.
It's not always easy finding the 'action' name. However you can use your browser Developer Tools and on the elements of the page do a search (CTRL+F) for the method call "grecaptcha.execute" and you will find 'action' and its name inside of brackets.
NOTE ('action' parameter):
If you can't find the 'action' parameter on the target website you can use "verify" as the value in the payload which is the default value, in some cases "verify" will work as the action name.
NOTES:
Using a proxy is optional, if you opt by not using one you can use empty strings as value for 'proxy' and 'proxytype' parameters.
If the reCaptchas are attempting to solve are the ones that appear while you are browsing the web with a message that reads "Unusual traffic from your computer network" and they are not getting solved with the method above then that's because they're subject to the new Google update and an additional (data-s) parameter should be added to your payload.
Finding data-s:
Then your JSON should look as follows:
RESOLVING RECAPTCHA V3
The process can be broken down in two modules:
a) Receiving a token for the target website reCaptcha
You should expect a 484 character long token from us after successful solution.
b) Submitting the token to the target website.
Can either be done by:
a) Manipulating the DOM elements (JavaScript, WebDriver).
b) POST form submission.
c) Invoking the 'callback' function. In those scenarios where the reCaptcha doesn't have a Submit button or it's not contained in a HTML form.
We will illustrate all three methods bellow.
RECAPTCHA V3 SOLUTION EXAMPLES
Please check token submission methods for v2, the same methods can be used in most cases.
CURL RECAPTCHA V3
SUBMITTING TOKEN
You need to insert the token into the element 'g-recaptcha-response' or 'g-recaptcha-response-100000' via POST request.
RECAPTCHA V3 PHP + POST
Download our PHP client and open the class "example.newrecaptcha.token.php", insert type =5, add 'action' and 'min_score' parameters or just replace the code with the code bellow and customize accordingly.
Output:
New ReCaptcha/no Captcha
OVERVIEW
Suitable for those captchas which require manual selection of images. Can be reCaptcha or reCaptcha alike. We provide an API that can solve them with coordinates or the number corresponding to the positions on the grid which contain the image to select.
ENDPOINT
POST
Used to upload captchas:
http://api.dbcapi.me/api/captcha
PARAMETERS IMAGE GROUPS
If you are using 2FA you can use "authtoken" instead of "username" and "password" parameters.
Parameter | Data Type | Value | Use |
---|---|---|---|
username | String | {dbc username} | Required |
password | String | {dbc password} | Required |
type | Integer | 3 | Required |
captchafile | File | {captcha file} | Required |
banner | File | {banner image} | Required |
banner_text | String | {banner text} | Required |
grid | String | {W x ht. (Ex.3×3)} | Optional |
SOLVING VIA IMAGE GROUPS
IMAGE GROUP EXPECTED RESPONSE
[3, 4, 7]
PARAMETERS COORDINATES
If you are using 2FA you can use "authtoken" instead of "username" and "password" parameters.
Parameter | Data Type | Value | Use |
---|---|---|---|
username | String | {dbc username} | Required |
password | String | {dbc password} | Required |
type | Integer | 2 | Required |
captchafile | File | {captcha file} | Required |
SOLVING VIA COORDINATES
COORDINATES EXPECTED RESPONSE
[[23.21, 82.11]]
Funcaptcha
OVERVIEW
Most Funcaptchas are image rotation based. Images need to be aligned in the right position before the captcha can be marked as solved. We produce a token or key which satisfies the challenge and will allow you to proceed with your SEO / web scraping / automation task.
ENDPOINT
POST
Used to upload captchas:
http://api.dbcapi.me/api/captcha
PARAMETERS
If you are using 2FA you can use "authtoken" instead of "username" and "password" parameters.
Parameter | Data type | Value | Example sub-keys and sub-values | Use |
---|---|---|---|---|
username | String |
{DBC username} |
Required | |
password | String |
{DBC password} |
Required | |
type | Integer | 6 | Required | |
funcaptcha_params |
File | JSON |
{payload} |
{ “proxy”: “http://username:password@proxy_server”, “proxytype”: “http”, “publickey”: “9F35E152-C93C-EACC-A41D-CF8ED317B796”, “pageurl”: “http://web-page-with-funcaptcha.com/uri” } |
Required |
NOTE: Using a proxy is optional, if you opt by not using one you can use empty strings as value for 'proxy' and 'proxytype' parameters.
Finding 'publickey': On your Development Tools go to 'Elements' tab and press CTRL+F, search for 'pkey', the public key is attached to a URL.
RESOLVING FUNCAPTCHA
FUNCAPTCHA cURL
EXPECTED RESPONSE
hCaptcha
OVERVIEW
Self-proclaimed a replacement for reCaptcha due to added benefits such as privacy is indeed having important websites switch from using reCaptcha to hCaptcha, the truth is it's rapidly increasing in popularity. Our API is hCaptcha ready, in fact is our newest release.
ENDPOINT
POST
Used to upload captchas:
http://api.dbcapi.me/api/captcha
PARAMETERS
If you are using 2FA you can use "authtoken" instead of "username" and "password" parameters.
Parameter | Data type | Value | Example sub-keys and sub-values | Use |
---|---|---|---|---|
username | String |
{DBC username} |
Required | |
password | String |
{DBC password} |
Required | |
type | Integer | 7 | Required | |
hcaptcha_params |
File | JSON |
{payload} |
{ “proxy”: “http://username:password@proxy_server”, “proxytype”: “http”, “sitekey”: “eaanfc67-ea9f-4844-9740-9eeff248c7dc“, “pageurl”: “http://web-page-with-hcaptcha.com/uri” } |
Required |
NOTE: Using a proxy is optional, if you opt by not using one you can use empty strings as value for 'proxy' and 'proxytype' parameters.
Finding 'sitekey': On your Development Tools go to 'Elements' tab and press CTRL+F, search for 'sitekey', you can easily find the property.
RESOLVING hCAPTCHA
hCAPTCHA cURL
EXPECTED RESPONSE
You should expect a token up to 3,342 characters long.