capsolver-npm

1.0.9Β β€’Β PublicΒ β€’Β Published

capsolver.com api wrapper🧠

πŸ”₯ HCaptchaTurboTask (highest pass/valid rate). πŸ”₯ AntiCloudflare.

⬇️ Install

npm i capsolver-npm

βœ‹ Usage

  1. Import module.

     const CapSolver = require('capsolver-npm')
  2. Define tasks handler (singleton).

     const handler = new CapSolver(apikey) // captcha task handler

❗ 2 version for handle captcha tasks results are the followind:

1️⃣ task-binded methods (handle results in one step)

example: check capsolver.com balance + run for one hcaptcha token (.hcaptchaproxyless()):

const CapSolver = require('capsolver-npm')
const handler = new CapSolver('CAI-XXXX ...', 1) // verbose level 1
let b = await handler.balance()
if (b > 0) {  // usd balance
    await handler.hcaptchaproxyless('https://websiteurl.com/', '000000-000000000-0000000')
        .then(async response => {
            if (response.error === 0) {
                console.log(response.solution)
            } else {
                console.log(`[myapp][task error: ${response.apiResponse.errorCode}]`)
            }
        })
}

2️⃣ build taskData schema for a task type and run any task.

Check task parameters at official docs in order to bind manually captcha tasks.

example: run for one hcaptcha token w/ custom proxy (.runAnyTask()):

const CapSolver = require('capsolver-npm')
const handler = new CapSolver('CAI-XXXX ...')

await handler.runAnyTask({
    type: 'HCaptchaTask',
    websiteURL: 'https://website.com/',
    websiteKey: '000000-00000-000000-000000000',
    proxyInfo: {
        // string format also supported
        // 'proxy': 'proxy.provider.io:23331:user1:password1',
        'proxyType': 'http',
        'proxyAddress': 'ip_address',
        'proxyPort': 3221,
        'proxyLogin': 'username',       // not required
        'proxyPassword': 'password'     // not required
    },
})
    .then(async response => {
        if (response.error === 0) {
            console.log(response.solution)
        } else {
            console.log(`[myapp][task error: ${response.apiResponse.errorCode}]`)
        }
    })

↩️ Get solutions

All methods returns the following schema:

Parameter Type Description
error number [-1] Request/Solving error. [0] Success solve.
statusText string HTTP status string.
apiResponse object Results/solution (capsolver.com API response).
solution object Solution got from success solve.
// βœ… success response
{
    error: 0,
    statusText: '200 OK',
    apiResponse: {
        errorId: 0,
        taskId: '4e6c33f5-bc14-44d0-979e-d5f37b072c59',
        status: 'ready',
        solution: {
            gRecaptchaResponse: '03AIIukzgCys9brSNnrVbwXE9mTesvkxQ-ocK ...'
        }
    }
}
// ❌ Error response (invalid API key example)
{
    error: -1,
    statusText: '400 Bad Request',
    apiResponse: {
        errorId: 1
        errorCode: 'ERROR_INVALID_TASK_DATA',
        errorDescription: 'clientKey error',
    }
}

πŸ“– Supported captcha tasks

Method Returns
await handler.balance() get balance as float number
await handler.runAnyTask(taskData) not use a specific task method

For custom proxy usage in tasks build this schema:

// version 1
// (proxyLogin & proxyPassword are optionals)
const proxyInfo = {
    'proxyType': 'http',
    'proxyAddress': 'ip_address',
    'proxyPort': 3221,
    'proxyLogin': 'username',
    'proxyPassword': 'password'
}

// version 2
const proxyInfo = {
    proxy: 'proxyType:proxyAddress:proxyPort:proxyLogin:proxyPassword'
}

task-binded methods:

βš™οΈ Cloudflare

// * check required parameters for a website with API docs.
await handler.anticloudflare(websiteURL, proxyInfo, metadata, html)
await handler.antiturnstile(websiteURL, websiteKey, proxyInfo, metadata)

βš™οΈ HCaptcha

Parameter queries: base64 images array

await handler.hcaptcha(websiteURL, websiteKey, proxyInfo, userAgent, isInvisible, enterprisePayload)
await handler.hcaptchaproxyless(websiteURL, websiteKey, userAgent, isInvisible, enterprisePayload)
await handler.hcaptchaenterprise(websiteURL, websiteKey, proxyInfo, userAgent, isInvisible, enterprisePayload)
await handler.hcaptchaenterpriseproxyless(websiteURL, websiteKey, userAgent, isInvisible, enterprisePayload)
await handler.hcaptchaturbo(websiteURL, websiteKey, proxyInfo, userAgent, isInvisible, enterprisePayload) // proxy required

await handler.hcaptchaclassification(question, base64)

βš™οΈ ReCaptcha

await handler.recaptchav2(websiteURL, websiteKey, proxyInfo, userAgent, isInvisible, recaptchaDataSValue, cookies)
await handler.recaptchav2proxyless(websiteURL, websiteKey, userAgent = null, isInvisible = null, recaptchaDataSValue = null, cookies = null)
await handler.recaptchav2enterprise(websiteURL, websiteKey, proxyInfo, userAgent = null, enterprisePayload = null, apiDomain = null, cookies = null)
await handler.recaptchav2enterpriseproxyless(websiteURL, websiteKey, userAgent = null, enterprisePayload = null, apiDomain = null, cookies = null)
await handler.recaptchav3(websiteURL, websiteKey, proxyInfo, pageAction, minScore = null)
await handler.recaptchav3proxyless(websiteURL, websiteKey, pageAction, minScore = null)
await handler.recaptchav3enterprise(websiteURL, websiteKey, proxyInfo, pageAction, minScore = null, enterprisePayload = null, apiDomain = null, userAgent = null, cookies = null)
await handler.recaptchav3enterpriseproxyless(websiteURL, websiteKey, pageAction, minScore = null, enterprisePayload = null, apiDomain = null, userAgent = null, cookies = null)

βš™οΈ Datadome

await handler.datadome(websiteURL, userAgent, captchaUrl, proxyInfo)

βš™οΈ FunCaptcha

Parameter image: base64 screenshot image

await handler.funcaptcha(websiteURL, websitePublicKey, proxyInfo, funcaptchaApiJSSubdomain, userAgent, data)
await handler.funcaptchaproxyless(websiteURL, websitePublicKey, funcaptchaApiJSSubdomain, userAgent, data)
await handler.funcaptchaclassification(image, question)

βš™οΈ Geetest

❗ Supports for Geetest V3 & Geetest V4: Manage through GeetestTask documentation.

await handler.geetest(websiteURL, gt, challenge, proxyInfo, geetestApiServerSubdomain, captchaId)
await handler.geetestproxyless(websiteURL, gt, challenge, geetestApiServerSubdomain, captchaId)

βš™οΈ MTCaptcha

await handler.mtcaptcha(websiteURL, websiteKey, proxyInfo)
await handler.mtcaptchaproxyless(websiteURL, websiteKey)

βš™οΈ ImageToText

await handler.image2text(body)

Verbose level

// on CapSolver handler definition
const handler = new CapSolver(apikey, verbose) 

Verbose level undefined or 0: Dont print logs, just handle for solution.

Verbose level 1: Only log task status in console.

Verbose level 2: Log API response in console.

πŸ“ Working examples

Figure out here all supported captcha examples.

Package Sidebar

Install

npm i capsolver-npm

Weekly Downloads

839

Version

1.0.9

License

ISC

Unpacked Size

103 kB

Total Files

33

Last publish

Collaborators

  • qwertyy__