Pular para o conteúdo principal
Está tendo problemas para obter o token?
Entre em contato com o suporte

Cloudflare Waiting Room

Este é um novo mecanismo de proteção da Cloudflare: o usuário deve esperar em média ~3 minutos antes de acessar o recurso:

Você também pode identificar este tipo de Cloudflare pelo cabeçalho da página:

Mais sobre o tema em nosso blog
Mais sobre o tema em nosso blog
Atenção!
  • Use seus próprios proxies para esta tarefa.

  • Após resolver, você receberá cookies especiais para adicionar ao navegador.

Parâmetros da solicitação


IMPORTANTE: obtenha htmlPageBase64 imediatamente antes de criar a tarefa para evitar erros durante a resolução (veja o exemplo de obtenção de htmlPageBase64 abaixo).


type<string>required

TurnstileTask


websiteURL<string>required

A URL da página contendo a verificação


websiteKey<string>required

Chave do Cloudflare. É permitido transmitir qualquer string, por exemplo: xxxxxx.


cloudflareTaskType<string>required

wait_room


htmlPageBase64<string>required

Página HTML codificada em Base64 contendo <title>Waiting Room powered by Cloudflare</title>
Exemplo para obter htmlPageBase64:

var serializer = new XMLSerializer();
var fullHtml = serializer.serializeToString(document);

var htmlBase64 = btoa(unescape(encodeURIComponent(fullHtml)));
console.log(htmlBase64);

userAgent<string>required

Use o valor atual compatível com o CapMonster Cloud: userAgentPlaceholder

Você pode obter o valor mais recente em: https://capmonster.cloud/api/useragent/actual.


proxyType<string>required

http - proxy HTTP/HTTPS normal;
https - use se http não funcionar (necessário para alguns proxies personalizados);
socks4 - proxy SOCKS4;
socks5 - proxy SOCKS5.


proxyAddress<string>required

Endereço IP do proxy (IPv4/IPv6). Não permitido:

  • Proxies transparentes
  • Proxies da máquina local


proxyPort<integer>required

Porta do proxy.


proxyLogin<string>required

Login do proxy.


proxyPassword<string>required

Senha do proxy.

Método de criação da tarefa

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

Exemplo de requisição

{
"clientKey": "API_KEY",
"task": {
"type": "TurnstileTask",
"websiteURL": "https://yourwebsite.com/page-with-cf-waitroom",
"websiteKey": "xxxxxxxxxx",
"cloudflareTaskType": "wait_room",
"htmlPageBase64": "PCFET0NUWVBFIGh0...vYm9keT48L2h0bWw+",
"userAgent": "userAgentPlaceholder",
"proxyType": "your-proxy-type",
"proxyAddress": "your-proxy-address",
"proxyPort": 1234,
"proxyLogin": "your-proxy-login",
"proxyPassword": "your-proxy-password"
}
}

Exemplo de resposta

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

Método de obter resultado da tarefa

Use o método getTaskResult para obter a solução do Waiting Room. Dependendo da carga do sistema, a resposta pode levar entre 5 e 20 segundos.

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

Exemplo de requisição

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

Exemplo de resposta

{
"errorId": 0,
"status": "ready",
"solution": {
"cf_clearance": "1tarGvbY2_ZhQdYxpSBloao.FoOn9VtcJtmb_IQ_hCE-1761217338-1.2.1.1-vyVPoLYIGX0VCJomVuLjF7n0kdM0PXaPjpDsRcohxGr7hb2CE7WfcHpmQZ70goqEjdWxPsDhSVaKNTz9opxWguiNdWEEq_.SceWXIqfP7tnEb69f3bP0mixNqcWy_5P_9INpoAEqr1k7aYU0r45PT4gPr5pwHxedVySyLRdoBXIJasdTE52YOQ3NPdGWTwQ_3h2n_wYqqIvf0kCSAvimRrmsgZxomlyejwqPI6ZHi.w"
}
}
PropertyTypeDescription
cf_clearanceStringCookies especiais do Cloudflare que você pode definir no seu navegador

Usar biblioteca SDK

Mostrar código (para navegador)
// https://github.com/CapMonsterCloud/capmonster-nodejs-captcha-solver

import {
CapMonsterCloudClientFactory,
ClientOptions,
TurnstileRequest
} from "@zennolab_com/capmonstercloud-client";

document.addEventListener("DOMContentLoaded", async () => {

const API_KEY = "YOUR_API_KEY"; // Informe sua chave de API do CapMonster Cloud

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

// O Cloudflare Waiting Room só pode ser resolvido usando seu próprio proxy
const proxy = {
proxyType: "http",
proxyAddress: "123.45.67.89",
proxyPort: 8080,
proxyLogin: "username",
proxyPassword: "password",
};

const turnstileRequest = new TurnstileRequest({
websiteURL: "https://yourwebsite.com/page-with-waiting-room",
websiteKey: "xxxxxxxxxx",
cloudflareTaskType: "wait_room",
proxy,
htmlPageBase64: "your_html_page_base64",
userAgent: "userAgentPlaceholder",
});

// Se necessário, você pode verificar o saldo
const balance = await client.getBalance();
console.log("Balance:", balance);

const result = await client.Solve(turnstileRequest);
console.log("Solution:", result.solution);
});
Mostrar código (Node.js)
// https://github.com/CapMonsterCloud/capmonster-nodejs-captcha-solver

const {
CapMonsterCloudClientFactory,
ClientOptions,
TurnstileRequest,
} = require("@zennolab_com/capmonstercloud-client");

const API_KEY = "YOUR_API_KEY"; // Informe sua chave de API do CapMonster Cloud

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

// O Cloudflare Waiting Room só pode ser resolvido usando seu próprio proxy
const proxy = {
proxyType: "http",
proxyAddress: "123.45.67.89",
proxyPort: 8080,
proxyLogin: "username",
proxyPassword: "password",
};

const turnstileRequest = new TurnstileRequest({
websiteURL: "https://yourwebsite.com/page-with-waiting-room",
websiteKey: "xxxxxxxxxx",
cloudflareTaskType: "wait_room",
proxy,
htmlPageBase64: "your_html_page_base64",
userAgent: "userAgentPlaceholder",
});

// Se necessário, você pode verificar o saldo
const balance = await client.getBalance();
console.log("Balance:", balance);

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

solveTurnstileWaitRoom().catch(console.error);