Périmètre sûr : Ce guide s'applique exclusivement à vos propres applications, environnements de QA ou de production, ou à des systèmes pour lesquels vous disposez d'une autorisation écrite. Il ne décrit ni l'automatisation de sites tiers, ni le contournement de protections.
Un cabinet de recrutement qui interroge ses propres portails de candidatures ou des sources sous contrat finit toujours par croiser un CAPTCHA au milieu d'un job planifié. Plutôt que d'arrêter le pipeline le temps qu'un opérateur relance le formulaire, intégrez CaptchaAI comme une étape reproductible du workflow, au même titre qu'un appel HTTP. Traitez l'extension comme un maillon stable — état du compte, profil navigateur, gestionnaire de CAPTCHA et comportement après résolution — et vous supprimez l'essentiel du support.
Périmètre autorisé et conformité RGPD
Ce cas d'usage suppose un périmètre strictement autorisé : vos propres applications, ou des sources sous accord écrit. Dans le recrutement, les données manipulées sont souvent des données personnelles de candidats : minimisez ce que vous collectez et vérifiez vos obligations RGPD. Sans cette base, n'automatisez rien.
Architecture du workflow
L'orchestrateur déclenche les étapes ; CaptchaAI n'intervient qu'à celles où un défi CAPTCHA apparaît, les autres restant de simples appels HTTP. L'étape « résoudre le CAPTCHA » reste ainsi isolée, traçable et rejouable à part. Le déroulé se résume à quatre temps :
- Capturez uniquement les paramètres attendus par la famille de CAPTCHA : sitekey, URL de la page, éventuel proxy.
- Envoyez la tâche à l'API et récupérez son identifiant (
taskId). - Interrogez le résultat : attendez environ 15 secondes, puis toutes les 5 secondes, avec un plafond de 120 secondes par tâche.
- Appliquez le token dans la même session que celle qui a déclenché le défi : même contexte navigateur, même client HTTP, mêmes cookies. Une session différente cause la plupart des rejets.
Exemple de code
Exemple côté client, dans votre suite de tests :
import fetch from 'node-fetch';
const API_KEY = process.env.CAPTCHAAI_KEY;
export async function createTurnstileTask(siteKey, pageUrl) {
const res = await fetch('https://api.captchaai.com/createTask', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
clientKey: API_KEY,
task: {
type: 'TurnstileTaskProxyless',
websiteURL: pageUrl,
websiteKey: siteKey,
},
}),
});
const data = await res.json();
return data.taskId;
}
Observabilité et journalisation
Instrumentez chaque appel CAPTCHA pour obtenir des métriques exploitables :
- durée d'obtention du token ;
- code retour HTTP et identifiant de tâche ;
- taille de la file d'attente interne.
Séparez ensuite les journaux par environnement et conservez des identifiants corrélés à votre traçage distribué, par exemple via OpenTelemetry ; ces journaux divisent par deux le temps de diagnostic en cas d'incident.
Robustesse et stratégie de retry
Trois contrôles rendent le pipeline opérable : tracez les codes retour, appliquez un retry idempotent, et alertez dès qu'un écart devient durable. Bornez les tentatives à trois essais avec backoff exponentiel, puis journalisez l'échec — un retry infini masque les défauts et consomme le solde.
Liste de contrôle
- Le périmètre est limité à vos applications ou à des sources autorisées, et les données de candidats sont minimisées (RGPD).
- La clé CaptchaAI est stockée dans un secret CI ou un coffre, jamais dans le code source.
- Les durées d'appel et les codes retour sont tracés pour chaque exécution.
- Une stratégie de retry idempotente couvre les erreurs transitoires.
- Les tests sont rejouables depuis votre intégration continue.
Dépannage
| Symptôme | Cause probable | Correctif |
|---|---|---|
ERROR_WRONG_USER_KEY |
Clé copiée avec un espace parasite ou mauvais compte. | Recopiez la clé depuis le tableau de bord et stockez-la comme secret CI. |
ERROR_PAGEURL / ERROR_BAD_PARAMETERS |
Un paramètre requis est manquant ou mal formé. | Revalidez l'URL de la page et le sitekey contre le HTML réel. |
| Token refusé après résolution | Token appliqué dans une session différente de celle du défi. | Gardez la résolution et l'envoi du formulaire dans la même session. |
FAQ
Un CAPTCHA peut-il bloquer un job de recherche planifié ?
Oui, et c'est le point de rupture le plus courant. Isolez l'étape de résolution derrière CaptchaAI et appliquez le token dans la même session : le job reprend seul, là où un défi non géré force une reprise manuelle qui casse la planification.
Ce guide autorise-t-il l'automatisation de sites tiers ?
Non. Tous les exemples portent sur vos propres applications ou sur des sources sous accord écrit. Pour une source externe, validez les conditions d'utilisation et la base juridique RGPD.
Comment isoler le profil navigateur de l'extension ?
Deux règles :
- dédiez un répertoire de profil (
--user-data-dir) à l'extension, non partagé entre exécutions concurrentes ; - un profil propre par worker évite les collisions de cookies et garde chaque exécution reproductible.
Guides connexes
- Démarrage rapide CaptchaAI
- QA CAPTCHA en environnements autorisés
- Tester l'endpoint API sur vos formulaires web
- Intégrer la résolution CAPTCHA en CI
- Résoudre reCAPTCHA v2 via l'API
D'un pipeline fragile à un workflow reproductible : créez votre clé CaptchaAI et résolvez votre premier CAPTCHA en quelques minutes.