Tutoriels API

Méthodes d'authentification proxy pour l'API CaptchaAI

CaptchaAI prend en charge la transmission de votre propre proxy à l'API de résolution - cela permet à CaptchaAI de résoudre le CAPTCHA à partir de l'adresse IP de votre proxy, garantissant que le jeton correspond à l'adresse IP qui a chargé la page. Voici comment configurer chaque méthode d'authentification.


Quand transmettre une procuration à CaptchaAI

Scénario Passer le proxy ? Pourquoi
Norme reCAPTCHA v2 Généralement pas nécessaire Le jeton fonctionne à partir de n'importe quelle adresse IP
reCAPTCHA v3 Facultatif Le score peut dépendre de l'adresse IP
Cloudflare Turnstile Recommandé Le jeton est lié à l'IP
Cloudflare Challenge Obligatoire Défi lié à la propriété intellectuelle
Sessions liées à IP Obligatoire Jeton validé par rapport à l'adresse IP d'origine

Méthodes d'authentification

1. Nom d'utilisateur/Password (HTTP)

import requests
import time

CAPTCHAAI_KEY = "YOUR_API_KEY"
CAPTCHAAI_URL = "https://ocr.captchaai.com"


def solve_with_http_proxy(site_url, sitekey, proxy_host, proxy_port,
                           proxy_user, proxy_pass):
    """Pass HTTP proxy to CaptchaAI for IP-matched solving."""
    proxy_param = f"{proxy_host}:{proxy_port}:{proxy_user}:{proxy_pass}"

    resp = requests.post(f"{CAPTCHAAI_URL}/in.php", data={
        "key": CAPTCHAAI_KEY,
        "method": "userrecaptcha",
        "googlekey": sitekey,
        "pageurl": site_url,
        "proxy": proxy_param,
        "proxytype": "HTTP",
        "json": 1,
    })

    data = resp.json()
    if data["status"] != 1:
        raise Exception(f"Submit: {data['request']}")

    task_id = data["request"]

    for _ in range(60):
        time.sleep(5)
        resp = requests.get(f"{CAPTCHAAI_URL}/res.php", params={
            "key": CAPTCHAAI_KEY,
            "action": "get",
            "id": task_id,
            "json": 1,
        })
        data = resp.json()
        if data["request"] == "CAPCHA_NOT_READY":
            continue
        if data["status"] == 1:
            return data["request"]
        raise Exception(f"Solve: {data['request']}")

    raise TimeoutError("Timeout")


# Usage
token = solve_with_http_proxy(
    site_url="https://example.com/form",
    sitekey="6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
    proxy_host="proxy.example.com",
    proxy_port=8080,
    proxy_user="myuser",
    proxy_pass="mypass",
)

2. Nom d'utilisateur/Password (SOCKS5)

def solve_with_socks5_proxy(site_url, sitekey, proxy_host, proxy_port,
                             proxy_user, proxy_pass):
    """Pass SOCKS5 proxy to CaptchaAI."""
    proxy_param = f"{proxy_host}:{proxy_port}:{proxy_user}:{proxy_pass}"

    resp = requests.post(f"{CAPTCHAAI_URL}/in.php", data={
        "key": CAPTCHAAI_KEY,
        "method": "userrecaptcha",
        "googlekey": sitekey,
        "pageurl": site_url,
        "proxy": proxy_param,
        "proxytype": "SOCKS5",
        "json": 1,
    })

    data = resp.json()
    task_id = data["request"]

    for _ in range(60):
        time.sleep(5)
        resp = requests.get(f"{CAPTCHAAI_URL}/res.php", params={
            "key": CAPTCHAAI_KEY, "action": "get",
            "id": task_id, "json": 1,
        })
        data = resp.json()
        if data["request"] != "CAPCHA_NOT_READY":
            return data["request"]

    raise TimeoutError("Timeout")

3. Liste blanche IP (pas d'authentification)

Certains fournisseurs de proxy s'authentifient par liste blanche IP plutôt que par informations d'identification :

def solve_with_whitelisted_proxy(site_url, sitekey, proxy_host, proxy_port):
    """Proxy with IP whitelist — no username/password."""
    proxy_param = f"{proxy_host}:{proxy_port}"

    resp = requests.post(f"{CAPTCHAAI_URL}/in.php", data={
        "key": CAPTCHAAI_KEY,
        "method": "userrecaptcha",
        "googlekey": sitekey,
        "pageurl": site_url,
        "proxy": proxy_param,
        "proxytype": "HTTP",
        "json": 1,
    })

    data = resp.json()
    task_id = data["request"]

    for _ in range(60):
        time.sleep(5)
        resp = requests.get(f"{CAPTCHAAI_URL}/res.php", params={
            "key": CAPTCHAAI_KEY, "action": "get",
            "id": task_id, "json": 1,
        })
        data = resp.json()
        if data["request"] != "CAPCHA_NOT_READY":
            return data["request"]

    raise TimeoutError("Timeout")

Important : Pour les proxys sur liste blanche IP, vous devez également mettre sur liste blanche les adresses IP des serveurs de CaptchaAI, car les serveurs de CaptchaAI se connecteront à votre proxy.

4. Proxy HTTPS (CONNECT)

def solve_with_https_proxy(site_url, sitekey, proxy_host, proxy_port,
                            proxy_user, proxy_pass):
    proxy_param = f"{proxy_host}:{proxy_port}:{proxy_user}:{proxy_pass}"

    resp = requests.post(f"{CAPTCHAAI_URL}/in.php", data={
        "key": CAPTCHAAI_KEY,
        "method": "userrecaptcha",
        "googlekey": sitekey,
        "pageurl": site_url,
        "proxy": proxy_param,
        "proxytype": "HTTPS",
        "json": 1,
    })

    # ... same polling logic ...

Exemples Node.js

const axios = require("axios");

const CAPTCHAAI_KEY = "YOUR_API_KEY";
const API = "https://ocr.captchaai.com";

async function solveWithProxy(siteUrl, sitekey, proxyConfig) {
  const params = {
    key: CAPTCHAAI_KEY,
    method: "userrecaptcha",
    googlekey: sitekey,
    pageurl: siteUrl,
    proxy: `${proxyConfig.host}:${proxyConfig.port}:${proxyConfig.user}:${proxyConfig.pass}`,
    proxytype: proxyConfig.type || "HTTP",
    json: 1,
  };

  const submit = await axios.post(`${API}/in.php`, null, { params });
  const taskId = submit.data.request;

  for (let i = 0; i < 60; i++) {
    await new Promise((r) => setTimeout(r, 5000));

    const result = await axios.get(`${API}/res.php`, {
      params: { key: CAPTCHAAI_KEY, action: "get", id: taskId, json: 1 },
    });

    if (result.data.request === "CAPCHA_NOT_READY") continue;
    if (result.data.status === 1) return result.data.request;
  }

  throw new Error("Timeout");
}

// Usage
const token = await solveWithProxy(
  "https://example.com/form",
  "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
  {
    host: "proxy.example.com",
    port: 8080,
    user: "myuser",
    pass: "mypass",
    type: "HTTP", // HTTP, HTTPS, SOCKS4, or SOCKS5
  }
);

Référence du format des paramètres proxy

type de proxy format de procuration Exemple
HTTP host:port:user:pass proxy.com:8080:user:pass
HTTPS host:port:user:pass proxy.com:8443:user:pass
SOCKS4 host:port:user:pass proxy.com:1080:user:pass
SOCKS5 host:port:user:pass proxy.com:1080:user:pass
Liste blanche IP host:port proxy.com:8080

Formats spécifiques au fournisseur

# Bright Data
proxy = "brd.superproxy.io:22225:brd-customer-ID-zone-residential:PASSWORD"
proxytype = "HTTP"

# Smartproxy
proxy = "gate.smartproxy.com:10001:spuser:sppassword"
proxytype = "HTTP"

# Oxylabs
proxy = "pr.oxylabs.io:7777:customer-USERNAME:PASSWORD"
proxytype = "HTTP"

Dépannage

Problème Parce que Corriger
ERROR_PROXY_NOT_AUTHORIZED Informations d'identification erronées ou adresse IP non inscrite sur la liste blanche Vérifier les informations d'identification du proxy ; liste blanche des IP CaptchaAI
ERROR_PROXY_CONNECTION_FAILED Proxy inaccessible depuis CaptchaAI Vérifier que le proxy est accessible à partir d'adresses IP externes
Jeton rejeté par la cible L'adresse IP du proxy ne correspond pas à l'adresse IP de chargement de la page Utilisez la même session collante pour les deux
Résolution lente avec proxy Le proxy ajoute de la latence Acceptez ou utilisez un proxy plus rapide
ERROR_BAD_PARAMETERS Mauvais format de proxy Utiliser le format host:port:user:pass

FAQ

Dois-je toujours passer une procuration ?

Non. La plupart des implémentations de reCAPTCHA v2 ne lient pas les jetons aux adresses IP. Transmettez un proxy uniquement pour les défis liés à l'IP (Cloudflare, certains flux OAuth).

Le passage d'un proxy ralentit-il la résolution ?

Légèrement - CaptchaAI doit être acheminé via votre proxy. Ajoutez 2 à 5 secondes aux temps de résolution typiques.

Puis-je utiliser des proxys rotatifs avec le paramètre proxy de CaptchaAI ?

Utilisez des sessions collantes. Si vous transmettez un proxy rotatif, CaptchaAI peut résoudre à partir d'une adresse IP différente de celle qui a chargé la page.

Que se passe-t-il si mon proxy échoue ?

CaptchaAI renvoie ERROR_PROXY_CONNECTION_FAILED. Implémentez une logique de nouvelle tentative avec un proxy de secours.


Guides connexes


Transmettez votre proxy à CaptchaAI pour la résolution de CAPTCHA correspondant à l'IP –récupérez votre clé API.

Les commentaires sont désactivés pour cet article.