2captcha NodeJS captcha client - use 2captcha with ease
Docs: https://2captcha.com/api-docs
Installation
-
npm
$ npm i @captcha-libs/twocaptcha
- pnpm
$ pnpm i @captcha-libs/twocaptcha
- yarn
$ yarn add @captcha-libs/twocaptcha
Usage
//import TwoCaptcha client and desired task
import { TwoCaptcha, RecaptchaV2TaskProxyless } from "@captcha-libs/twocaptcha";
const twoCaptchaClient = new TwoCaptcha({
clientKey: "<YOUR_CLIENT_KEY>",
pollingInterval: 5000, //optional. Delay in milliseconds to fetch task result, default: 5000ms
timeout: 120_000 //optional. Max time in milliseconds to wait for settled task result, default: 120000ms
});
//Pass captcha params to solve
const reCaptchaV2Request = new RecaptchaV2TaskProxyless({
websiteKey: "6LfD3PIbAAAAAJs_eEHvoOl75_83eXSqpPSRFJ_u",
websiteURL: "https://2captcha.com/demo/recaptcha-v2"
});
//returns solution or throws an exception
const reCaptchaV2Solution = await twoCaptchaClient.solve(reCaptchaV2Request);
const {
taskId,
solution, //returns generic captcha type specific solution
solveCount,
status,
createTime,
cost,
ip,
endTime
} = await twoCaptchaClient.solve(reCaptchaV2Solution);
const {
gRecaptchaResponse, token
} = solution;
//If you want to submit solution as correct
await twoCaptchaClient.reportCorrect(taskId);
//...or incorrect
await twoCaptchaClient.reportIncorrect(taskId);
//to get balance
const balance = await twoCaptchaClient.getBalance()
Usage with proxies
const reCaptchaV2Request = new RecaptchaV2Task({
websiteKey: "6LfD3PIbAAAAAJs_eEHvoOl75_83eXSqpPSRFJ_u",
websiteURL: "https://2captcha.com/demo/recaptcha-v2",
//your proxy credentials
proxyAddress: "1.2.3.4", //required. string
proxyPort: 8080, //required. number
proxyType: "http", //required. 'http' or 'socks4' or 'socks5'
proxyLogin: "user", //optional. string
proxyPassword: "p4$$w0rd" //optional. string
});
Features
- Supports all captcha types, solutions and methods from 2captcha docs (updated at Feb. 2024)
- TypeScript-first design
- Automatically waits for solution
- Fully tested task payloads
Currently supported task payloads
What 'custom' does mean? Custom means that the parameters and solutions have been narrowed down from the official documentation from more general cases. However, you can still use classes strictly according to the official documentation.
- Classification:
- Token:
- RecaptchaV2Task | RecaptchaV2TaskProxyLess
- RecaptchaV2EnterpriseTask | RecaptchaV2EnterpriseTaskProxyLess
- RecaptchaV3TaskProxyless
- HCaptchaTask | HCaptchaTaskProxyLess
- FunCaptchaTask | FunCaptchaTaskProxyLess
-
GeeTestTask | GeeTestTaskProxyLess
- Custom - GeeTestV3Task | GeeTestV3TaskProxyLess
- Custom - GeeTestV4Task | GeeTestV4TaskProxyLess
- TurnstileTask | TurnstileTaskProxyLess
- CapyTask | CapyTaskProxyLess
- KeyCaptchaTask | KeyCaptchaTaskProxyLess
- LeminTask | LeminTaskProxyLess
- AmazonTask | AmazonTaskProxyLess
- AntiCyberSiAraTask | AntiCyberSiAraTaskProxyLess
- MtCaptchaTask | MtCaptchaTaskProxyLess
- CutCaptchaTask | CutCaptchaTaskProxyLess
- DataDomeSliderTask
- FriendlyCaptchaTask | FriendlyCaptchaTaskProxyLess