End Captcha API
HTTP API technical details
Solving a CAPTCHA using End Captcha HTTP API requires performing at least the first two of the steps
described below, or only the first step.
1) Uploading a CAPTCHA
To upload a CAPTCHA, issue a multipart/form-data POST request to http://api.endcaptcha.com/upload.
The request must contain the following fields:
- username - your End Captcha username.
- password - your End Captcha password.
- image - the CAPTCHA image.
image should be either raw CAPTCHA image file, or base64-encoded CAPTCHA image prepended with base64:
prefix.
Here is the HTML form that does the trick:
<form action="http://api.endcaptcha.com/upload" method="post" enctype="multipart/form-data">
<input type="text" name="username" value="">
<input type="password" name="password" value="">
<input type="file" name="image">
</form>
Here is cURL command equivalent:
curl --header 'Expect: ' -F username=YOUR_USERNAME \
-F password=YOUR_PASSWORD \
-F image=@YOUR_CAPTCHA_FILENAME \
http://api.endcaptcha.com/upload
base64-encoded image field should look like this:
base64:R0lGODlhAQABAIABAAAAAP///yH5BAEAAAEALAAAAAABAAEAAAICTAEAOw==
You'll get one of the following HTTP responses:
If your captcha was successfully decoded while you wait for the server response, you will get the
solution.
|
captcha solution
|
If your captcha was not successfully decoded while you wait for the server response, you will get.
Use the returned url or captcha id for know the captcha resolution status.
|
UNSOLVED_YET:/poll/captcha_id
|
If your End Captcha credentials were rejected, you will get.
|
ERROR:NOT AUTHENTICATED
|
If you don't have enough credits and should deposit funds, you will get.
|
ERROR:NOT ENOUGH BALANCE
|
If your request was not following the specification above, or the CAPTCHA was rejected for not being
a valid image, you will get.
|
ERROR:NOT A VALID CAPTCHA
|
If our service is overloaded (usually around 3:00–6:00 PM EST), you will get.
|
ERROR:SERVICE EXTREMELY LOADED
|
If something happened on our side preventing you from uploading the CAPTCHA, you will get.
|
ERROR:UNSUCCESSFUL UPLOAD
|
If you are sure you're sending properly prepared requests, and your CAPTCHA images are valid, yet the
problem persists, please contact our live support and tell them in details how to reproduce the issue.
1.1) Uploading a token captcha (recaptcha v2)
To upload a token captcha, issue a multipart/form-data POST request to
http://api.endcaptcha.com/upload. The
request must contain the following fields:
- username - your End Captcha username.
- password - your End Captcha password.
- type - the type value, should be the number 4 for recaptcha v2 type.
- token_params - a json string with the related recaptcha v2 data.
token_params data structure:
- proxy: Proxy to be used while the token is solved. This info is optional.
- proxytype: Proxy type, for now only http proxies are supported. This info is optional.
- googlekey: The google recaptcha site key of the website with the recaptcha. For more details about the site key refer to What is a recaptcha site key?.
- pageurl: The url of the page with the recaptcha challenges.
Example of token_params json string:
{
"proxy": "http://125.21.68.112:3128",
"proxytype": "HTTP",
"googlekey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
"pageurl": "http://example.com/recaptcha_path"
}
Here is one example HTML form that does the trick:
<form action="http://api.endcaptcha.com/upload" method="post" enctype="multipart/form-data">
<input type="text" name="username" value="">
<input type="password" name="password" value="">
<input type="text" name="type" value="4">
<input type="text" name="token_params" placeholder="json token params" value='{
"proxy": "",
"proxytype": "",
"googlekey": "6LcTyP4SAAAAADBjv0TABENKwCOGOFe5H15-hd_4",
"pageurl": "http://skyrock.com"}' >
</form>
1.2) Uploading a reCAPTCHA v3
To upload a reCAPTCHA v3 captcha, issue a multipart/form-data POST request to
http://api.endcaptcha.com/upload. The
request must contain the following fields:
- username - your End Captcha username.
- password - your End Captcha password.
- type - the type value, should be the number 5 for reCAPTCHA v3 type.
- token_params - a json string with the related reCAPTCHA v3 data.
token_params data structure:
- proxy: Proxy to be used while the token is solved. This info is optional.
- proxytype: Proxy type, for now only http proxies are supported. This info is optional.
- googlekey: The google recaptcha site key of the website with the recaptcha. For more details about the site key refer to What is a recaptcha site key?.
- pageurl: The url of the page with the recaptcha challenges.
- action: The reCAPTCHA v3 action name.
- min_score: The reCAPTCHA v3 minimal score, usually 0.3.
Example of token_params json string:
{
"proxy": "http://125.21.68.112:3128",
"proxytype": "HTTP",
"googlekey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
"pageurl": "http://example.com/recaptcha_path",
"action": "example/action",
"min_score": 0.3
}
Here is one example HTML form that does the trick:
<form action="http://api.endcaptcha.com/upload" method="post" enctype="multipart/form-data">
<input type="text" name="username" value="">
<input type="password" name="password" value="">
<input type="text" name="type" value="5">
<input type="text" name="token_params" placeholder="json token params" value='{
"proxy": "",
"proxytype": "",
"googlekey": "6LcTyP4SAAAAADBjv0TABENKwCOGOFe5H15-hd_4",
"pageurl": "http://skyrock.com",
"action": "example/action",
"min_score": 0.3}' >
</form>
1.3) Uploading a Funcaptcha
To upload a Funcaptcha, issue a multipart/form-data POST request to
http://api.endcaptcha.com/upload. The
request must contain the following fields:
- username - your End Captcha username.
- password - your End Captcha password.
- type - the type value, should be the number 6 for Funcaptcha type.
- funcaptcha_params - a json string with the related Funcaptcha data.
funcaptcha_params data structure:
- proxy: Proxy to be used while the token is solved. This info is optional.
- proxytype: Proxy type, for now only http proxies are supported. This info is optional.
- publickey: The site key of the website with the Funcaptcha.
- pageurl: The url of the page with the Funcaptcha challenges.
Example of funcaptcha_params json string:
{
"proxy": "http://125.21.68.112:3128",
"proxytype": "HTTP",
"publickey": "055EF0D7-51DC-83C5-3972-333539B47410",
"pageurl": "http://sample.com/funpage"
}
Here is one example HTML form that does the trick:
<form action="http://api.endcaptcha.com/upload" method="post" enctype="multipart/form-data">
<input type="text" name="username" value="">
<input type="password" name="password" value="">
<input type="text" name="type" value="6">
<input type="text" name="funcaptcha_params" placeholder="json funcaptcha params" value='{
"proxy": "",
"proxytype": "",
"publickey": "055EF0D7-51DC-83C5-3972-333539B47410",
"pageurl": "http://sample.com/funpage"}' >
</form>
1.4) Uploading a Hcaptcha
To upload a Hcaptcha, issue a multipart/form-data POST request to
http://api.endcaptcha.com/upload. The
request must contain the following fields:
- username - your End Captcha username.
- password - your End Captcha password.
- type - the type value, should be the number 7 for Hcaptcha type.
- hcaptcha_params - a json string with the related Hcaptcha data.
hcaptcha_params data structure:
- proxy: Proxy to be used while the token is solved. This info is optional.
- proxytype: Proxy type, for now only http proxies are supported. This info is optional.
- sitekey: The site key of the website with the Hcaptcha.
- pageurl: The url of the page with the Hcaptcha challenges.
Example of hcaptcha_params json string:
{
"proxy": "http://125.21.68.112:3128",
"proxytype": "HTTP",
"sitekey": "33489211-6c09-34c2-00e6-1763b63dcd8",
"pageurl": "http://sample.com/hpage"
}
Here is one example HTML form that does the trick:
<form action="http://api.endcaptcha.com/upload" method="post" enctype="multipart/form-data">
<input type="text" name="username" value="">
<input type="password" name="password" value="">
<input type="text" name="type" value="7">
<input type="text" name="hcaptcha_params" placeholder="json hcaptcha params" value='{
"proxy": "",
"proxytype": "",
"sitekey": "33489211-6c09-34c2-00e6-1763b63dcd8",
"pageurl": "http://sample.com/hpage"}' >
</form>
2) Polling for uploaded CAPTCHA status
To get an uploaded CAPTCHA status, issue a GET request to
http://api.endcaptcha.com/poll/%CAPTCHA_ID%, where CAPTCHA_ID is your uploaded CAPTCHA ID acquired
during the 1st step. You don't have to supply your End Captcha credentials this time.
You'll get one of the following HTTP responses:
If your captcha was already decoded, you will get the solution.
|
captcha solution
|
If your captcha is not yet decoded, you will get.
|
UNSOLVED_YET:/poll/captcha_id
|
If invalid captcha id is provided, you will get.
|
ERROR:INCORRECT CAPTCHA ID
|
Please don't poll for a CAPTCHA status more than once every 3 seconds. This is considered abusive and
might get you banned. Conserve your and our bandwidth.
3) Checking your credit balance
To check your credit balance, issue a POST request to http://api.endcaptcha.com/balance with the
following fields:
- username - your End Captcha username.
- password - your End Captcha password.
On successful authentication, you'll get the balance in the HTTP response.
4) Reporting incorrectly solved CAPTCHAs
If you think your CAPTCHA was solved incorrectly, report it to End Captcha to get your money back. To do so,
issue a POST request to http://api.endcaptcha.com/report with the following fields.
- username - your End Captcha username.
- password - your End Captcha password.
- image - captcha image to report.
OR
- hash - the hash of captcha image to report.
OR
- captcha_id - the uploaded CAPTCHA ID acquired during the 1st step.
You'll get refunded if the CAPTCHA was uploaded less than an hour ago.
Abusing this feature will get you banned!
You'll get one of the following HTTP responses:
If the captcha reporting success, you will get.
|
OK
|
If the captcha was already reported, you will get.
|
ERROR:ALREADY REPORTED
|
If invalid captcha image or hash is provided, you will get.
|
ERROR:INCORRECT IMAGE
|
If invalid captcha CAPTCHA_ID is provided, you will get.
|
ERROR:INCORRECT CAPTCHA ID
|
If system cant find image with specified/calculated hash, you will get.
|
ERROR:IMAGE NOT FOUND
|
If invalid credential is provided, you will get.
|
ERROR:INVALD CREDENTIALS
|
If the captcha cant be reported yet (is not solved yet).
|
ERROR:SOLVING, CANT REPORT
|
API Tunneler
This tool allows other softwares use End Captcha services for decoding, by tunneling the captchas flow to
End Captcha servers.
To change your hosts file automatically using API Tunneler:
- Download this software endcaptcha.com/static/static/files/hosts_mod.zip
- Run the host changer software as an administrator. Consider that if you don't do it, the
software will not work.
- Click "Apply!". The software will add the required entries to your hosts file, backing up
your previous configuration.
- Start using your software, selecting the End Captcha / De-Captcher API.
Notes:
- If you want to roll-back the changes and leave your host file as it was before, click the "Undo!"
button.
- For De-Captcher HTTP Post API, you may be asked for additional info. Here's the info you'll need:
URL: decaptcher.endcaptcha.com/decaptcher Port: 80.
- You should run the Host Changer software BEFORE opening up your software/application. Otherwise the
configuration may not be applied properly.
Token Image API FAQ:
Q: What is a recaptcha site key?
A: This is a unique identifier Google assigns to each website that uses the recaptcha service. To find the
site key, follow these steps:
- Go to the website whose recaptcha you're trying to bypass.
- Open your browser's developers console by doing one of the following:
- Use your browser's keyboard shortcut (Refer to this link for help).
- Right click anywhere on the page, click the "Inspect" or "Inspect element" option and click on
the "Console" tab of the window the opened up.
- If none of the above work, google how to open your browser's console.
- Paste this JavaScript instruction on the developers console:
document.getElementsByClassName('g-recaptcha')[0].getAttribut ("data-sitekey");
- Press Enter. The result should be a string. This string is the site key.