Périmètre sûr : Ce guide s'applique exclusivement à vos propres applications, environnements de QA, de préproduction 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, ni l'évasion d'anti-bot.
Les portails BLS évoluent d'une saison à l'autre, et chaque mise à jour peut déplacer le défi, changer la famille de CAPTCHA affichée ou durcir la gestion de session. En 2026, la vraie question pour une équipe d'automatisation n'est donc pas « comment résoudre le BLS CAPTCHA une fois ? », mais « comment garder une intégration stable quand le portail bouge ? ». Cette référence y répond pour vos propres applications et environnements autorisés, avec CaptchaAI comme service de résolution.
Ce qui change réellement en 2026
Un flux qui fonctionne dans un notebook casse dès qu'il tourne sans surveillance, en CI ou dans un cron. Ce qu'il vous faut est concret : une latence prévisible, des modes d'échec propres et un code lisible en cinq minutes. CaptchaAI répond à ce besoin avec une API unique pour le BLS CAPTCHA et les autres familles, et une tarification par thread qui ne pénalise pas la montée en volume.
Architecture cible
Votre composant interne appelle CaptchaAI via HTTPS pour récupérer un token, puis l'injecte dans votre formulaire ou votre route d'API. Tracez chaque étape : c'est ce qui révèle les régressions lors des montées de version du portail. L'objectif est d'absorber sans intervention les trois sources d'instabilité classiques : fenêtres de déploiement, aléas réseau et changement de famille de CAPTCHA sur la page.
Le workflow recommandé
L'ordre des étapes compte autant que le code lui-même :
- Capturez exactement ce qu'attend le solveur. Ne conservez que les paramètres utiles à la famille de CAPTCHA (sitekey, URL de page, action, proxy éventuel) : en stocker davantage crée de fausses pistes de débogage.
- Envoyez la tâche au point d'entrée
in.phpavecjson=1. Traitez tout statut différent de1comme une erreur, journalisez la réponse complète et remontez-la à votre supervision. - Interrogez le résultat sur
res.php. Attendez 15 s avant la première interrogation, puis interrogez toutes les 5 s, avec un plafond strict de 120 s par tâche. - Appliquez le token dans la même session que celle qui a déclenché le défi : même contexte de navigateur, même client HTTP, même cookie jar. Une session dépareillée est la première cause de rejet après résolution.
- Mesurez la latence, les retries et l'acceptation en aval. La réussite de résolution et celle du parcours sont deux métriques distinctes ; suivez les deux.
Configuration des secrets
La clé CaptchaAI vit dans un coffre (HashiCorp Vault, AWS Secrets Manager, Azure Key Vault) ou dans un secret CI. Le déploiement la monte en variable d'environnement au runtime, jamais dans le code source. Une rotation de clé ne demande alors qu'une mise à jour du secret.
Exemple de code
Exemple côté client de votre propre suite de tests :
import os
import requests
API_KEY = os.environ['CAPTCHAAI_KEY']
def get_balance() -> float:
resp = requests.post(
'https://api.captchaai.com/getBalance',
json={'clientKey': API_KEY},
timeout=15,
)
resp.raise_for_status()
return float(resp.json().get('balance', 0))
Observabilité et journalisation
Quel que soit le langage, instrumentez les appels CAPTCHA : durée totale d'obtention du token, code retour HTTP, identifiant de tâche et taille de la file d'attente interne. Ces signaux alimentent vos tableaux de bord de QA et vos alertes.
Séparez les journaux par environnement et corrélez les identifiants à votre traçage distribué (par exemple OpenTelemetry) : vous rejouez alors un scénario complet à partir d'un identifiant unique, ce qui divise par deux le temps de diagnostic en cas d'incident.
Mesurer la réussite
Ces seuils sont des objectifs internes à adapter à votre environnement et votre volume ; ils ne constituent pas une promesse de performance. Câblez-les dans le tableau de bord que vous utilisez déjà pour repérer une régression avant vos utilisateurs.
| Indicateur | Objectif visé | Ce qu'il révèle |
|---|---|---|
| Latence de première résolution (p50) | < 25 s pour les CAPTCHA à token, < 8 s pour l'OCR d'image | L'intégration est saine et n'attend pas de retry. |
| Taux de réussite du solveur | ≥ 95 % par famille de CAPTCHA | Vos entrées sont correctes et le solveur suit le défi réel. |
| Acceptation de bout en bout | ≥ 95 % après token | La vérification en aval accepte le token dans la session d'application. |
Liste de contrôle
- Le périmètre est limité à vos propres applications ou à des sources autorisées.
- La clé CaptchaAI est stockée en secret CI ou en coffre, jamais dans le code source.
- Les durées d'appel et les codes retour sont tracés à chaque exécution.
- Une stratégie de retry idempotent 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 en secret CI. |
ERROR_ZERO_BALANCE |
Solde inférieur au minimum par tâche. | Rechargez avant de réessayer et ajoutez une alerte de solde. |
ERROR_PAGEURL / ERROR_BAD_PARAMETERS |
Paramètre requis manquant ou mal formé. | Revalidez l'URL de page, le sitekey et les champs spécifiques face au 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 le même contexte. |
FAQ
Le BLS CAPTCHA est-il pris en charge, et quels autres types couvre la même API ?
Oui. La même API couvre aussi reCAPTCHA v2 et v3, Cloudflare Turnstile et Challenge, GeeTest v3, l'image/OCR et les grilles d'images, avec CaptchaFox (bêta), Friendly Captcha (bêta) et Lemin (bêta). hCaptcha et FunCaptcha ne sont pas pris en charge.
Puis-je utiliser cette intégration sur le portail BLS officiel ?
Uniquement dans le cadre décrit en tête d'article : vos propres applications ou une source pour laquelle vous détenez une autorisation écrite. Ce guide ne fournit aucune technique sur un portail public que vous ne contrôlez pas. Validez d'abord les conditions d'utilisation et la base juridique.
Quel plan CaptchaAI choisir pour démarrer ?
Le plan d'entrée BASIC ($15/mois, 5 threads) suffit pour valider une intégration. La facturation est par thread avec résolutions illimitées : un thread est un CAPTCHA en cours, libéré dès la fin de la résolution. Vous montez de palier quand votre débit réel le justifie.
Comment diagnostiquer un token refusé après une résolution réussie ?
Vérifiez d'abord la session : le token doit être appliqué dans le même contexte que celui ayant déclenché le défi. Contrôlez ensuite que le sitekey et l'URL de page correspondent au HTML réel, puis relisez vos journaux corrélés par identifiant de tâche pour repérer l'écart.
Guides connexes
- le démarrage rapide CaptchaAI
- la QA CAPTCHA en environnements autorisés
- tester l'endpoint API sur vos formulaires
- l'intégration CAPTCHA en CI
- résoudre reCAPTCHA v2 via l'API
Fiabilisez vos workflows CAPTCHA avec une approche méthodique et reproductible. – Obtenez votre clé CaptchaAI.