Guía
Tarea (Token)
DataDome

Datadome: resolviendo el captcha de DataDome

TIP

Cree la tarea con el método createTask y obtenga el resultado con el método getTaskResult.

PELIGRO

ℹ️ Este tipo de tarea requiere sus propios proxies.

ℹ️ Asegúrese de que el userAgent coincida: el userAgent que envía a nuestra API debe ser el mismo que utiliza.

Tipos de Datadome que soportamos ambos:

Captcha deslizante y Interstitial (Verificación de dispositivo)

Los tipos de tareas que admitimos:

  • DatadomeSliderTask este tipo de tarea requiere sus propios proxies.

Crear Tarea

Cree la tarea con el método createTask.

Atención Debe observar si el parámetro `t` en `captchaUrl` es igual a `fe`. Si `t=bv` significa que

su IP está directamente bloqueada, y debe cambiar la IP.

Estructura del Objeto de Tarea

PropiedadesTipoRequeridoDescripción
typeStringRequeridoDataDomeSliderTask (Tanto el deslizante como el intersticial utilizan este tipo)
captchaUrlStringRequeridosi la URL contiene t=bv significa que su IP debe estar bloqueada, t debería ser t=fe
userAgentStringRequeridoDebe ser el mismo userAgent que utiliza para solicitar el sitio web. Actualmente solo admitimos los siguientes userAgent
proxyStringRequeridoAprenda Cómo usar proxies
ADVERTENCIA

Utilice el userAgent fijo que proporcionamos para solicitar el sitio web.

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36

Ejemplo de Solicitud

POST https://api.capsolver.com/createTask
Host: api.capsolver.com
Content-Type: application/json
{
  "clientKey": "YOUR_API_KEY",
  "task": {
    "type": "DatadomeSliderTask",
    "captchaUrl": "https://geo.captcha-delivery.com/captcha/?initialCid=AHrlqAAAAAMA1QGvUmJwyYoAwpyjNg%3D%3D&hash=789361B674144528D0B7EE76B35826&cid=6QAEcL8coBYTi9tYLmjCdyKmNNyHz1xwM2tMHHGVd_Rxr6FsWrb7H~a04csMptCPYfQ25CBDmaOZpdDa4qwAigFnsrzbCkVkoaBIXVAwHsjXJaKYXsTpkBPtqJfLMGN&t=fe&referer=https%3A%2F%2bck.websiteurl.com%2Fclient%2Fregister%2FYM4HJV%3Flang%3Den&s=40070&e=3e531bd3b30650f2e810ac72cd80adb5eaa68d2720e804314d122fa9e84ac25d",
    // userAgent es el que está usando:
    "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36",
    "proxy": "158.120.100.23:334:user:pass",
  }
}

Ejemplo de Respuesta

{
  "errorId": 0,
  "status": "idle",
  "taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006"
}
 

Obteniendo el Resultado

Utilice el método getTaskResult para obtener los resultados de reconocimiento.

Dependiendo de la carga del sistema, obtendrá los resultados en un intervalo de 1s a 20s.

Ejemplo de solicitud

POST https://api.capsolver.com/getTaskResult
Host: api.capsolver.com
Content-Type: application/json
{
  "clientKey": "YOUR_API_KEY",
  "taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006"
}

Ejemplo de Respuesta

{
  "errorId": 0,
  "errorCode": null,
  "errorDescription": null,
  "solution": {
    "cookie": "datadome=yzj_BK...S0; Max-Age=31536000; Domain=; Path=/; Secure; SameSite=Lax"
  },
  "status": "ready"
}

Solución de Errores

Errores Comunes

  1. La cookie devuelta por la API no funciona — sigue recibiendo un 403.
  2. La API devuelve: “IP del proxy baneada por el servicio de destino”.
  3. La API devuelve: “Fallo al resolver el captcha: 1013”.

Pasos para la Solución de Problemas

  1. Intente cambiar de proxy – Su IP podría estar en la lista negra.
  2. Verifique el tipo de proxy – Algunos sitios verifican la consistencia de la IP. Si está utilizando un proxy rotatorio, intente cambiar a un proxy fijo.
  3. Verifique el userAgent – El userAgent enviado a nuestra API debe coincidir con el utilizado para el sitio de destino.
  4. Verifique Accept-Language – Algunos sitios requieren que coincida con el idioma regional del sitio.
  5. Depure su código/programa (ej., TLS, encabezados):
  • Copie manualmente la cookie de DataDome de su navegador a su código y ejecútelo de nuevo.
  • Si aún falla, es probable que su código tenga problemas—inspeccione TLS y los encabezados.
  1. Verifique los encabezados – Asegúrese de que coincidan con los enviados por un navegador real, incluido el orden de los encabezados.
  2. Verifique la huella digital TLS – Utilice una biblioteca que imite los apretones de manos TLS reales.
  3. Si el error persiste después de todas las verificaciones, por favor, infórmenos del problema.

Usar Solicitud SDK

# pip install --upgrade capsolver
# export CAPSOLVER_API_KEY='...'
 
import capsolver
 
# capsolver.api_key = "..."
solution = capsolver.solve({
    "type": "DatadomeSliderTask",
    "websiteURL": "https://bck.websiteurl.com/",
    "captchaUrl": "https://geo.captcha-delivery.com/captcha/?initialCid=AHrlqAAAAAMA1QGvUmJwyYoAwpyjNg%3D%3D&hash=789361B674144528D0B7EE76B35826&cid=6QAEcL8coBYTi9tYLmjCdyKmNNyHz1xwM2tMHHGVd_Rxr6FsWrb7H~a04csMptCPYfQ25CBDmaOZpdDa4qwAigFnsrzbCkVkoaBIXVAwHsjXJaKYXsTpkBPtqJfLMGN&t=fe&referer=https%3A%2F%2bck.websiteurl.com%2Fclient%2Fregister%2FYM4HJV%3Flang%3Den&s=40070&e=3e531bd3b30650f2e810ac72cd80adb5eaa68d2720e804314d122fa9e84ac25d",
    # userAgent es el que está usando:
    "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36",
    "proxy": "158.120.100.23:334:user:pass"
})

Código de Ejemplo

# pip install requests
import requests
import time
 
api_key = "YOUR_API_KEY"  # su clave API de capsolver
 
def capsolver():
    payload = {
        "clientKey": api_key,
        "task": {
            "type": 'DatadomeSliderTask',
            "websiteURL": "https://bck.websiteurl.com/",
            "captchaUrl": "https://geo.captcha-delivery.com/captcha/?initialCid=AHrlqAAAAAMA1QGvUmJwyYoAwpyjNg%3D%3D&hash=789361B674144528D0B7EE76B35826&cid=6QAEcL8coBYTi9tYLmjCdyKmNNyHz1xwM2tMHHGVd_Rxr6FsWrb7H~a04csMptCPYfQ25CBDmaOZpdDa4qwAigFnsrzbCkVkoaBIXVAwHsjXJaKYXsTpkBPtqJfLMGN&t=fe&referer=https%3A%2F%2bck.websiteurl.com%2Fclient%2Fregister%2FYM4HJV%3Flang%3Den&s=40070&e=3e531bd3b30650f2e810ac72cd80adb5eaa68d2720e804314d122fa9e84ac25d",
            "proxy": "158.120.100.23:334:user:pass",
		    "userAgent": "por favor, use nuestro userAgent compatible. Debe coincidir con el que está usando"
        }
    }
    res = requests.post("https://api.capsolver.com/createTask", json=payload)
    resp = res.json()
    task_id = resp.get("taskId")
    if not task_id:
        print("Fallo al crear la tarea:", res.text)
        return
    print(f"Se obtuvo taskId: {task_id} / Obteniendo resultado...")
 
    while True:
        time.sleep(1)  # retraso
        payload = {"clientKey": api_key, "taskId": task_id}
        res = requests.post("https://api.capsolver.com/getTaskResult", json=payload)
        resp = res.json()
        status = resp.get("status")
        if status == "ready":
            return resp.get("solution", {}).get("cookie")
        if status == "failed" or resp.get("errorId"):
            print("¡Fallo al resolver! respuesta:", res.text)
            return
 
cookie = capsolver()
print(cookie)