Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@captcha-libs/twocaptcha

blackravenx29ISC2.0.1TypeScript support: included

TwoCaptcha NodeJS client, captcha recognition service

TwoCaptcha, Captcha recognition, Captcha solving, ReCaptcha captcha, DataDome captcha, HCaptcha captcha, GeeTest captcha, FriendlyCaptcha, FunCaptcha, KeyCaptcha, CutCaptcha, CapyCaptcha, AntiCyberSiAra captcha, MtCaptcha, AWS WAF captcha, Cloudflare captcha, Tencent captcha, ATB captcha

readme

2Captcha logo{: width="50px"}

2captcha NodeJS captcha client - use 2captcha with ease

Donate GitHub stars 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 CapSolver docs (updated at June 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.

  1. Classification:
  2. Token:

Looking for another captcha recognition service? Check our other libraries: