Skip to main content
Are you experiencing issues obtaining the token?
Contact support

Basilisk - FaucetPay Captcha

Attention!

CapMonster Cloud uses built-in proxies by default — their cost is already included in the service. You only need to specify your own proxies in cases where the website does not accept the token or access to the built-in services is restricted.

If you are using a proxy with IP authorization, make sure to whitelist the address 65.21.190.34.

Request parameters

type<string>required

CustomTask


class<string>required

Basilisk


websiteURL<string>required

The address of the main page where the captcha is solved.


websiteKey<string>required

Can be found in the HTML code in the attribute data-sitekey of the captcha container
or in the payload of a POST request to
https://basiliskcaptcha.com/challenge/check-site in the field site_key.


userAgent<string>optional

Browser User-Agent.
Pass only a valid UA from Windows OS. Currently it is: userAgentPlaceholder


proxyType<string>optional
  • http — standard http/https proxy
  • https — try this if "http" doesn't work (needed for some custom proxies)
  • socks4 — socks4 proxy
  • socks5 — socks5 proxy

proxyAddress<string>optional

IP address of the proxy (IPv4/IPv6). Not allowed:

  • transparent proxies (those exposing the client IP)
  • local machine proxies

proxyPort<integer>optional

Proxy port.


proxyLogin<string>optional

Proxy login.


proxyPassword<string>optional

Proxy password.


Create task method

POST
https://api.capmonster.cloud/createTask

Request

{
"clientKey": "API_KEY",
"task": {
"type": "CustomTask",
"class": "Basilisk",
"websiteURL": "https://domain.io/account/register",
"websiteKey": "b7890hre5cf2544b2759c19fb2600897",
"userAgent": "userAgentPlaceholder"
}
}

Response

{
"errorId": 0,
"taskId": 407533072
}

Get task result method

Use the method getTaskResult, to get the Basilisk solution.

POST
https://api.capmonster.cloud/getTaskResult

Request

{
"clientKey":"API_KEY",
"taskId": 407533072
}

Response

{
"errorId":0,
"status":"ready",
"solution": {
"data": {
"captcha_response": "5620301f30daf284b829fba66fa9b3d0"
},
"headers": {
"User-Agent": "userAgentPlaceholder"
}
}
}

How to find all required parameters for task creation

Manually

  1. Open your website where the captcha appears in the browser.
  2. Right-click on the captcha element and select Inspect.

websiteKey

In the Network tab, filter requests using keywords related to captchas, such as site_key. These requests will contain the site_key parameter – a value used to identify the website during the captcha solving process:

site-key-basilisk

Automatically

To automate parameter extraction, you can retrieve them via a browser (regular or headless, e.g., using Playwright) or directly from HTTP requests. Since dynamic parameter values are short-lived, it is recommended to use them immediately after retrieval.

Important!

The provided code snippets are basic examples for learning how to extract the required parameters. The exact implementation will depend on your captcha page, its structure, and the HTML elements and selectors used.

Show code (for browser)
// Look for an element with the data-sitekey attribute
const captchaElement = document.querySelector('[data-sitekey]');

// Extract the sitekey value
if (captchaElement) {
const siteKey = captchaElement.getAttribute('data-sitekey');
console.log('Found site-key:', siteKey);
} else {
console.log('site-key not found');
}
Show code (Node.js)
import { chromium } from 'playwright';

async function extractSiteKey() {
const browser = await chromium.launch({ headless: true });
const page = await browser.newPage();

const url = 'https://example.com';
await page.goto(url);

// Look for an element with the data-sitekey attribute
const captchaElement = await page.$('[data-sitekey]');

// Extract the sitekey value
if (captchaElement) {
const siteKey = await captchaElement.getAttribute('data-sitekey');
console.log('Found site-key:', siteKey);
} else {
console.log('site-key not found');
}

await browser.close();
}

extractSiteKey();

Use the SDK library

Show code (for browser)
// https://github.com/ZennoLab/capmonstercloud-client-js

import { CapMonsterCloudClientFactory, ClientOptions, BasiliskRequest } from '@zennolab_com/capmonstercloud-client';

const API_KEY = "YOUR_API_KEY"; // Specify your CapMonster Cloud API key

document.addEventListener("DOMContentLoaded", async () => {
const client = CapMonsterCloudClientFactory.Create(
new ClientOptions({ clientKey: API_KEY })
);

// Basic example without proxy
// CapMonster Cloud automatically uses its own proxies
let basiliskRequest = new BasiliskRequest({
websiteURL: "https://example.com", // URL of the page with Basilisk
websiteKey: "websiteKey" // Replace with the correct value
});

// Example of using your own proxy
// Uncomment this block if you want to use a custom proxy
/*
const proxy = {
proxyType: "http",
proxyAddress: "123.45.67.89",
proxyPort: 8080,
proxyLogin: "username",
proxyPassword: "password"
};

basiliskRequest = new BasiliskRequest({
websiteURL: "https://example.com",
websiteKey: "b3760bfe5cf4254b2759c19fg2698og",
proxy,
userAgent: "userAgentPlaceholder"
});
*/

// Optionally, you can check the balance
const balance = await client.getBalance();
console.log("Balance:", balance);

const result = await client.Solve(basiliskRequest);
console.log("Solution:", result);
});
Show code (Node.js)
// https://github.com/ZennoLab/capmonstercloud-client-js

import { CapMonsterCloudClientFactory, ClientOptions, BasiliskRequest } from '@zennolab_com/capmonstercloud-client';

const API_KEY = "YOUR_API_KEY"; // Specify your CapMonster Cloud API key

async function solveBasilisk() {
const client = CapMonsterCloudClientFactory.Create(
new ClientOptions({ clientKey: API_KEY })
);

// Basic example without proxy
// CapMonster Cloud automatically uses its own proxies
let basiliskRequest = new BasiliskRequest({
websiteURL: "https://example.com", // URL of the page with Basilisk
websiteKey: "b3760bfe5cf4254b2759c19fg2698og" // Replace with the correct value
});

// Example of using your own proxy
// Uncomment this block if you want to use a custom proxy
/*
const proxy = {
proxyType: "http",
proxyAddress: "123.45.67.89",
proxyPort: 8080,
proxyLogin: "username",
proxyPassword: "password"
};

basiliskRequest = new BasiliskRequest({
websiteURL: "https://example.com",
websiteKey: "b3760bfe5cf4254b2759c19fg2698og",
proxy,
userAgent: "userAgentPlaceholder"
});
*/

// Optionally, you can check the balance
const balance = await client.getBalance();
console.log("Balance:", balance);

const result = await client.Solve(basiliskRequest);
console.log("Solution:", result);
}

solveBasilisk().catch(console.error);