Docs: https://2captcha.com/api-docs
-
npm
$ npm i @captcha-libs/twocaptcha
- pnpm
$ pnpm i @captcha-libs/twocaptcha
- yarn
$ yarn add @captcha-libs/twocaptcha
//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()
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
});
- Supports all captcha types, solutions and methods from CapSolver docs (updated at June 2024)
- TypeScript-first design
- Automatically waits for solution
- Fully tested 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
- AtbCaptchaTask | AtbCaptchaTaskProxyLess
- TencentTask | TencentTaskProxyLess