AZcaptcha API Document
AZcaptcha is a automatic image and CAPTCHA recognition service. AZcaptcha's main purpose is solving your CAPTCHAs in a quick and accurate way by AI employees, but the service is not limited only to CAPTCHA solving. You can convert to text any image that a AI 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:
- Send your image or captcha to our server.
- Get the ID of your task.
- Start a cycle that checks if your task is completed.
- Get the result.
Rates
Our rates depends on type of captcha that you want to solve and the method used. Rate for normal captcha also depends on current service load.
Recent Changes
Aug 18, 2020
Added support Hcaptcha for Hcaptcha
Added support of data-s, cookies and useragent for ReCaptcha V2
Type of captcha/method | Rate per 1000 | Description |
Normal Captcha | $0.4 | The rate is flexible and depends on current load of the service. You can see current rate and limit max rate in your account settings. |
ReCaptcha V2,V3... | $1 | The rate applies to Google's ReCaptcha solved via token. |
Hcaptcha | $1 | The rate applies to Hcaptcha solved via token. |
Solving Captchas
The process of solving captchas with AZcaptcha is really easy and it's mostly the same for all types of captchas:
- 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:
2abc234de56fab7c89012d34e56f6789
This key will be used for all your requests to our server. - Submit a HTTP POST request to our API URL:
http://azcaptcha.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. - Make a timeout: 20 seconds for ReCaptcha, 5 seconds for other types of captchas.
- Submit a HTTP GET request to our API URL:
http://azcaptcha.com/res.php
to get the result.
If captha 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.
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: http://azcaptcha.com/in.php
Server accepts images in multipart or base64 format.
Multipart sample form
YOUR_APIKEY is Your API key.
Base64 sample form
YOUR_APIKEY is your API key.
BASE64_FILE is base64-encoded image body.
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: http://azcaptcha.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 http://azcaptcha.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 |
body | string | Yes | If method is base64 , requite body param |
file | file | Yes | If method is post , requite file upload param |
textinstructions | String Max 140 characters Endcoding: UTF-8 |
No | textinstructions= contact support if you need special config captcha banking,scbeasy,game captcha... |
imginstructions | Image Max 100x100px, 25 kB |
No | Image will be shown to worker to help him to solve the captcha correctly. Server accepts images from multipart form or base64-encoded. |
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. |
pingback | String | No | URL for pingback (callback) response that will be sent when captcha is solved. URL should be registered on the server. More info here. |
json | Integer Default: 0 |
No | 0 - server will send the response as plain text 1 - tells the server to send the response as JSON |
soft_id | Integer | No | ID of software developer. Developers who integrated their software with AZcaptcha get reward: 10% of spendings of their software users. |
List of GET request parameters for http://azcaptcha.com/res.php
GET parameter | Type | Required | Description |
key | String | Yes | your API key |
action | String | Yes | get - get the asnwer 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:
http://azcaptcha.com/res.php?key=2abc234de56fab7c89012d34e56f6789&action=get&id=2122988149
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 also known as I'm not a robot reCaptcha is a very popular type of captcha that looks like this:
Solving ReCaptcha V2 with our new method is pretty simple:
Look at the element's code at the page where you found ReCaptcha.
Find a link that begins with www.google.com/recaptcha/api2/anchor or find data-sitekey parameter.
Copy the value of k parameter of the link (or value of data-sitekey parameter).
Submit a HTTP GET or POST request to our API URL:
http://azcaptcha.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 pageurl. Sending 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:
http://azcaptcha.com/in.php?key=2abc234de56fab7c89012d34e56f6789&method=userrecaptcha&googlekey=6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-&pageurl=http://mysite.com/page/with/recaptcha?appear=1&here=now
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:
http://azcaptcha.com/res.php
to get the result.
The full list of parameters is in the table below.If captha 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.
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:
document.getElementById("g-recaptcha-response").innerHTML="TOKEN_FROM_AZCAPTCHA";
An input field will appear on the page. And you just have to paste the answer token to that field and submit the form.
Congratulations, you've passed the recaptha
ReCaptcha Callback
Sometimes there's no submit button and a callback function is used isntead. The function is executed when reCaptcha is solved.
Callback function is usually defined in data-callback
parameter of reCaptcha, for example:
data-callback="myCallbackFunction"
Or sometimes it's defined as callback
parameter of grecaptcha.render
function, for example:
grecaptcha.render('example', {
'sitekey' : 'someSitekey',
'callback' : myCallbackFunction,
'theme' : 'dark'
});
Also there's another way to find the callback function - open javascript console of your browser and explore ReCaptcha configuration object:
___grecaptcha_cfg.clients[0].aa.l.callback
Note that aa.l may change and there can be multiple clients so you have to check clients[1], clients[2] too.
Finally all you have to do is to call that function:
myCallbackFunction();
Or even this way:
___grecaptcha_cfg.clients[0].aa.l.callback();
Sometimes it is required to provide an argument and in most cases you should put the token there. For example:
myCallbackFunction('TOKEN');
Invisible ReCaptcha V2
ReCaptcha V2 also has an invisible version.
You may check how it looks like here: https://www.google.com/recaptcha/api2/demo?invisible=true
Recently we noticed some changes in invisible ReCaptcha algorithms on few websites and added new parameter invisible=1
that should be used for invisible ReCaptcha.
Read more about invisible ReCaptcha below.
ReCaptcha V2 also has an invisible version.
You may check how it looks like here: https://www.google.com/recaptcha/api2/demo?invisible=true
Recently we noticed some changes in invisible ReCaptcha algorithms on few websites and added new parameter invisible=1
that should be used for invisible ReCaptcha.
Read more about invisible ReCaptcha below.
Invisible ReCaptcha is located on a DIV layer positioned -10 000 px from top that makes it invisible for user.
ReCaptcha is activated on page load or on user's actions like click somewhere or submit a form - that depends on the website. If user's cookies are good enough then he will just pass it automatically and no additional actions will be required. Otherwise user will see standard ReCaptcha form with a challenge.
In most cases when challenge is completed a callback function is executed. You can read more about callback here.
If you are still not sure — there are few ways to determine that ReCaptcha is in invisible mode:
- You don't see "I'm not a robot" checkbox on the page but getting recaptcha challenge when making some actions there
- ReCaptcha's iframe link contains parameter
size=invisible
- ReCaptcha's configuration object contains parameter size that is set to invisible, for example
___grecaptcha_cfg.clients[0].aa.l.size
is equal toinvisible
How to bypass invisible ReCaptcha in browser?
Method 1: using javascript:
- Change the value of g-recaptcha-response element to the token you received from our server:
-
Execute the action that needs to be performed on the page after solving reCaptcha.
- Voila! You've done that with just 2 strings of code.
document.getElementById("g-recaptcha-response").innerHTML="TOKEN_FROM_AZCAPTCHA";
Usually there's a form that should be submitted and you need to identify the form by id or name or any other attribute and then submit the form. Here are few examples:
document.getElementById("recaptcha-demo-form").submit(); //by id "recaptcha-demo-form"
document.getElementsByName("myFormName")[0].submit(); //by element name "myFormName"
document.getElementsByClassName("example").submit(); //by class name "example"
Or sometimes there's a callback function executed when reCaptcha is solved.
Callback function is usually defined in data-callback
parameter of reCaptcha, for example:
data-callback="myCallbackFunction"
Or sometimes it's defined as callback
parameter of grecaptcha.render
function, for example:
grecaptcha.render('example', {
'sitekey' : 'someSitekey',
'callback' : myCallbackFunction,
'theme' : 'dark'
});
And all you have to do is to call that function:
myCallbackFunction();
Method 2: changing HTML:
- Cut the div containing ReCaptcha from page body.
- Cut the whole block:
- Put the following code instead of the block you've just cut:
- You will see “Submit query” button.
Press the button to submit the form with g-recaptcha-response and all other form data to the website.
Where %g-recaptcha-response% - is an answer token you’ve got from our service.
List of GET/POST request parameters for http://azcaptcha.com/in.php
Parameter | Type | Required | Description |
key | String | Yes | your API key |
method | String | Yes | userrecaptcha - defines that you're sending a ReCaptcha V2 with new method |
googlekey | String | Yes | Value of k or data-sitekey parameter you found on page |
pageurl | String | Yes | Full URL of the page where you see the ReCaptcha |
invisible | Integer Default: 0 |
No | 1 - means that ReCaptcha is invisible. 0 - normal ReCaptcha. |
data-s | string | No | Value of data-s parameter you found on page. Curenttly applicable for Google Search and other Google services. |
cookies | string | No | Your cookies that will be passed to our worker who solve the captha. We
also return worker's cookies in the response if you use json=1 .Format: KEY:Value, separator: semicolon, example: KEY1:Value1;KEY2:Value2;
|
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 . |
pingback | String | No | URL for pingback (callback) response that will be sent when captcha is solved. URL should be registered on the server. More info here. |
json | Integer Default: 0 |
No | 0 - server will send the response as plain text 1 - tells the server to send the response as JSON |
soft_id | Integer | No | ID of software developer. Developers who integrated their software with AZcaptcha get reward: 10% of spendings of their software users. |
proxy | String | No | Format: login:[email protected]:3128 You can find more info about proxies here. |
proxytype | String | No | Type of your proxy: HTTP, HTTPS, SOCKS4, SOCKS5. |
cookie | String | No | Additional cookies which we must use during interaction with target page or Google.
Format: cookiename1=cookievalue1; cookiename2=cookievalue2 |
useragent | String | No | Browser's User-Agent which is used in emulation. It is required that you use a signature of a modern browser, otherwise Google will ask you to "update your browser". |
List of GET request parameters for http://azcaptcha.com/res.php
GET parameter | Type | Required | Description |
key | String | Yes | your API key |
action | String | Yes | get - get the asnwer 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:
http://azcaptcha.com/res.php?key=2abc234de56fab7c89012d34e56f6789&action=get&id=2122988149
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 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 azcaptcha:
First you've got to be sure the target website is actually using ReCaptcha V3
There 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=6Ld0KL0UABBBBCd2-aa00bbCCddeee1FfF2gHiJK - clients array of ___grecaptcha_cfg object is using index 100000: ___grecaptcha_cfg.clients[100000]
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('6Ld0KL0UABBBBCd2-aa00bbCCddeee1FfF2gHiJK', {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.
-
Having all necessary parameters stated above you may send request to our API.
Submit a HTTP GET or POST request to our API URL:
http://azcaptcha.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.
Sending proxies is not obligatory ar the moment but it's recommended.List of request parameters below.
URL request sample:
http://azcaptcha.com/in.php?key=1abc234de56fab7c89012d34e56fa7b8&method=userrecaptcha&version=v3&action=verify&min_score=0.3 &googlekey=6Ld0KL0UABBBBCd2-aa00bbCCddeee1FfF2gHiJK&pageurl=http://mysite.com/page/
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 10-15 seconds timeout and submit a HTTP GET request to our API
http://azcaptcha.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:
03AHJ_Vuve5Asa4koK3KSMyUkCq0vUFCR5Im4CwB7PzO3dCxIo11i53epEraq-uBO5mVm2XRikL8iKOWr0aG50sCuej9bXx5qcviUGSm4iK4NC_Q88flavWhaTXSh0VxoihBwBjXxwXuJZ-WGN5Sy4dtUl2wbpMqAj8Zwup1vyCaQJWFvRjYGWJ_TQBKTXNB5CCOgncqLetmJ6B6Cos7qoQyaB8ZzBOTGf5KSP6e-K9niYs772f53Oof6aJeSUDNjiKG9gN3FTrdwKwdnAwEYX-F37sI_vLB1Zs8NQo0PObHYy0b0sf7WSLkzzcIgW9GR0FwcCCm1P8lB--gf50q5BMkiRH7osm4DoUgsjc_XyQiEmQmxl5sqZP7aKsaE-EM00x59XsPzD3m3YI6SRCFRUevSyumBd7KmXE8VuzIO9lgnnbka4-eZynZa6vbB9cO3QjLH0xSG3--o-fxrOuphwfrtwvvi2FGfpTexWvxhqWICMFTTjFBCEGEgj7_IFWEKirXW2RTZCVF0Gid7EtIsoEeZkPbrcUISGmgtiJkJ_KojuKwImF0G0CsTlxYTOU2sPsd5o1JDt65wGniQR2IZufnPbbK76Yh_KI2DY4cUxMfcb2fAXcFMc9dcpHg6f9wBXhUtFYTu6pi5LhhGuhpkiGcv6vWYNxMrpWJW_pV7q8mPilwkAP-zw5MJxkgijl2wDMpM-UUQ_k37FVtf-ndbQAIPG7S469doZMmb5IZYgvcB4ojqCW3Vz6Q
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.
You may provide additional parameter taskinfo=1 along with json=1 and API will return token in JSON format with additional information:
- user_check - ID of the worker who solved the captcha;
- user_score - score of this worker.
Sample request:
http://azcaptcha.com/res.php?key=1abc234de56fab7c89012d34e56fa7b8&action=get&taskinfo=1&json=1&id=2122988149
-
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.
-
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
http://azcaptcha.com/res.php
with your API KeyCaptcha 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:
http://azcaptcha.com/res.php?key=1abc234de56fab7c89012d34e56fa7b8&action=reportgood&id=2122988149 http://azcaptcha.com/res.php?key=1abc234de56fab7c89012d34e56fa7b8&action=reportbad&id=2122988149&answer=YOURCORECTCAPTCHA
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 http://azcaptcha.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 |
googlekey | String | Yes | Value of sitekey parameter you found on page |
pageurl | String | Yes | Full URL of the page where you see the ReCaptcha |
action | String Default: verify |
No | Value of action parameter you found on page |
min_score | Integer 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 | 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 . |
pingback | String | No | URL for pingback (callback) response that will be sent when captcha is solved. URL should be registered on the server. More info here. |
json | Integer Default: 0 |
No | 0 — server will send the response as plain text 1 — tells the server to send the response as JSON |
soft_id | Integer | No | ID of software developer. Developers who integrated their software with azcaptcha get reward: 10% of spendings of their software users. |
proxy | String | No | Format: login:[email protected]:3128 You can find more info about proxies here. |
proxytype | String | No | Type of your proxy: HTTP, HTTPS, SOCKS4, SOCKS5. |
List of GET request parameters for http://azcaptcha.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 |
taskinfo | Integer Default: 0 |
No | 1 — server will return additional information regarding the captcha: ID and score of the worker who solved the captcha. Should be used only with json=1 |
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:
Solving hCaptcha is pretty simple:
-
Find the value of data-sitekey parameter in the source code of the page.
-
Submit a HTTP GET or POST request to our API URL:
https://azcaptcha.com/in.php
with method set to hcaptcha and provide the value found on previous step as value for sitekey and full page URL as value for pageurl.
You can find the full list of parameters in the table below.Request URL example:
https://azcaptcha.com/in.php?key=1abc234de56fab7c89012d34e56fa7b8&method=hcaptcha&sitekey=10000000-ffff-ffff-ffff-000000000001&pageurl=http://mysite.com/register
-
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 5-20 seconds timeout then submit a HTTP GET request to our API URL:
https://azcaptcha.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:
P0_eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJwYXNza2V5IjoiNGQ3MTI5ZmUtOTQxZi00NGQ4LWI5MzYtMzAwZjUyMmM3Yzc2IiwiZXhwIjoxNTY4MTA3MjY4LCJzaGFyZF9pZCI6MzAyMzQ1NDg4fQ.yJuANPBc1uzCw9tW6CoLqiijBgh6zF00KdsnqaJtugg
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.
-
Place the token into h-captcha-response and g-recaptcha-response hidden elements and submit the form.
let submitToken = (token) => { document.querySelector('[name=g-recaptcha-response]').innerText = token document.querySelector('[name=h-captcha-response]').innerText = token document.querySelector('.challenge-form').submit() } submitToken('TOKEN_STRING')
List of GET/POST request parameters for https://azcaptcha.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 see the hCaptcha |
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 . |
pingback | String | No | URL for pingback (callback) response that will be sent when captcha is
solved. URL should be registered on the server. More info here. |
json | Integer Default: 0 |
No | 0 - server will send the response as plain text 1 - tells the server to send the response as JSON |
proxy | String | No | Format: login:[email protected]:3128 You can find more info about proxies here. |
proxytype | String | No | Type of your proxy: HTTP, HTTPS, SOCKS4, SOCKS5. |
List of GET request parameters for https://azcaptcha.com/res.php
GET parameter | Type | Required | Description |
key | String | Yes | your API key |
action | String | Yes | get - get the asnwer 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://azcaptcha.com/res.php?key=1abc234de56fab7c89012d34e56fa7b8&action=get&id=2122988149
Arkose Labs FunCaptcha
Now we provide a method to solve Arkose Labs captcha (ex. FunCaptcha) with a token.
The method is pretty simple:
-
You need to locate two values on the page with Arkose Labs captcha
- - 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 namefc-token
- just extract the key indicated afterpk
from the value of this element.
Service Url can be also found infc-token
- that is a value ofsurl
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. -
Submit a HTTP GET or POST request to our API URL:
http://azcaptcha.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:
http://azcaptcha.com/in.php?key=1abc234de56fab7c89012d34e56fa7b8&method=funcaptcha&publickey=12AB34CD-56F7-AB8C-9D01-2EF3456789A0&surl=https://client-api.arkoselabs.com&pageurl=http://mysite.com/page/with/funcaptcha/
-
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 10-20 seconds timeout then submit a HTTP GET request to our API URL:
http://azcaptcha.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.
-
Locate the element with id fc-token and put the token into value of this element.
-
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 http://azcaptcha.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 .
|
pingback | String | No | URL for pingback (callback) response that will be sent when captcha is
solved. URL should be registered on the server. More info here. |
json | Integer Default: 0 |
No | 0 - server will send the response as plain text 1 - tells the server to send the response as JSON |
soft_id | Integer | No | ID of software developer. Developers who integrated their software with AZcaptcha get reward: 10% of spendings of their software users. |
proxy | String | No | Format: login:[email protected]:3128 You can find more info about proxies here. |
proxytype | String | No | Type of your proxy: HTTP, HTTPS, SOCKS4, SOCKS5. |
List of GET request parameters for http://azcaptcha.com/res.php
GET parameter | Type | Required | Description |
key | String | Yes | your API key |
action | String | Yes | get - get the asnwer 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:
http://azcaptcha.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.
Normally if something is wrong with your request server will return an error.
Below you can find tables with lists of errors with descriptions:
Errors can be returned as plain text or as JSON if you provided json=1 parameter.
In very rare cases server can return HTML page with error text like 500 or 502 - please keep it in mind and handle such cases correctly.
If you received anything that doesn't looks like the answer or error code - make a 5 seconds timeout and then retry your request.
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 | You don't have funds on your account. | 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 ReCaptcha: 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. 2. If you solve Normal Captcha: your maximum rate for normal captchas is lower than current rate on the server. You can change your maximum rate in your account's settings. |
If you received this error, don't try to submit your request again immediately. 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 100 kB. | 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 here. |
IP_BANNED | Your IP address is banned due to many frequent attempts to access the server using wrong authorization keys. | To lift the ban, please, contact our support team. |
ERROR_RECAPTCHA_INVALID_SITEKEY | 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_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. |
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. |
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. |
REPORT_NOT_RECORDED | Error is returned to your complain request if you already complained lots of correctly solved captchas. | Make sure that you're sending complain requests only for incorrectly solved captchas. |
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. |
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. |
Using proxies
Proxies can be used to solve ReCaptcha V2 from the same IP address as you load the page.
Using proxies is not obligatory at the moment but in future algorithms of ReCaptcha and FunCaptcha can be changed and it will be required.
And even now some websites check IP address used for solving ReCaptcha V2. So we recommend you to be ready for these changes.
If you send us the proxy, we check it's availability trying to open the website through you proxy, and if we can't do that we will not use your proxy.
If we're able to use your proxy - we'll load the ReCaptcha through it for solving.
We don't have our own proxy servers that we can offer to you so you have to use 3rd-party services or setup your own proxy.
We support the following proxy types: SOCKS4, SOCKS5, HTTP, HTTPS with authentication by IP address or login and password.
If your proxy uses IP authentication you have to add our IP addresses to the list of allowed IPs of the proxy:
207.148.116.172
Then provide your proxy IP address and port as a value for proxy parameter.
And the type of your proxy as a value for proxytype parameter.
If your proxy uses login/password authentication you have to include your credentials in proxy parameter.
POST parameters for proxies
POST parameter | Type | Required | Description |
proxy | String | No | Format for IP authentication: IP_address:PORT Example: proxy=123.123.123.123:3128 Format for login/password authentication: login:password@IP_address:PORT Example: proxy=proxyuser:[email protected]:3128 |
proxytype | String | No | Type of your proxy: HTTP, HTTPS, SOCKS4, SOCKS5. Example: proxytype=SOCKS4 |
Pingback (callback)
We provide a pingback (callback) option that allows you to get the answer for your captcha automatically when it's ready.
It allows you to get answers without making requests to http://azcaptcha.com/res.php and also allows you to avoid account suspension.
To receive automated callback you have to:
- Register your callback URL.
- Provide your callback URL as a value for pingback parameter of your request to http://azcaptcha.com/in.php.
- Process HTTP POST request coming from our server to your callback URL. It contains captcha ID and the answer.
Manage pingback URLs
You can manage your pingback URLs making HTTP GET requests to http://azcaptcha.com/res.php
Request parameters are described in the table below.
Important: pingback URL can be added only from the same IP address that your URL is pointing at.
List of GET request parameters for http://azcaptcha.com/res.php
GET parameter | Type | Required | Description |
key | String | Yes | your API key |
action | String | Yes | add_pingback - register new pingback URL get_pingback - get the list of your pingback URLs del_pingback - delete pingback URL |
addr | String | - | Your pingback URL. For example: http://mysite.com/pingback/url/ or 123.123.123.123/pingback/url/ You can use 'all' value together with del_pingback to delete all your URLs. |
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 examples
Add pingback:
http://azcaptcha.com/res.php?key=2abc234de56fab7c89012d34e56f6789&action=add_pingback&addr=http://mysite.com/test.php
List pingback URLs:
http://azcaptcha.com/res.php?key=2abc234de56fab7c89012d34e56f6789&action=get_pingback&json=1
Delete all pingback URLs:
http://azcaptcha.com/res.php?key=2abc234de56fab7c89012d34e56f6789&action=del_pingback&addr=all
Complain about incorrectly solved captcha
If your captcha is solved incorrectly you can make a complain sending a HTTP GET request to http://azcaptcha.com/res.php
with action parameter set to reportbad and ID of incorrectly solved captha.
Our moderators will check your captcha and worker's answer and decide was the answer correct or not.
If moderator decides that anwers were in fact incorrect we'll return funds to your balance.
Your reports also help us to ban workers that are making too many mistakes.
Important: don't try to report correctly solved captchas. If you do that your account will be banned.
Please understand that moderators are humans too and they can also make mistakes, don't contact us if moderator marked few incorrect answers as correct.
List of GET request parameters for http://azcaptcha.com/res.php
GET parameter | Type | Required | Description |
key | String | Yes | your API key |
action | String | Yes | reportbad - report incorrectly solved captha. |
id | String | Yes | ID of incorrectly solved captha. |
json | Integer Default: 0 |
No | 0 - server will send the response as plain text 1 - tells the server to send the response as JSON |
Server will return OK_REPORT_RECORDED response to your request. Or an error code if something went wrong.
If you're getting too many incorrectly solved captchas you may provide additional parameters with your captcha to help wokers to solve it correctly
Additional methods
You can also get some additional information with our API, like balance, current rate, etc.
Please check available parameters in the table below.
List of GET request parameters for http://azcaptcha.com/res.php
GET parameter | Type | Required | Description |
key | String | Yes | your API key |
action | String | Yes | getbalance — get your balance get — get answers for multiple captchas with one request. Requires the list of captcha IDs in ids parameter. get2 — get the price of sent captcha and the answer. Requires captcha ID in id parameter. |
ids | String | - | Comma separated IDs of your captchas. |
json | Integer Default: 0 |
No | 0 - server will send the response as plain text 1 - tells the server to send the response as JSON |
Code Examples
Or simply searching AZcaptcha OR rucaptcha on GitHub. If code is made for rucaptcha.com just replace the URL to AZcaptcha.com, API is the same.
Also you can check examples kindly provided by our users:
- Php curl expamle for Normal captcha an ReCaptcha V2 new method
- ReCaptcha V2 example for iMacros for Normal captcha an ReCaptcha V2 new method
- C# Example for ReCaptcha V2 new method
- Perl Example for Normal Captcha by Fayland Lam
- JavaScript Example for Normal Captcha by Sander-Kastelein
- Tampermonkey/Greasemonkey Example for Normal Captcha by Makeshift
- Python Example for Normal Captcha by Joel Höner
- PHP Yii2 Example for Normal Captcha by jumper423
- C# Example for Normal Captcha
- Autoit script for Normal Captcha
- GO Example for Normal Captcha by LeoCBS
And also we have the iMacros form for image captcha example here API code example
General Software Integration Using azcaptcha.com anti-captcha rucaptcha.com API
AZcaptcha is the cheapest and best captcha solver in market.
If our service is not integrated with your software and you want to use our service.
Now you can do that easily by using our azcaptcha api gateway.
azcaptcha api gateway can bypass all types of captchas including recaptcha v2 and invisible recaptcha.
To use our azcaptcha gateway please check this page
2CAPTCHA,DBC AND ANTICAPTCHA API SUPPORT
We’ve designed a captcha gate, which allows you to redirect traffic from other captcha services through AZcaptcha. Currently, we’ve integrated the following services: - azcaptcha.com - deathbycaptcha.com - anti-captcha.com
Manual edit in windows
%SystemRoot%\System32\drivers\etc\hosts
C:\Windows\System32\drivers\etc\hosts
or linux /etc/hosts
150.230.99.34 azcaptcha.com 150.230.99.34 www.azcaptcha.com 150.230.99.34 api.anti-captcha.com 150.230.99.34 api.rucaptcha.com- Open your software or application and select azcaptcha anti-captcha rucaptcha as captcha solver service provider. - Use your AZcaptcha API Key as Key. (32 character) - Re-run your application and check the answers.
Redirection
The gates are redirecting the following actions to our service:
- get balance
- submit image captcha
- retrieve image captcha
- submit recaptcha
- retrieve recaptcha response
In other words, if you have software that works with any of the above services, using the gate will allow you to use our service, with the same software. This is achieved by running a batch program, that writes config information into the hosts file of the Windows operating system. All this is done automatically, all you have to do is run it. For linux, we have a python script that allows you to toggle (enable / disable) a pair of IP DOMAIN
The last step, is to use replace access token OR username & password with credentials from magetyperz. In this way, the programs will run even though they were built for one of the services above, but in reality our service will be used for completion.
In case you don’t want to use the gate anymore, you can edit the hosts file which is located here:
%SystemRoot%\System32\drivers\etc\hosts
On linux, you’ll find the hosts file in
/etc/hosts
Both operating systems require admin / root access in order to modify the files
For more details about the hosts file check this link
Installation
View code here
Once you got it, go to scripts/windows folder, and run bat file for the service you want to redirect
It will ask you for administrator rights, because it’s writing to a system file, allow it, and the gate should be enabled within few seconds
For linux, here’s the usage of the script:
./linux_hosts.py 127.0.0.1 site.com
which can be found in scripts/linux
You can view it on github here
Contact us on Telegram