API Document
Enter your email to receive support for registration and using the service.

Big Captcha is a human-powered image and CAPTCHA recognition service. Big Captcha’s main purpose is solving your CAPTCHAs in a quick and accurate way by human employees, but the service is not limited only to CAPTCHA solving. You can convert to text any image that a human can recognize.

Introduction

We provide an API that allows you to automate the process and integrate your software with our service.

There are few simple steps to solve your captcha or recognize the image:

  • 1

    Send your image or captcha to our server.

  • 2
    Get the ID of your task.
  • 3
    Start a cycle that checks if your task is completed.
  • 4

    Get the result.

Our amazing team is always hard at work

Solving Captchas

Our API is based on HTTP requests and supports both HTTP and HTTPS protocols.

API endpoints:

  • https://api.bigcaptcha.com/in.php is used to submit a captcha
  • https://api.bigcaptcha.com/res.php is used to get the captcha solution

The process of solving captchas with BigCaptcha is really easy and it’s mostly the same for all types of captchas:

  1. Get your API key from your account settings page. Each user is given a unique authentication token, we call it API key. It’s a 32-characters string that looks like:
    1abc234de56fab7c89012d34e56fa7b8
    This key will be used for all your requests to our server.
  2. Submit a HTTP POST request to our API URL: https://api.bigcaptcha.com/in.php with parameters corresponding to the type of your captcha.
    Server will return captcha ID or an error code if something went wrong.
  3. Make a timeout: 20 seconds for reCAPTCHA, 5 seconds for other types of captchas.
  4. Submit a HTTP GET request to our API URL: https://api.bigcaptcha.com/res.php to get the result.
    If captcha is already solved server will return the answer in format corresponding to the type of your captcha.
    By default answers are returned as plain text like: OK|Your answer. But answer can also be returned as JSON {“status”:1,”request”:”TEXT”} if json parameter is used.
    If captcha is not solved yet server will return CAPCHA_NOT_READY result. Repeat your request in 5 seconds.
    If something went wrong server will return an error code.
Normal Captcha

Normal Captcha is an image that contains distored but human-readable text. To solve the captcha user have to type the text from the image.

To solve the captcha with our service you have to submit the image with HTTP POST request to our API URL: https://api.bigcaptcha.com/in.php
Server accepts images in multipart or base64 format.

To solve the captcha with our service you have to submit the image with HTTP POST request to our API URL: https://api.bigcaptcha.com/in.php
Server accepts images in multipart or base64 format.

Multipart sample form

Copy to Clipboard

YOUR_APIKEY is Your API key.

Base64 sample form

Copy to Clipboard

YOUR_APIKEY is Your API key.

You can provide additional parameters with your request to define what kind of captcha you’re sending and to help workers to solve your captcha correctly. You can find the full list of parameters in the table below.

If everything is fine server will return the ID of your captcha as plain text, like: OK|2122988149 or as JSON {“status”:1,”request”:”2122988149″} if json parameter was used.

If something went wrong server will return an error. See Error Handling chapter for the list of errors.

Make a 5 seconds timeout and submit a HTTP GET request to our API URL: https://api.bigcaptcha.com/res.php providing the captcha ID. The list of parameters is in the table below.

If everything is fine and your captcha is solved server will return the answer as plain text, like: OK|TEXT or as JSON {“status”:1,”request”:”TEXT”} if json parameter was used.

Otherwise server will return CAPCHA_NOT_READY that means that your captcha is not solved yet. Just repeat your request in 5 seconds.

If something went wrong server will return an error. See Error Handling chapter for the list of errors.

List of POST request parameters for https://api.bigcaptcha.com/in.php

POST parameter Type Required Description
key String Yes your API key
method String Yes post – defines that you’re sending an image with multipart form
base64 – defines that you’re sending a base64 encoded image
file File Yes* Captcha image file.
* – required if you submit image as a file (method=post)
body String Yes* Base64-encoded captcha image
* – required if you submit image as Base64-encoded string (method=base64)
header_acao Integer
Default: 0
No 0 – disabled
1 – enabled.
If enabled in.php will include Access-Control-Allow-Origin:* header in the response.
Used for cross-domain AJAX requests in web applications.
json Integer
Default: 0
No 0 – server will send the response as plain text
1 – tells the server to send the response as JSON

List of GET request parameters for https://api.bigcaptcha.com/res.php

GET parameter Type Required Description
key String Yes your API key
action String Yes get – get the answer for your captcha
id Integer Yes  ID of captcha returned by in.php.
json Integer
Default: 0
No 0 – server will send the response as plain text
1 – tells the server to send the response as JSON
header_acao Integer
Default: 0
No 0 – disabled
1 – enabled.
If enabled res.php will include Access-Control-Allow-Origin:* header in the response.
Used for cross-domain AJAX requests in web applications.

Request URL example:

Copy to Clipboard
reCaptcha v2

reCAPTCHA V2 also known as I’m not a robot reCAPTCHA is a very popular type of captcha that looks like this:

reCAPTCHA V2

Solving reCAPTCHA V2 with our new method is pretty simple:

  1. Look at the element’s code at the page where you found reCAPTCHA.
  2. Inspect reCAPTCHA V2 widget source code
  3. Find a link that begins with www.google.com/recaptcha/api2/anchor or find data-sitekey parameter.
  4. Copy the value of k parameter of the link (or value of data-sitekey parameter).
  5. Find 'data-sitekey' parameter
  6. Submit a HTTP GET or POST request to our API URL: https://api.bigcaptcha.com/in.php with method set to userrecaptcha and provide the value found on previous step as value for googlekey and full page URL as value for pageurlSending proxies is not obligatory ar the moment but it’s recommended.
    You can find the full list of parameters in the table below.

Request URL example:

Copy to Clipboard
  • If everything is fine server will return the ID of your captcha as plain text, like: OK|2122988149 or as JSON {“status”:1,”request”:”2122988149″} if json parameter was used.
    Otherwise server will return an error code.
  • Make a 15-20 seconds timeout then submit a HTTP GET request to our API URL: https://api.bigcaptcha.com/res.php to get the result.
    The full list of parameters is in the table below.If captcha is already solved server will respond in plain text or JSON and return the answer token that looks like:

    03AHJ_Vuve5Asa4koK3KSMyUkCq0vUFCR5Im4CwB7PzO3dCxIo11i53epEraq-uBO5mVm2XRikL8iKOWr0aG50sCuej9bXx5qcviUGSm4iK4NC_Q88flavWhaTXSh0VxoihBwBjXxwXuJZ-WGN5Sy4dtUl2wbpMqAj8Zwup1vyCaQJWFvRjYGWJ_TQBKTXNB5CCOgncqLetmJ6B6Cos7qoQyaB8ZzBOTGf5KSP6e-K9niYs772f53Oof6aJeSUDNjiKG9gN3FTrdwKwdnAwEYX-F37sI_vLB1Zs8NQo0PObHYy0b0sf7WSLkzzcIgW9GR0FwcCCm1P8lB-50GQHPEBJUHNnhJyDzwRoRAkVzrf7UkV8wKCdTwrrWqiYDgbrzURfHc2ESsp020MicJTasSiXmNRgryt-gf50q5BMkiRH7osm4DoUgsjc_XyQiEmQmxl5sqZP7aKsaE-EM00x59XsPzD3m3YI6SRCFRUevSyumBd7KmXE8VuzIO9lgnnbka4-eZynZa6vbB9cO3QjLH0xSG3-egcplD1uLGh79wC34RF49Ui3eHwua4S9XHpH6YBe7gXzz6_mv-o-fxrOuphwfrtwvvi2FGfpTexWvxhqWICMFTTjFBCEGEgj7_IFWEKirXW2RTZCVF0Gid7EtIsoEeZkPbrcUISGmgtiJkJ_KojuKwImF0G0CsTlxYTOU2sPsd5o1JDt65wGniQR2IZufnPbbK76Yh_KI2DY4cUxMfcb2fAXcFMc9dcpHg6f9wBXhUtFYTu6pi5LhhGuhpkiGcv6vWYNxMrpWJW_pV7q8mPilwkAP-zw5MJxkgijl2wDMpM-UUQ_k37FVtf-ndbQAIPG7S469doZMmb5IZYgvcB4ojqCW3Vz6Q
    

    If captcha is not solved yet server will return CAPCHA_NOT_READY result. Repeat your request in 5 seconds.

    If something went wrong server will return an error code.

  • Locate the element with id g-recaptcha-response and make it visible deleting display:none parameter.Find html element with 'g-recaptcha-response' id

    Please note: sometimes content on the page is generated dynamically and you will not see this element in html source.
    In such cases you have to explore javascript code that generates the content. “Inspect” option in Google Chrome can help in that.

    As an alternative you can just use javascript to set the value of g-recaptcha-response field:

    Copy to Clipboard
    An input field will appear on the page. And you just have to paste the answer token to that field and submit the form.
  • Past received token into the field
  • Congratulations, you’ve passed the recaptcha
  • Success

List of GET/POST request parameters for https://api.bigcaptcha.com/in.php

Parameter Type Required Description
key String Yes your API key
method String Yes userrecaptcha — defines that you’re sending a reCAPTCHA
googlekey String Yes Value of sitekey parameter you found on page
pageurl String Yes Full URL of the page where you see the reCAPTCHA
domain String
Default: google.com
No Domain used to load the captcha: google.com or recaptcha.net
action String
Default: verify
No Value of action parameter you found on page
header_acao String
Default: 0
No 0 — disabled
1 — enabled.
If enabled in.php will include Access-Control-Allow-Origin:*: header in the response.
Used for cross-domain AJAX requests in web applications. Also supported by res.php.
json String
Default: 0
No 0 — server will send the response as plain text
1 — tells the server to send the response as JSON
Column 1 Value 9 Column 2 Value 9 Column 3 Value 9 Column 4 Value 9

List of GET request parameters for https://api.bigcaptcha.com/res.php

GET parameter Type Required Description
key String Yes your API key
action String Yes get — get the asnwer for your captcha
reportgood — – report the asnwer was accepted
reportbad — – report the asnwer was declined
id Integer Yes ID of captcha returned by in.php.
json Integer
Default: 0
No 0 — server will send the response as plain text
1 — tells the server to send the response as JSON
header_acao Integer
Default: 0
No 0 — disabled
1 — enabled.
If enabled res.php will include Access-Control-Allow-Origin:* header in the response.
Used for cross-domain AJAX requests in web applications.

reCaptcha v3

reCAPTCHA V3 is the newest type of captcha from Google. It has no challenge so there is no need for user interaction. Instead it uses a “humanity” rating – score.

reCAPTCHA V3 technically is quite similar to reCAPTCHA V2: customer receives a token from reCAPTCHA API which is then sent inside a POST request to the target website and verified via reCAPTCHA API.

The difference is now reCAPTCHA API returns rating of a user detecting whether he was a real human or a bot. This rating is called score and could be a number from 0.1 to 0.9. This score is passed to the website which then decides what to do with the user request.

Also there is a new parameter action allowing to process user actions on the website differently. After the verification of token reCAPTCHA API returns the name of the action user performed.

Our approach for solving reCAPTCHA V3
We’ve performed many experiments and figured out that if a user got score 0.1 on some website then he is likely to get the same score on other websites.

We are detecting the scores of our workers. Then when we’ve got a request for solving reCAPTCHA V3 with the minimal rating min_score we pass the captcha to the worker with the requested rating or higher. Most of the requests will get the requested rating on targer websites with reCAPTCHA V3.

How to solve reCAPTCHA V3 using 2Captcha:

  1. First you’ve got to be sure the target website is actually using reCAPTCHA V3There should be V3 if:
    • there is no captcha and no images to click on
    • api.js script is loading with the render=sitekey parameter, for example:
      https://www.google.com/recaptcha/api.js?render=6LfZil0UAAAAAAdm1Dpzsw9q0F11-bmervx9g5fE
    • clients array of ___grecaptcha_cfg object is using index 100000: ___grecaptcha_cfg.clients[100000]
  2. To start solving reCAPTCHA V3 using our API first you’ve got to find three parameters:sitekey – this parameter could be obtained from the URI of api.js as a value of render parameter. It could also be found inside URI of iframe with reCAPTCHA, in javascript code of the website where it’s calling grecaptcha.execute function or in ___grecaptcha_cfg configuration object.action – you’ve got to find this inspecting javascript code of the website looking for call of grecaptcha.execute function. Example: grecaptcha.execute(‘6LfZil0UAAAAAAdm1Dpzsw9q0F11-bmervx9g5fE’, {action: do_something}).
    Sometimes it’s really hard to find it and you’ve got to dig through all js-files loaded by website. You may also try to find the value of action parameter inside ___grecaptcha_cfg configuration object but usually it’s undefined. In that case you have to call grecaptcha.execute and inspect javascript code. If you can’t find it try to use the default value “verify” – our API will use it if you don’t provide action in your request.pageurl – full URL of the page where you see the reCAPTCHA V3.Now you need to understand the score you need to solve V3. You can’t predict what score is acceptable for the website you want to solve at. It can only be figured out by trial and error. The lowest score is 0.1 which means “robot”, the highest is 0.9 which means “human”. But most sites uses thresholds from 0.2 to 0.5 because real humans receive a low score oftenly. Our service is able to provide solutions which requires the score of 0.3. Higher score is extreamly rare among workers.
  3. Having all necessary parameters stated above you may send request to our API.
  4. Submit a HTTP GET or POST request to our API URL:
    https://api.bigcaptcha.com/in.php
    with method set to userrecaptcha and version set to v3 along with min_score set to score website requires, sitekey inside googlekey parameter and full page URL as value for pageurl. You have to include action parameter to or else we will use default value verify.List of request parameters below.URL request sample:

    Copy to Clipboard
  5. If everything is fine server will return the ID of your captcha as plain text, like: OK|2122988149 or as JSON {“status”:1,”request”:”2122988149″} if json parameter was used.If something went wrong server will return an error. See Error Handling chapter for the list of errors.
  6. Make a 10-15 seconds timeout and submit a HTTP GET request to our API https://api.bigcaptcha.com/res.php providing the captcha ID. The list of parameters is in the table below.If everything is fine and your captcha is solved server will return the answer as plain text or as JSON. The answer is a token like this:
    Copy to Clipboard

    If the captcha is not solved yet server will return CAPCHA_NOT_READY. Just repeat your request in 5 seconds.

    If something went wrong server will return an error. See Error Handling chapter for the list of errors.

    Sample request:

    Copy to Clipboard
  7. After receiving the token from our API you’ve got to use it properly on the target website. Best way to understant that is to check the requests sent to site when you act as a normal user. Most browsers has developer’s console tool where you should check Network tab.Usually token is sent using POST request. It could be g-recaptcha-response just like reCAPTCHA V2 does or g-recaptcha-response-100000. It could be other parameter too. So you’ve got to inspect the requests and find out how exactly the token supposed to be sent. Then you have to compose your request accordingly.
  8. Now when you have successfully submit the token you may tell us if it worked or not. If not we will refund the money you spent on this token. If it was successfully accepted we will set the worker who solved this captcha as the priority solver for you. Besides we will gather statistics regarding V3 solution which will help us to further investigate this new type of captchas and make our service better.To let us know whether it worked or not please send the request to https://api.bigcaptcha.com/res.php with your API Key in key parameter with ID of the captcha in id parameter and indicating action parameter. Next to mention is reportgood if token was accepted successfully or reportbad if token wasn’t accepted respectfully.

Request examples:

ReportBAD

Copy to Clipboard

ReportGOOD

Copy to Clipboard

Important: complains for captcha types solved with token are not shown on the website. But we proceed with every report and gather the statistics. We will implement this complain display feature in future.

List of GET/POST request parameters for https://api.bigcaptcha.com/in.php

Parameter Type Required Description
key String Yes your API key
method String Yes userrecaptcha — defines that you’re sending a reCAPTCHA
version String Yes v3 — defines that you’re sending a reCAPTCHA V3
enterprise String
Default: 0
No 1 – defines that you’re sending reCAPTCHA Enterpise V3
googlekey String Yes Value of sitekey parameter you found on page
pageurl String Yes Full URL of the page where you see the reCAPTCHA
domain String
Default: google.com
No Domain used to load the captcha: google.com or recaptcha.net
action String
Default: verify
No Value of action parameter you found on page
min_score String
Default: 0.4
No The score needed for resolution. Currently it’s almost impossible to get token with score higher than 0.3
header_acao String
Default: 0
No 0 — disabled
1 — enabled.
If enabled in.php will include Access-Control-Allow-Origin:*: header in the response.
Used for cross-domain AJAX requests in web applications. Also supported by res.php.
pingback String No URL for pingback (callback) response that will be sent when captcha is solved. URL should be registered on the server.
json String
Default: 0
No 0 — server will send the response as plain text
1 — tells the server to send the response as JSON

List of GET request parameters for https://api.bigcaptcha.com/res.php

GET parameter Type Required Description
key String Yes your API key
action String Yes get — get the asnwer for your captcha
reportgood — – report the asnwer was accepted
reportbad — – report the asnwer was declined
id Integer Yes ID of captcha returned by in.php.
json Integer
Default: 0
No 0 — server will send the response as plain text
1 — tells the server to send the response as JSON
header_acao Integer
Default: 0
No 0 — disabled
1 — enabled.
If enabled res.php will include Access-Control-Allow-Origin:* header in the response.
Used for cross-domain AJAX requests in web applications.

hCaptcha

hCaptcha is a quite new type of captcha that is really similar to reCAPTCHA and looks like this:

hCaptcha

To solve hCaptcha you need to extract the value of sitekey parameter from the source code of the page and send a request to our API containin the extracted sitekey and full page URL.

When you received the response. Set the returned useragent value for your browser/HTTP client and place the token into h-captcha-response and g-recaptcha-response hidden elements. Then submit the form or make the corresponding request to your target website.
Please note, hcaptcha also has a callback. If there is no form to submit you MUST explore the website code and find the callback.

List of GET/POST request parameters for https://api.bigcaptcha.com/in.php

 

Parameter Type Required Description
key String Yes your API key
method String Yes hcaptcha – defines that you’re sending hCaptcha
sitekey String Yes Value of data-sitekey parameter you found on page
pageurl String Yes Full URL of the page where you bypass the captcha
domain String

Default: hcaptcha.com

No Domain used to load the captcha: hcaptcha.com or js.hcaptcha.com
userAgent String No Deprecated. We do not use your userAgent anymore on our workers side. Use should set on your side the User-Agent value of our worker returned with the token by our API.
header_acao Integer
Default: 0
No 0 – disabled
1 – enabled.
If enabled in.php will include Access-Control-Allow-Origin:* header in the response.
Used for cross-domain AJAX requests in web applications. Also supported by res.php.
json Integer
Default: 0
No 0 – server will send the response as plain text
1 – tells the server to send the response as JSON

Request example:

Copy to Clipboard

Response example:

`

{
“status”: 1,
“request”: “74327409378”
}

`

List of GET request parameters for https://api.bigcaptcha.com/res.php

GET parameter Type Required Description
key String Yes your API key
action String Yes get – get the answer for your captcha
id String Yes ID of captcha returned by in.php.
json Integer
Default: 0
Yes Always set to 1 for hCaptcha to get the response as JSON containing the User-Agent value

Request example:

Copy to Clipboard

Response example:

Copy to Clipboard

FunCaptcha

The method is pretty simple:

  1. You need to locate two values on the page with Funcaptcha
    • – Public key
    • – Service URL (surl)

    Public key can be found inside data-pkey parameter of funcaptcha’s div element or inside an input element with name fc-token – just extract the key indicated after pk from the value of this element.
    Service Url can be also found in fc-token – that is a value of surl parameter.
    Service Url is optional parameter and if you don’t provide it we use a default value that is valid for most cases, but we recommend you to provide it.

  2. Submit a HTTP GET or POST request to our API URL: https://api.bigcaptcha.com/in.php with method set to funcaptcha, provide values found on previous step for publickey and surl parameter and full page URL as value for pageurl.
    You can find the full list of parameters in the table below.
    Request URL example:
    Copy to Clipboard
  3. If everything is fine server will return the ID of your captcha as plain text, like: OK|2122988149 or as JSON {“status”:1,”request”:”2122988149″} if json parameter was used.
    Otherwise server will return an error code.
  4. Make a 10-20 seconds timeout then submit a HTTP GET request to our API URL: https://api.bigcaptcha.com/res.php to get the result.
    The full list of parameters is in the table below.If captcha is already solved server will respond in plain text or JSON and return the answer token that looks like:
    3084f4a302b176cd7.96368058|r=ap-southeast-1|guitextcolor=%23FDD531|metabgclr=%23FFFFFF|metaiconclr=%23202122|meta=3|lang=en|pk=12AB34CD-56F7-AB8C-9D01-2EF3456789A0|cdn_url=https://cdn.funcaptcha.com/fc|surl=https://funcaptcha.com
    

    If captcha is not solved yet server will return CAPCHA_NOT_READY result. Repeat your request in 5 seconds.

    If something went wrong server will return an error code.

  5. Locate the element with id fc-token and put the token into value of this element.
  6. Do the rest what you need to do on the website: submit a form or click on a button or something else.

List of GET/POST request parameters for https://api.bigcaptcha.com/in.php

Parameter Type Required Description
key String Yes your API key
method String Yes funcaptcha – defines that you’re sending a FunCaptcha with token method
publickey String Yes Value of pk or data-pkey parameter you found on page
surl String No Value of surl parameter you found on page
pageurl String Yes Full URL of the page where you see the FunCaptcha
data[key] String No Custom data to pass to FunCaptcha.
For example: data[blob]=stringValue
userAgent String No Tells us to use your user-agent value.
header_acao Integer
Default: 0
No 0 – disabled
1 – enabled.
If enabled in.php will include Access-Control-Allow-Origin:* header in the response.
Used for cross-domain AJAX requests in web applications. Also supported by res.php.
json Integer
Default: 0
No 0 – server will send the response as plain text
1 – tells the server to send the response as JSON

List of GET request parameters for https://api.bigcaptcha.com/res.php

GET parameter Type Required Description
key String Yes your API key
action String Yes get – get the answer for your captcha
id Integer Yes ID of captcha returned by in.php.
json Integer
Default: 0
No 0 – server will send the response as plain text
1 – tells the server to send the response as JSON

Request URL example:

https://api.bigcaptcha.com/res.php?key=1abc234de56fab7c89012d34e56fa7b8&action=get&id=2122988149
Error Handling

It’s very important to use proper error handling in your code to avoid suspension of your account and service interruption.

Take a look on debugging method provided by our API. It can help you to identify the root or the error.

Normally if something is wrong with your request server will return an error.

List of in.php errors

Error code Description Action
ERROR_WRONG_USER_KEY You’ve provided key parameter value in incorrect format, it should contain 32 symbols. Stop sending requests. Check your API key.
ERROR_KEY_DOES_NOT_EXIST The key you’ve provided does not exists. Stop sending requests. Check your API key.
ERROR_ZERO_BALANCE Stop sending requests. Deposit your account to continue solving captchas.
ERROR_PAGEURL pageurl parameter is missing in your request.  Stop sending requests and change your code to provide valid pageurl parameter.
More info.
ERROR_NO_SLOT_AVAILABLE You can receive this error in two cases:
1. If you solve Normal Captcha or ArkoseLabs FunCaptcha: your maximum rate is lower than current rate on the server.
You can change your maximum rate in your account’s settings.
2. If you solve token-based captchas: the queue of your captchas that are not distributed to workers is too long. Queue limit changes dynamically and depends on total amount of captchas awaiting solution and usually it’s between 50 and 100 captchas.
  1. If you have received this error, don’t try to submit your request again immediately. Instead, 1. Adjust your maximum rate in your account’s settings.
    or
  2. Make 2-3 seconds timeout and then retry to submit your request.
ERROR_ZERO_CAPTCHA_FILESIZE Image size is less than 100 bytes. Check the image file.
ERROR_TOO_BIG_CAPTCHA_FILESIZE Image size is more than 600 kB or image is bigger than 1000px on any side. Check the image file.
ERROR_WRONG_FILE_EXTENSION Image file has unsupported extension. Accepted extensions: jpg, jpeg, gif, png. Check the image file.
ERROR_IMAGE_TYPE_NOT_SUPPORTED Server can’t recognize image file type. Check the image file.
ERROR_UPLOAD Server can’t get file data from your POST-request.
That happens if your POST-request is malformed or base64 data is not a valid base64 image.
You got to fix your code that makes POST request.
ERROR_IP_NOT_ALLOWED The request is sent from the IP that is not on the list of your allowed IPs. Check the list of your allowed IPs.
IP_BANNED Your IP address is banned due to many frequent attempts to access the server using wrong authorization keys. Ban will be automatically lifted after 5 minutes.
ERROR_BAD_TOKEN_OR_PAGEURL You can get this error code when sending reCAPTCHA V2. That happens if your request contains invalid pair of googlekey and pageurl. The common reason for that is that reCAPTCHA is loaded inside an iframe hosted on another domain/subdomain. Explore code of the page carefully to find valid pageurl and sitekey values.
ERROR_GOOGLEKEY You can get this error code when sending reCAPTCHA V2. That means that sitekey value provided in your request is incorrect: it’s blank or malformed. Check your code that gets the sitekey and makes requests to our API.
ERROR_PROXY_FORMAT You use incorrect proxy format in your request to in.php Use proper format as described in section Using proxies.
ERROR_WRONG_GOOGLEKEY googlekey parameter is missing in your request Check your code that gets the sitekey and makes requests to our API.
ERROR_CAPTCHAIMAGE_BLOCKED You’ve sent an image that is marked in our database as unrecognizable.
Usually that happens if the website where you found the captcha stopped sending you captchas and started to send “deny access” image.
Try to override website’s limitations.
TOO_MANY_BAD_IMAGES You are sending too many unrecognizable images Make sure that your last captchas are visible and check unrecognizable images we saved for analisys. Then fix your software to submit images properly.
MAX_USER_TURN You made more than 60 requests to in.php within 3 seconds.
Your account is banned for 10 seconds. Ban will be lifted automatically.
Set at least 100 ms timeout between requests to in.php.
ERROR: NNNN Where NNNN is numeric error code.
You exceeded request limit and your account is temporary suspended.
You should set proper timeouts. Please refer to Request limits for more info.
ERROR_BAD_PARAMETERS The error code is returned if some required parameters are missing in your request or the values have incorrect format. Or in case if you have SandBox mode and 100% recognition options enabled at the same time.
For example if you submit Grid images but your request is missing an instruction for workers. Or if you submit reCAPTCHA V2 or TikTok captcha with cookies string that has incorrect format.
Check that your request contains all the required parameters and the values are in proper format.
Use debug mode to see which values you send to our API.
ERROR_BAD_PROXY You can get this error code when sending a captcha via proxy server which is marked as BAD by our API. Use a different proxy server in your requests.
ERROR_SITEKEY You can get this error code when sending hCaptcha. That means that sitekey value provided in your request is incorrect: it’s blank or malformed. Check your code that gets the sitekey and makes requests to our API.

List of res.php errors

Error code Description Action
CAPCHA_NOT_READY Your captcha is not solved yet. Make 5 seconds timeout and repeat your request.
ERROR_CAPTCHA_UNSOLVABLE We are unable to solve your captcha – three of our workers were unable solve it or we didn’t get an answer within 90 seconds (300 seconds for reCAPTCHA V2).
We will not charge you for that request.
You can retry to send your captcha.
ERROR_WRONG_USER_KEY You’ve provided key parameter value in incorrect format, it should contain 32 symbols. Stop sending requests. Check your API key.
ERROR_KEY_DOES_NOT_EXIST The key you’ve provided does not exists. Stop sending requests. Check your API key.
ERROR_WRONG_ID_FORMAT You’ve provided captcha ID in wrong format. The ID can contain numbers only. Check the ID of captcha or your code that gets the ID.
ERROR_WRONG_CAPTCHA_ID You’ve provided incorrect captcha ID. Check the ID of captcha or your code that gets the ID.
ERROR_BAD_DUPLICATES Error is returned when 100% accuracy feature is enabled. The error means that max numbers of tries is reached but min number of matches not found. You can retry to send your captcha again.
ERROR_REPORT_NOT_RECORDED Error is returned to your report request if you already complained lots of correctly solved captchas (more than 40%). Or if more than 15 minutes passed after you submitted the captcha. Make sure that you’re sending complain requests only for incorrectly solved captchas.
ERROR_DUPLICATE_REPORT Error is returned to your report request if you are trying to report the same captcha more than once. Make sure that you’re sending only one report for each captcha.
ERROR: NNNN Where NNNN is numeric error code.
You exceeded request limit and your account is temporary suspended.
You should set proper timeouts. Please refer to Request limits for more info.
ERROR_IP_ADDRESS You can receive this error code when registering a pingback (callback) IP or domain.
That happes if your request is coming from an IP address that doesn’t match the IP address of your pingback IP or domain.
Make the request from the IP address matching your IP or domain for pingback.
ERROR_TOKEN_EXPIRED You can receive this error code when sending Geetest.
That error means that challenge value you provided is expired.
If you always receive this error code that means that we’re unable to solve Geetest on this website.
ERROR_EMPTY_ACTION Action parameter is missing or no value is provided for action parameter. Check your request parameters and add the neccessary value, e.g. get or getbalance.
ERROR_PROXY_CONNECTION_FAILED You can get this error code if we were unable to load a captcha through your proxy server. The proxy will be marked as BAD by our API and we will not accept requests with the proxy during 10 minutes.
You will recieve ERROR_BAD_PROXY code from in.php API endpoint in such case.
Use a different proxy server in your requests.

Debugging

Sometimes it can be hard to find to undrestand why our API returns an error code when you make a request that looks correct.

We provide a debugging method that can help you to find the root of the problem showing what exactly our API recevied from you.

The method can be used both on in.php and res.php API endpoints for any request.

Add an additional parameter debug_dump=1 to your request and our server will return a dump of request parameters that received by our API.

Request example:

Copy to Clipboard

Response example:

array(8) {
["key"]=>
string(32) "1abc234de56fab7c89012d34e56fa7b8"
["method"]=>
string(13) "userrecaptcha"
["googlekey"]=>
string(40) "6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-"
["json"]=>
string(1) "1"
["header_acao"]=>
string(1) "1"
["pageurl"]=>
string(38) "http://mysite.com/page/with/recaptcha/"
["pingback"]=>
string(32) "http://1.2.3.4/pingback_handler/"
["debug_dump"]=>
string(1) "1"
}
array(0) {
}
array(0) {
}
{"status":0,"request":"ERROR_KEY_DOES_NOT_EXIST"}

Using this method you will be able to easily identify cases when your request contains invalid data or missing required parameters.

Request limits

Please remember and understand that each of your requests to our API generates multuple requests to our databases. That’s why we ask to set proper timeouts for your requests and use proper error handling for cases when server returns an error (error message, HTTP error or HTML page with error).

For example:

  • If server returns ERROR_NO_SLOT_AVAILABLE make a 5 seconds timeout before sending next request.
  • If server returns ERROR_ZERO_BALANCE set the timeout to 60 seconds.
  • After uploading a captcha wait a least 5 seconds (10-20 for recaptcha) and only then try to get the answer.
  • If captcha is not solved yet – retry in 5 seconds.

If your timeouts are configured incorrectly your account or IP address will be temporary blocked and server will return an error. See the list of error codes in the table below.

List of error codes for request limitations

Error code Blocking time Blocking reason
ERROR: 1001 10 minutes You received 120 ERROR_NO_SLOT_AVAILABLE errors in one minute because your current bid is lower than current bid on the server
ERROR: 1002 5 minutes You received 120 ERROR_ZERO_BALANCE errors in one minute because your balance is out
ERROR: 1003 30 seconds You are getting ERROR_NO_SLOT_AVAILABLE because you are uploading many captchas and server has a long queue of your captchas that are not distributed to workers.
You received three times more errors than amount of captchas you sent (but not less than 120 errors). Increase the timeout if you see this error.
ERROR: 1004 10 minutes Your IP address is blocked because there were 5 requests with incorrect API key from your IP.
ERROR: 1005 5 minutes You are making too many requests to res.php to get answers.
We use the following rule to block your account: R > C * 20 + 1200
Where:
R – the amount of your requests
C – the amount of captchas you’ve uploaded
That means that you don’t have to make more than 20 requests to res.php per each captcha.
Please remember that balance request sent to res.php also counts!
To get your answer faster without a risk to be blocked you can use pingback feature and we will send you the answer when your captcha is solved.
MAX_USER_TURN 10 seconds You made more than 60 requests to in.php within 3 seconds. Set at least 100 ms timeout between requests to in.php.

Newly Launched Captcha Solving Service – Big Captcha

We are proud to introduce the following standout features:

  1. 99% Uptime: With a solid 99% uptime, BigCaptcha ensures it is always available to serve you.
  2. Pay-as-you-go: Our flexible payment model allows you to pay only for the number of captchas you decode, saving costs and budget control.
  3. Easy Integration: BigCaptcha offers easy integration into your systems, saving you time and effort.
  4. Fastest Solving Speed: Experience the fastest captcha solving speed on the market with BigCaptcha, saving you time and boosting productivity.
  5. Most Competitive Pricing on the Market: We are committed to providing the most affordable pricing, ensuring you save costs without compromising service quality.
  6. Payment with Cryptocurrency: BigCaptcha offers payment with cryptocurrency, providing convenience and flexibility for customers.

Product & Pricing

Big Captcha is the most affordable tool on the market.

Captcha Type Price Speed Success avg
Normal Captcha $0.2/1000 requests  < 0.3s 96%
reCaptcha v2 $0.35/1000 requests  < 28s 98%
reCaptcha v3 $0.5/1000 requests  < 11s 98%
hCaptcha $0.5/1000 requests  < 10.7s 99%
Fun Captcha $0.2/1000 requests  < 0.1s 93%

Packages

Package Daily package Weekly package Monthly package
Micro

(5 threads, unlimited request)

$2 $12 $39
Stater

(10 threads, unlimited request)

$3.5 $21 $69
Regular

(20 threads, unlimited request)

$6.5 $38 $129
Advanced

(30 threads, unlimited request)

$10 $55 $189
Premium

(60 threads, unlimited request)

$18 $99 $369