Tutoriales de API

Métodos de autenticación de proxy para la API CaptchaAI

CaptchaAI admite pasar su propio proxy a la API de resolución; esto hace que CaptchaAI resuelva el CAPTCHA de la IP de su proxy, asegurando que el token coincida con la IP que cargó la página. Aquí se explica cómo configurar cada método de autenticación.


Cuándo pasar un proxy a CaptchaAI

Escenario ¿Pasar proxy? ¿Por qué?
Estándar reCAPTCHA v2 Generalmente no es necesario El token funciona desde cualquier IP
reCAPTCHA v3 Opcional La puntuación puede depender de la IP
Cloudflare Turnstile Recomendado El token está vinculado a IP
Cloudflare Challenge Requerido Desafío ligado a la propiedad intelectual
Sesiones vinculadas a IP Requerido Token validado contra IP de origen

Métodos de autenticación

1. Nombre de usuario/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. Nombre de usuario/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. Lista blanca de IP (sin autenticación)

Algunos proveedores de proxy se autentican mediante la lista blanca de IP en lugar de mediante credenciales:

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")

Importante: Para los servidores proxy de la lista blanca de IP, también debe incluir en la lista blanca las IP del servidor de CaptchaAI, ya que los servidores de CaptchaAI se conectarán a su proxy.

4. Proxy HTTPS (CONECTAR)

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 ...

Ejemplos de 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
  }
);

Referencia de formato de parámetro de proxy

tipo de proxy formato proxy Ejemplo
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
lista blanca de IP host:port proxy.com:8080

Formatos específicos del proveedor

# 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"

Solución de problemas

Problema causa Solución
ERROR_PROXY_NOT_AUTHORIZED Credenciales incorrectas o IP no incluida en la lista blanca Verificar las credenciales del proxy; incluir IP en la lista blanca de CaptchaAI
ERROR_PROXY_CONNECTION_FAILED Proxy inalcanzable desde CaptchaAI Compruebe que se pueda acceder al proxy desde IP externas
Token rechazado por el objetivo La IP del proxy no coincide con la IP de carga de la página Utilice la misma sesión fija para ambos
Resolución lenta con proxy El proxy añade latencia Aceptar o utilizar un proxy más rápido
ERROR_BAD_PARAMETERS Formato de proxy incorrecto Utilice el formato host:port:user:pass

Preguntas frecuentes

¿Siempre necesito pasar un proxy?

No. La mayoría de las implementaciones de reCAPTCHA v2 no vinculan tokens a IP. Pase un proxy únicamente para desafíos vinculados a IP (Cloudflare, algunos flujos de OAuth).

¿Pasar un proxy ralentiza la resolución?

Ligeramente: CaptchaAI necesita enrutarse a través de su proxy. Agregue de 2 a 5 segundos a los tiempos de resolución típicos.

¿Puedo usar proxies rotativos con el parámetro de proxy de CaptchaAI?

Utilice sesiones adhesivas. Si pasa un proxy rotativo, CaptchaAI podría resolver desde una IP diferente a la que cargó la página.

¿Qué pasa si mi proxy falla?

CaptchaAI devuelve ERROR_PROXY_CONNECTION_FAILED. Implemente la lógica de reintento con un proxy alternativo.


Guías relacionadas


Pase su proxy a CaptchaAI para resolver CAPTCHA que coincida con IP:obtenga su clave API.

Los comentarios están deshabilitados para este artículo.