Using npm:
npm install node-capsolver
Using yarn:
yarn add node-capsolver
const CapSolver = require('node-capsolver')
const fs = require('fs')
const solver = new CapSolver("CAI-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", {
verbose: true, // Optional
verboseIdentifier: "[Image Solve]" // Optional & not required when verbose: true
})
solver.getBalance().then(data => {
if (data?.balance > 0) {
solver.solve({
type: "ImageToTextTask",
body: fs.readFileSync('captcha.png') // The library will automatically convert buffers into base64 strings for you
}).then((task) => {
console.log(task.solution.text)
})
} else {
console.log("Insufficient balance.")
}
})
const CapSolver = require('node-capsolver')
const axios = require("axios").default;
const { JSDOM } = require('jsdom');
(async () => {
let demoURL = "https://www.google.com/recaptcha/api2/demo";
let resp = await axios({
method: "GET",
url: demoURL,
})
const dom = new JSDOM(resp.data)
const siteKey = dom.window.document.querySelector('#recaptcha-demo').getAttribute('data-sitekey');
const handler = new CapSolver('CAI-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', {
verbose: true // Optional
})
let b = await handler.getBalance();
if (b.balance > 0) {
let CapResponse = await handler.solve({
type: 'ReCaptchaV2TaskProxyLess',
websiteURL: demoURL,
websiteKey: `${siteKey}`,
})
console.log(CapResponse)
} else {
console.log("Insufficient balance.")
}
})();
In general, the CapSolver.solve()
function is all you need. It combines createTask() and getTaskResult() into one, meaning you don't need to worry about anything else.
async CapSolver.solve(task)
async CapSolver.createTask(task)
async CapSolver.getTaskResult(taskId)
async CapSolver.feedbackTask(taskId, result)
async CapSolver.getBalance()
When using an IDE that supports JSDoc, you will get suggestions of properties the task supports. To get the best suggestions, specify the type
first.
For the general API, check the CapSolver.com documentation.