AntiCaptcha
Modern NodeJS API wrapper for Anticaptcha service
This library is a NodeJS wrapper that expose an modern API in order to exploit the https://anti-captcha.com/ service.
Please keep in mind that this is a work in progress and it only supports certain tasks types. Pull requests welcome!
Documentation
Install using either yarn add anticaptcha
or npm i anticaptcha
.
For the example, we will use the nice feature that are ES7 Async Function this will make the syntax more concise, but feel free to use good old Promises.
Caution : Keep in mind that real people are working behind the network to break the hash. This can lead to some delay depending on the service charge's load, therefore you might require to set a greater timeout for your calls if you're using this through an REST API.
import {
AntiCaptcha,
AntiCaptchaError,
ErrorTypes,
INoCaptchaTaskProxyless,
INoCaptchaTaskProxylessResult,
QueueTypes,
TaskTypes
} from "anticaptcha";
const AntiCaptchaAPI = new AntiCaptcha("<your_client_ID>");
const mainProcess = async () => {
try {
if (!(await AntiCaptchaAPI.isBalanceGreaterThan(10))) {
console.warn("Take care, you're running low on money !");
}
const stats = await this.getQueueStats(QueueTypes.RECAPTCHA_PROXYLESS);
const taskId = await AntiCaptchaAPI.createTask<INoCaptchaTaskProxyless>({
type: TaskTypes.NOCAPTCHA_PROXYLESS,
websiteKey: "7Lfh5tkSBBBFGBGN56s8fAVds_Fl-HP0xQGNGFDK",
websiteURL: "http://www.some-site.com"
});
const response = await AntiCaptchaAPI.getTaskResult<
INoCaptchaTaskProxylessResult
>(taskId);
console.log(`Response Code: ${response.solution.gRecaptchaResponse}`);
} catch (e) {
if (
e instanceof AntiCaptchaError &&
e.code === ErrorCodes.ERROR_IP_BLOCKED
) {
}
}
};
When calling createTask
or getTaskResult
you'll need to specify the task type. Check the TypeScript definition file that are given. This will give you nice view of the object properties. The following tasks are currently supported (other types are defined at: https://anticaptcha.atlassian.net/wiki/spaces/API/pages/5079084/Captcha+Task+Types):
IImageToTextTask
(result type IImageToTextTaskResult
)INoCaptchaTaskProxyless
(result type INoCaptchaTaskProxylessResult
)IRecaptchaV3TaskProxyless
(result type IRecaptchaV3TaskProxylessResult
)
{
status: "ready" | "processing";
solution: T;
cost: number;
ip: string;
createTime: number;
endTime: number;
solveCount: number;
}