logo
bars
Paiement par résolution · API

Solveur Cloudflare Challenge

CapMonster Cloud est un solveur Cloudflare Challenge avec un API. Il renvoie un cookie token ou cf_clearance, afin que votre automatisation se poursuive sans étape manuelle.

Dernière mise à jour:

Testez-le gratuitement : solde de test de 0,10 $ ↓
Temps de résolution moyen
12 – 14 s
Taux de réussite
99%
pour 1000 jetons
$ 1.30

Tarifs du solveur Cloudflare Challenge

CAPTCHA
Prix (USD)
$ 1.30
1000 jetons
Choisir Cloudflare Challenge ou tourniquet

Cloudflare Challenge contre Cloudflare Turnstile

Comment distinguer le défi du tourniquet

Un Cloudflare Challenge et un widget Turnstile peuvent se ressembler. Un défi n'est pas toujours une page distincte « Juste un instant… » : il peut être stylisé, intégré au site ou conçu pour ressembler à un widget Turnstile classique, de sorte que vous ne pouvez pas les distinguer par leur apparence.

Quel solveur CapMonster Cloud utiliser

Cloudflare Turnstile

widget
Où tu le vois
Un widget dans une page ou un formulaire
Ce qu'il retourne
Un token dans cf-turnstile-response
Page CapMonster
Solveur Cloudflare Turnstile

Cloudflare Challenge

403 · challenge-form
Où tu le vois
Un chèque stylisé intégré au site ou une page interstitielle ; identifié par un 403 à la première demande et un challenge-form avec __cf_chl_f_tk=
Ce qu'il retourne
Un cookie token ou un cookie cf_clearance
Page CapMonster
Cette page : Solveur Cloudflare Challenge

Si ces signes sont présents, il s'agit d'un Cloudflare Challenge : utilisez le solveur Cloudflare Challenge sur cette page, qui renvoie un cookie token ou un cookie cf_clearance. Sinon, utilisez le solveur Cloudflare Turnstile.

Comparaison des solveurs Cloudflare Challenge

Le tableau indique le prix pour 1 000 résolutions, le temps de résolution moyen et le taux de réussite de résolution pour quatre services de résolution Cloudflare Challenge.

ParamètreCapMonster Cloud2CaptchaAnti-CaptchaMeilleurCaptchaSolver
Prix pour 1000 solutions
$ 1.30$1.45$2.00$1.80
Temps de résolution moyen
12 – 14 s14 – 18 s18 – 22 s22 – 30 s
Taux de réussite en résolution
99%97%95%80%

Prix Cloudflare Turnstile indiqué par le fournisseur ; Cloudflare Challenge n’est pas répertorié séparément.

2Captcha, Anti-Captcha et BestCaptchaSolver sont des marques commerciales de leurs propriétaires respectifs. CapMonster Cloud n'est pas affilié à ces entités. Les mesures de performance sont basées sur une analyse comparative interne réalisée le 26.08.2026. Les comparaisons de prix sont basées sur des données accessibles au public à partir de 30.09.2026.

Testez-le gratuitement

Résolvez Cloudflare Challenge en quelques secondes

99% de passes réussies. Testez dès maintenant la stabilité sur vos propres sites cibles. Nous ne garantissons pas un taux de réussite de 100 % : les types de CAPTCHA et la configuration du site cible peuvent changer à tout moment.

$0.10

Les nouveaux utilisateurs reçoivent un solde de test de 0,10 $ pour essayer CapMonster Cloud.

  1. 1. Inscrivez-vous sur CapMonster Cloud.

  2. 2. Contactez le support via le chat en direct ou support@capmonster.cloud avec l’e-mail lié à votre compte.

Pas de carte de crédit · SDK prêts à l'emploi pour Python, Node.js, C#

Pour quelles équipes utilisent la résolution Cloudflare Challenge

Assurance qualité et tests de bout en bout

Exécutez les flux d'inscription, de paiement et de formulaire dans CI/CD avec Playwright, Puppeteer ou Selenium sur les pages que vous possédez ou que vous êtes autorisé à tester.

Surveillance

Vérifiez que les pages derrière Cloudflare Challenge restent accessibles après les versions et les modifications de règles.

Données accessibles au public

Collectez des données accessibles au public à partir de pages ouvertes protégées par un Cloudflare Challenge.

Accessibilité

Prend en charge les flux de travail d'assistance automatisés sur les sites qui affichent une page de vérification avant le chargement.

Agents IA

Permettez à un agent de demander un cookie token ou cf_clearance via MCP lorsqu'un flux de travail atteint un défi.

Utilisation légitime uniquement

Utilisez CapMonster Cloud pour les données accessibles au public et sur les sites que vous possédez ou que vous êtes autorisé à tester. La collecte de données tierces derrière un identifiant ou un paywall sans autorisation est interdite.

Types de défis Cloudflare

Comment le Cloudflare émet et vérifie les défis

Cloudflare propose trois types de pages de défi : JS Challenge, Managed Challenge et Interactive Challenge. Le fait qu'un défi soit affiché est décidé par les règles WAF ou Bot Management. CapMonster Cloud couvre les trois types de défis ci-dessous ; WAF / Bot Management est un produit plus large et est répertorié séparément.

Sources : Documentation Cloudflare — Comment fonctionnent les défis · Pages de défi interstitielles · En mode Attaque

"Défi de 5 secondes"

1. JS Challenge

Un test interstitiel non interactif : le navigateur exécute JavaScript et Cloudflare note le résultat avant le chargement de la page. Aucun utilisateur action n’est requis.

Où elle apparaît
Page intermédiaire avec une vérification en arrière-plan
Résultat renvoyé
Cookie cf_clearance (par défaut)

y compris Under Attack Mode

2. Managed Challenge

Avec Cloudflare Managed Challenge, Cloudflare sélectionne dynamiquement le contrôle à partir des caractéristiques de la demande et des signaux du navigateur. Under Attack Mode utilise Managed Challenge.

Où elle apparaît
Page intermédiaire dont Cloudflare choisit le type de vérification
Résultat renvoyé
Cookie cf_clearance (par défaut)

widget sur la page interstitielle

3. Interactive Challenge

Les pages Interactive Challenge nécessitent qu'un visiteur interagisse avec le défi pour réussir.

Où elle apparaît
Page intermédiaire avec une vérification interactive obligatoire
Résultat renvoyé
Cookie cf_clearance (par défaut)

4. WAF / Bot Management

Couche de règles et de notation qui décide quand un défi de robot Cloudflare est lancé. Cloudflare calcule cette décision à l'aide de moteurs de détection, notamment :

Où elle apparaît
Couche de règles de traitement des requêtes et d’évaluation du risque
Résultat renvoyé
Ne renvoie rien en elle-même : selon le score de risque, déclenche une des actions ci-dessus (ou un blocage)

Plus large que les trois types de défis et n’en est pas synonyme.

  • Heuristics engine compare chaque requête à une base de données d'empreintes digitales de robots connues.
  • JS Detections engine une vérification JavaScript facultative et invisible côté client qui signale les navigateurs sans tête.
  • Machine Learning engine un modèle supervisé qui produit le Bot Score, compris entre 1 et 99, à partir de modèles répartis sur des milliards de requêtes quotidiennes.

Sources : Scores des robots · Moteurs de détection de robots · Détections JavaScript

Flux de travail Cloudflare Challenge

  1. 1. Demande

    Le navigateur demande une page protégée. Cloudflare Bot Management évalue la demande en fonction de l'empreinte digitale TLS, de la réputation IP et des signaux comportementaux.

  2. 2. Score du robot

    Les moteurs d'heuristique, de détection JS et d'apprentissage automatique produisent le Bot Score de 1 à 99, et les règles WAF décident de répondre ou non à un défi.

  3. 3. Page interstitielle

    Si la demande semble suspecte, Cloudflare renvoie la page « Juste un instant… » avec le code d'état 403 et exécute JS Challenge, Managed Challenge ou Interactive Challenge.

  4. 4. cf_clearance

    Lorsque le contrôle réussit, Cloudflare émet un cookie cf_clearance lié au visiteur et à l'appareil et valable pour une durée limitée.

  5. 5. Accès

    Le navigateur charge la page d'origine avec le cookie. Cloudflare continue de réévaluer le comportement de la session (Precursor clearance) et peut constituer un nouveau défi.

Qu'est-ce que le cookie cf_clearance ?

cf_clearance est le cookie Cloudflare émis après qu'un visiteur passe un Cloudflare Challenge. Le navigateur l'envoie avec les requêtes suivantes au site protégé et la page s'ouvre sans contestation répétée.

Propriétés du cookie, selon Documentation de Cloudflare :

Visiteur et appareil

Lié au visiteur et à l’appareil auquel il a été délivré.

Durée de vie

Valable pour une durée limitée (30 minutes par défaut ; le site le définit avec Challenge Passage) : un script à exécution longue doit réussir à nouveau le contrôle une fois son expiration terminé.

Vérification d'accès

Ce n'est pas une garantie en soi : Precursor clearance réévalue en permanence le comportement de la session et peut déclencher une contestation répétée même si le cookie n'a pas expiré.

Qu'est-ce qui invalide un cookie cf_clearance

Reliure

Changement de visiteur ou d'appareil

L'accès est réinitialisé : le cookie est lié au visiteur et à l'appareil sur lequel il a été émis

Durée de vie

Expiration

Le cookie cesse de fonctionner ; le script doit réussir à nouveau le contrôle

Comportement

Precursor clearance

Cloudflare peut réduire ou réinitialiser le niveau d'autorisation et lancer un défi répété si le trafic semble suspect

Token ou cf_clearance : quel résultat demander

Pour les développeurs utilisant CapMonster Cloud pour obtenir un token ou un cf_clearance

Le paramètre cloudflareTaskType de TurnstileTask décide de ce que CapMonster Cloud renvoie. Choisissez l'option en fonction de ce que nécessite le site cible : un token pour le challenge callback sur la page, ou un cookie cf_clearance pour vos demandes ultérieures.

Jeton et cf_clearance

ParamètreJetoncf_clearance
cloudflareTaskTypetokencf_clearance
MandataireFacultatif s'exécute par défaut sur les proxys CapMonster CloudObligatoire votre propre proxy
websiteKeyClé Cloudflare Challenge, par ex. 0x4AAAAAAABUYP0XeMJF0xoyN'importe quelle chaîne, par ex. xxxxxx
Données de pagepageAction, data (cData), pageData (chlPageData)htmlPageBase64 — Base64 de la page 403 « Juste un instant »
Résultatsolution.tokensolution.cf_clearance
Où l'utiliserLe défi callback sur la pageEn-tête Cookie: cf_clearance=<value> ou contexte du navigateur

Types de proxy pris en charge (cf_clearance)

proxyTypeDescriptif
httpProxy HTTP régulier
httpsUtiliser pour certains proxys personnalisés
socks4Proxy SOCKS4
socks5Proxy SOCKS5

Référence complète des paramètres : Documentation des tâches Cloudflare Challenge.

Comment utiliser le solveur Cloudflare Challenge

Le CapMonster Cloud API agit comme un solveur cf_clearance : il accepte les paramètres de la tâche, les traite sur ses serveurs et renvoie un cookie token ou cf_clearance. La résolution d'un Cloudflare Challenge nécessite quatre étapes : obtenir une clé API, envoyer la tâche, interroger le résultat et utiliser le token ou le cookie renvoyé dans vos propres requêtes.

Votre scénarioCapMonster Cloud APISite cible

Obtenez votre clé API

  • Créez un compte dans CapMonster Cloud.
  • Ouvrez le tableau de bord et recherchez votre clé API.
  • Utilisez cette clé comme paramètre clientKey dans vos requêtes.

Envoyer une tâche — createTask

Appelez createTask avec le type TurnstileTask. Le paramètre cloudflareTaskType décide de ce que vous obtenez en retour : un token ou un cf_clearance cookie. Choisissez l'option en fonction des besoins du site cible. Voir Comment distinguer le défi du tourniquet.

Option 1 · Défi (token) — s'exécute par défaut sur les proxys CapMonster Cloud. Champs obligatoires :

ParamètreDescriptif
tapezTurnstileTask
websiteURLURL de la page où le défi est résolu
websiteKeyClé Cloudflare Challenge, par ex. 0x4AAAAAAABUYP0XeMJF0xoy
cloudflareTaskTypetoken
pageActionLe champ action du captcha callback, généralement managed ou non-interactive
userAgentUA actuel pris en charge par CapMonster Cloud. Vous pouvez obtenir la dernière valeur sur https://capmonster.cloud/api/useragent/actual.
donnéesValeur du paramètre cData
pageDataValeur du paramètre chlPageData

Facultatif : apiJsUrl et les champs proxy. Les propres proxys ne sont nécessaires que lorsque le site n'accepte pas le token ou que les services intégrés sont restreints ; avec autorisation IP, liste blanche 65.21.190.34.

Exemple de demande :

json
{
  "clientKey": "API_KEY",
  "task": {
    "type": "TurnstileTask",
    "websiteURL": "https://yourwebsite.com/page-with-cf-challenge",
    "websiteKey": "your-website-key",
    "cloudflareTaskType": "token",
    "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/156.0.0.0 Safari/537.36",
    "pageAction": "your-page-action",
    "pageData": "your-page-data",
    "data": "your-data"
  }
}

Option 2 · Défi (cookie) — nécessite votre propre proxy. Champs obligatoires :

ParamètreDescriptif
tapezTurnstileTask
websiteURLURL de la page où le défi est résolu
websiteKeyN'importe quelle chaîne peut être transmise, par ex. xxxxxx
cloudflareTaskTypecf_clearance
htmlPageBase64Base64 de la page « Juste un instant » renvoyé avec le statut 403
userAgentUA actuel pris en charge par CapMonster Cloud. Vous pouvez obtenir la dernière valeur sur https://capmonster.cloud/api/useragent/actual.
proxyTypehttp, https (pour certains proxys personnalisés), socks4, socks5
proxyAddress, proxyPort, proxyLogin, proxyPasswordVotre mandataire. Les proxys transparents et locaux ne sont pas autorisés.

Exemple de demande :

json
{
  "clientKey": "API_KEY",
  "task": {
    "type": "TurnstileTask",
    "websiteURL": "https://yourwebsite.com/page-with-cf-challenge",
    "websiteKey": "xxxxxxxxxx",
    "cloudflareTaskType": "cf_clearance",
    "htmlPageBase64": "PCFET0NUWVBFIGh0...vYm9keT48L2h0bWw+",
    "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/156.0.0.0 Safari/537.36",
    "proxyType": "your-proxy-type",
    "proxyAddress": "your-proxy-address",
    "proxyPort": 1234,
    "proxyLogin": "your-proxy-login",
    "proxyPassword": "your-proxy-password"
  }
}

Point de terminaison et réponse – identiques pour les deux options :

text
POST https://api.capmonster.cloud/createTask
{
  "errorId": 0,
  "taskId": 407533072,
  "errorCode": null,
  "errorDescription": null
}

Sondez le résultat — getTaskResult

Interrogez getTaskResult avec le taskId jusqu'à ce que status devienne ready. La demande est identique pour les deux options ; l'objet solution contient le résultat que vous avez demandé.

Point de terminaison et demande :

text
POST https://api.capmonster.cloud/getTaskResult
{
  "clientKey": "API_KEY",
  "taskId": 407533072,
  "errorCode": null,
  "errorDescription": null
}

Option 1 · Défi (token) — solution.token

json
{
  "errorId": 0,
  "status": "ready",
  "solution": {
    "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/156.0.0.0 Safari/537.36",
    "token": "0.iGX3xsyFCkbGePM3jP4P4khLo6TrLukt8ZzBvwuQOvbC...f61f3082"
  }
}

Utilisez le token lors de l'appel de la fonction callback sur la page.

Option 2 · Défi (cookie) — solution.cf_clearance

json
{
  "errorId": 0,
  "status": "ready",
  "solution": {
    "cf_clearance": "1tarGvbY2_ZhQdYxpSBloao.FoOn9VtcJtmb_IQ_hCE-1761217338-1.2.1.1-vyVPoLYIGX0...ZHi.w"
  }
}

Cookie spécial Cloudflare que vous ajoutez à votre navigateur ou envoyez avec des requêtes HTTP brutes.

Utilisez le token ou le cookie renvoyé

Si vous utilisez le cookie, transmettez sa valeur dans l'en-tête Cookie: cf_clearance=<value> sur les requêtes brutes HTTP, ou définissez-la dans le contexte du navigateur avant de demander à nouveau l'URL protégée.

Si vous utilisez le token, transmettez-le au défi callback sur la page.

Comment trouver les paramètres Cloudflare Challenge

L'option token nécessite les valeurs que la page transmet à turnstile.render lorsque le défi démarre : sitekey (websiteKey), action (pageAction), cData (données) et chlPageData (pageData). L'option cookie nécessite le HTML de la page du défi dans htmlPageBase64 ; websiteKey peut être n’importe quelle chaîne.

Comment trouver les paramètres Cloudflare Challenge
javascript
(function () {
  const obj = {
    render: function () {
      const { action, cData, chlPageData } = arguments[1];
      console.table([["action", action], ["data", cData], ["pageData", chlPageData]]);
    }
  };
  Object.defineProperty(window, "turnstile", { get: () => obj });
})();
sitekey → websiteKey
action → pageAction
cData → data
chlPageData → pageData
  1. Exécutez ce JavaScript avant le chargement des autres scripts de la page : il remplace window.turnstile et imprime les paramètres transmis à render.

  2. Lisez action (pageAction), cData (données) et chlPageData (pageData) à partir du tableau de la console ; sitekey (websiteKey) est transmis dans le même objet. pageAction est généralement managed ou non-interactive.

  3. Pour collecter automatiquement les valeurs, utilisez un navigateur contrôlé par Playwright (régulier ou sans tête) : enveloppez window.turnstile dans un Proxy et interceptez render. Des exemples prêts dans JavaScript, Python et C# se trouvent dans la documentation.

  4. Certaines valeurs changent à chaque rendu de la page de défi, alors créez la tâche juste après les avoir collectées.

javascript
fetch('https://example.com')
  .then(res => res.arrayBuffer())
  .then(buf => console.log(btoa(String.fromCharCode(...new Uint8Array(buf)))));
  1. Demander le site protégé ; il renvoie la page « Juste un instant… » avec le code d'état 403.

  2. Encodez cette page dans Base64 — il s'agit de htmlPageBase64 (l'extrait montre un sens ; des exemples de Playwright avec page.content() se trouvent dans la documentation).

  3. Transmettez n'importe quelle chaîne sous la forme websiteKey (par exemple xxxxxx) et utilisez votre propre proxy.

  4. Créez la tâche juste après avoir collecté les valeurs.

Solveur Cloudflare Challenge avec SDK officiel

CapMonster Cloud fournit des bibliothèques prêtes à l'emploi pour un travail pratique dans Python, JavaScript (Node.js) et C#.
Vous trouverez ci-dessous des exemples de code montrant comment créer une tâche de résolution de CAPTCHA avec createTask et récupérer le résultat avec getTaskResult à l'aide de nos bibliothèques clientes.
SDK officiels
Python
python
import asyncio
from capmonstercloudclient import CapMonsterClient, ClientOptions
from capmonstercloudclient.requests import TurnstileRequest
API_KEY = "YOUR_API_KEY"
async def solve_turnstile_challenge():
    client = CapMonsterClient(options=ClientOptions(api_key=API_KEY))
    # Exemple de base sans proxy ; CapMonster Cloud utilise automatiquement ses propres proxys
    turnstile_request = TurnstileRequest(
        websiteURL="https://yourwebsite.com/page-with-cf-challenge",
        websiteKey="your-website-key",
        data="your-data",
        pageAction="managed",
        cloudflareTaskType="token",
        pageData="your-page-data",
        userAgent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/156.0.0.0 Safari/537.36",
    )
    balance = await client.get_balance()
    print("Balance:", balance)
    result = await client.solve_captcha(turnstile_request)
    print("Solution:", result)
asyncio.run(solve_turnstile_challenge())
python
import asyncio
from capmonstercloudclient import CapMonsterClient, ClientOptions
from capmonstercloudclient.requests import TurnstileRequest
from capmonstercloudclient.requests.proxy_info import ProxyInfo
API_KEY = "YOUR_API_KEY"
async def main():
    client = CapMonsterClient(options=ClientOptions(api_key=API_KEY))
    # Cloudflare cf_clearance ne peut être résolu qu'en utilisant votre propre proxy
    proxy = ProxyInfo(proxyType="http", proxyAddress="123.45.67.89", proxyPort=8080, proxyLogin="username", proxyPassword="password")
    turnstile_request = TurnstileRequest(
        websiteURL="https://yourwebsite.com/page-with-cf-challenge",
        websiteKey="your-website-key",
        cloudflareTaskType="cf_clearance",
        proxy=proxy,
        htmlPageBase64="your_html_page_base64",
        userAgent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/156.0.0.0 Safari/537.36",
    )
    balance = await client.get_balance()
    print("Balance:", balance)
    result = await client.solve_captcha(turnstile_request)
    print("Solution:", result)
asyncio.run(main())
Node.js
javascript
const { CapMonsterCloudClientFactory, ClientOptions, TurnstileRequest } = require("@zennolab_com/capmonstercloud-client");
const API_KEY = "YOUR_API_KEY";
(async () => {
  const client = CapMonsterCloudClientFactory.Create(new ClientOptions({ clientKey: API_KEY }));
  // Exemple de base sans proxy ; CapMonster Cloud utilise automatiquement ses propres proxys
  const turnstileRequest = new TurnstileRequest({
    websiteURL: "https://yourwebsite.com/page-with-cf-challenge",
    websiteKey: "your-website-key",
    data: "your-data",
    pageAction: "managed",
    cloudflareTaskType: "token",
    pageData: "your-page-data",
    userAgent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/156.0.0.0 Safari/537.36",
  });
  const balance = await client.getBalance();
  console.log("Balance:", balance);
  const result = await client.Solve(turnstileRequest);
  console.log("Solution:", result.solution);
})();
javascript
const { CapMonsterCloudClientFactory, ClientOptions, TurnstileRequest } = require("@zennolab_com/capmonstercloud-client");
const API_KEY = "YOUR_API_KEY";
async function solveTurnstileCfClearance() {
  const client = CapMonsterCloudClientFactory.Create(new ClientOptions({ clientKey: API_KEY }));
  // Cloudflare cf_clearance ne peut être résolu qu'en utilisant votre propre 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-cf-challenge",
    websiteKey: "xxxxxxx",
    cloudflareTaskType: "cf_clearance",
    proxy,
    htmlPageBase64: "your_html_page_base64",
    userAgent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/156.0.0.0 Safari/537.36",
  });
  const balance = await client.getBalance();
  console.log("Balance:", balance);
  const result = await client.Solve(turnstileRequest);
  console.log("Solution:", result.solution);
}
solveTurnstileCfClearance().catch(console.error);
C#
csharp
using System;
using System.Threading.Tasks;
using Zennolab.CapMonsterCloud;
using Zennolab.CapMonsterCloud.Requests;
class Program
{
    static async Task Main(string[] args)
    {
        var clientOptions = new ClientOptions { ClientKey = "YOUR_API_KEY" };
        var cmCloudClient = CapMonsterCloudClientFactory.Create(clientOptions);
        // Exemple de base sans proxy ; CapMonster Cloud utilise automatiquement ses propres proxys
        var turnstileRequest = new TurnstileRequest
        {
            WebsiteUrl = "https://yourwebsite.com/page-with-cf-challenge",
            WebsiteKey = "your-website-key",
            Data = "your-data",
            PageAction = "managed",
            CloudflareTaskType = "token",
            PageData = "your-page-data",
            UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/156.0.0.0 Safari/537.36"
        };
        var balance = await cmCloudClient.GetBalanceAsync();
        Console.WriteLine("Balance: " + balance);
        var turnstileResult = await cmCloudClient.SolveAsync(turnstileRequest);
        Console.WriteLine("Solution: " + turnstileResult.Solution.Value);
    }
}
csharp
using System;
using System.Threading.Tasks;
using Zennolab.CapMonsterCloud;
using Zennolab.CapMonsterCloud.Requests;
class Program
{
    static async Task Main(string[] args)
    {
        var clientOptions = new ClientOptions { ClientKey = "YOUR_API_KEY" };
        var cmCloudClient = CapMonsterCloudClientFactory.Create(clientOptions);
        // Cloudflare cf_clearance ne peut être résolu qu'en utilisant votre propre proxy
        var turnstileRequest = new TurnstileRequest
        {
            WebsiteUrl = "https://yourwebsite.com/page-with-cf-challenge",
            WebsiteKey = "your-website-key",
            CloudflareTaskType = "cf_clearance",
            HtmlPageBase64 = "your_html_page_base64",
            UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/156.0.0.0 Safari/537.36",
            Proxy = new ProxyContainer("123.45.67.89", 8080, ProxyType.Http, "username", "password")
        };
        var balance = await cmCloudClient.GetBalanceAsync();
        Console.WriteLine("Balance: " + balance);
        var turnstileResult = await cmCloudClient.SolveAsync(turnstileRequest);
        Console.WriteLine("Solution: " + turnstileResult.Solution.Clearance);
    }
}

Pour les flux de travail low-code, utilisez le CapMonster Cloud officiel nœud n8n.

Utilisation du cookie cf_clearance dans vos demandes

text
GET https://example.com/protected-page
User-Agent: <userAgent from the task>
Cookie: cf_clearance=<value>
même mandataireidem User-Agentcookie non expiré

Transmettez la valeur renvoyée dans l'en-tête Cookie: cf_clearance=<value> sur les requêtes brutes HTTP, ou définissez-la dans le contexte du navigateur avant de demander à nouveau l'URL protégée. Dans les exemples officiels, le même proxy et le même User-Agent sont utilisés pour charger la page, résoudre la tâche et envoyer la requête avec le cookie.

Dans Selenium, Playwright ou Puppeteer, définissez le cookie avec la propre méthode du framework avant de naviguer vers l'URL protégée — le navigateur ouvre ensuite la page sans contestation répétée. Si vous avez demandé un token, transmettez-le plutôt au défi callback sur la page.

Background

Erreurs Cloudflare Challenge et comment les corriger

La plupart des erreurs Cloudflare Challenge proviennent d'un cookie cf_clearance expiré ou ne correspondant pas, d'un proxy que le service n'accepte pas ou de paramètres de page obsolètes. Chaque carte ci-dessous nomme l'erreur et le correctif.
Bug Icon

Défi répété ou 403 après résolution

La demande ne contient pas de cookie cf_clearance valide, le cookie a expiré ou Cloudflare a revérifié la session (Precursor clearance). Demandez un nouveau cookie.
Bug Icon

Le proxy ou User-Agent diffère de la tâche

Utilisez le même proxy et le même userAgent que dans la tâche lors de la demande de la page protégée, comme dans les exemples officiels. Cloudflare note également qu'un Managed Challenge résolu à partir d'une adresse IP différente de celle à laquelle il a été émis n'est pas valide et peut provoquer une boucle de défi — voir la documentation Cloudflare.
Bug Icon

Cookie expiré

Le cookie est valable pour une durée limitée. Un script de longue durée doit résoudre à nouveau le défi une fois celui-ci expiré.
Bug Icon

Proxy non accepté

Utilisez http, https, socks4 ou socks5.
Bug Icon

Paramètres de page obsolètes

Certaines valeurs changent à chaque rendu de la page du défi. Extrayez-les immédiatement avant de créer la tâche.

Questions fréquemment posées sur Cloudflare Challenge

Qu'est-ce qu'un Cloudflare Challenge ?

Cloudflare Challenge est une vérification intermédiaire que Cloudflare affiche avant d'accorder l'accès à une page protégée lorsqu'une règle WAF, Bot Management ou une limitation de débit juge la demande suspecte (par exemple, sur la base d'une empreinte digitale TLS, d'une réputation IP ou de signaux comportementaux). Pendant la vérification, le visiteur voit une page intermédiaire « Juste un instant… ». Si la vérification réussit, Cloudflare émet un cookie cf_clearance — il est lié au visiteur et à l'appareil et est valable pour une durée limitée — après quoi le navigateur accède à la page d'origine.

Quelle est la différence entre JS Challenge, Managed Challenge et tourniquet ?

Tous les trois s'appuient sur les signaux côté client du navigateur. JS Challenge (non interactif) s'exécute en arrière-plan, généralement en moins de cinq secondes ; s'il n'est pas réussi, Cloudflare affiche une autre page de défi. Managed Challenge permet à Cloudflare de choisir le contrôle de manière dynamique à partir des caractéristiques de la demande et des signaux du navigateur, jusqu'à une étape interactive. Turnstile est un widget intégrable qui renvoie un token à valider via le Siteverify API ; avec l'autorisation préalable facultative, il peut également émettre un cookie cf_clearance.

Pourquoi est-ce que je continue à recevoir un Cloudflare CAPTCHA, une page de vérification ou une erreur 403 ?

Un défi répété ou un 403 signifie que la demande ne contient pas de cookie cf_clearance valide, que le cookie a expiré ou que la demande provient d'un visiteur ou d'un appareil différent de celui auquel le cookie a été émis. Même un cookie valide ne garantit pas l'accès : Cloudflare maintient Precursor clearance — une réévaluation continue du comportement de session qui peut abaisser ou réinitialiser le niveau d'autorisation et déclencher une contestation répétée si le modèle de trafic commence à paraître suspect.

Comment CapMonster Cloud résout-il un Cloudflare Challenge ?

CapMonster Cloud résout la tâche de manière asynchrone via deux appels API : createTask avec les paramètres de la tâche, suivi d'une interrogation de getTaskResult jusqu'à ce que la solution soit prête. Selon le type de tâche, le service renvoie soit un token — qui est inséré dans le callback sans proxy — soit un cookie cf_clearance, pour lequel un proxy est obligatoire. Vous transmettez ensuite la valeur résultante dans l'en-tête Cookie: cf_clearance=<value> des requêtes HTTP régulières, ou la définissez dans le contexte du navigateur, après quoi la page protégée s'ouvre sans passer manuellement la vérification.

Comment résoudre Cloudflare Challenge dans mon projet ?

Envoyez une requête POST à createTask avec votre clientKey (clé API) et les paramètres de la tâche, attendez que le résultat soit prêt en interrogeant getTaskResult (jusqu'à ce que le statut soit ready), puis utilisez le token ou le cookie résultant dans votre client HTTP ou l'automatisation de votre navigateur. Pour des intégrations prêtes à l'emploi, utilisez les SDK officiels dans les dépôts CapMonster Cloud sur GitHub : ils regroupent le cycle createTask / getTaskResult en un seul appel.

Ai-je besoin d'un proxy pour résoudre les défis Cloudflare ?

Un proxy est obligatoire uniquement pour la tâche qui renvoie un cookie cf_clearance. Dans les exemples officiels, le même proxy est ensuite utilisé pour les requêtes suivantes. Pour un résultat token, aucun proxy n'est requis — CapMonster Cloud utilise ses proxys intégrés par défaut (si vous mettez en liste blanche par IP, ajoutez 65.21.190.34). Types pris en charge : http, https, socks4, socks5 ; les proxys transparents et les proxys sur les machines locales ne sont pas autorisés.

Puis-je utiliser CapMonster Cloud comme solveur Cloudflare Challenge avec n8n ou Selenium ?

Oui. Pour n8n, il existe un nœud CapMonster Cloud officiel — installé depuis l'interface ou via npm install @zennolab_com/n8n-nodes-capmonstercloud sur des instances auto-hébergées. Dans d'autres cas, votre code envoie d'abord une requête HTTP régulière au CapMonster API (via des requêtes, axios ou tout autre client HTTP), puis le résultat est transmis au framework du navigateur (Selenium, Playwright, Puppeteer, etc.) en utilisant sa propre méthode. Le cookie cf_clearance doit être défini avec cette méthode avant de naviguer vers l'URL protégée — le navigateur ouvrira alors la page avec une vérification déjà valide, sans contestation répétée.

Est-il légal de résoudre automatiquement les défis Cloudflare ?

La résolution de Cloudflare Challenge est une opération technique, et sa licéité dépend de la manière dont l’accès qui en résulte est utilisé, et non de l’outil lui-même. CapMonster Cloud est destiné à l'automatisation juridique (tests, surveillance et collecte de données accessibles au public), tandis que la responsabilité du respect de la loi et des conditions d'utilisation de la ressource cible incombe à l'utilisateur.

CapMonster Cloud

Nous ne garantissons pas un taux de réussite de 100 % : les types de CAPTCHA et la configuration du site cible peuvent changer à tout moment. La vitesse de résolution réelle et le taux de réussite varient en fonction du site cible, de la charge du serveur et des conditions du réseau.

Cloudflare est une marque commerciale de Cloudflare, Inc. CapMonster Cloud n'est ni affilié ni approuvé par Cloudflare. Le Service est destiné aux données accessibles au public, au test de vos sites Web propres ou autorisés, à la reconnaissance d'images et à l'accessibilité. La collecte de données tierces derrière un identifiant ou un paywall sans autorisation est interdite ; vos propres comptes ne sont pas affectés. Vous déterminez le statut juridique de vos données avant de commencer à travailler.