UNLOCK API
createTask

createTask

Crea una tarea y devuelve su id. El precio del tipo de tarea se descuenta del saldo cuando se acepta la tarea, y se devuelve si la tarea falla.
POSThttps://unlock-api.com/createTask
Envía POST con Content-Type: application/json. Los campos de la tarea dependen del tipo de tarea; consulta Tipos de tarea.

Parámetros de la solicitud

clientKey
StringObligatorio
Tu clave API, de 32 caracteres, de la página de cuenta.
task
ObjectObligatorio
Objeto de tarea. Su campo type define qué otros campos se necesitan. Tipos de tarea
callbackUrl
StringOpcional
Dirección http(s) pública. Cuando la tarea termina o falla, el resultado se envía allí por POST como JSON.
softId
IntegerOpcional
El id de tu aplicación, guardado con la tarea. appId se acepta como el mismo campo.

Solicitud

POST /createTask
{
  "clientKey": "YOUR_API_KEY",
  "task": {
    "type": "TurnstileTaskProxyless",
    "websiteURL": "https://example.com/login",
    "websiteKey": "0x4AAAAAAAC3DHQFLr1GavRN"
  }
}

Respuesta

{
  "errorId": 0,
  "taskId": 1001
}

Campos de la respuesta

errorId
Integer
0 si la solicitud funcionó, 1 si no.
taskId
Integer
Id de la tarea.
errorCode
String
Nombre del error cuando errorId es 1.
errorDescription
String
Breve explicación del error en inglés.

Ejemplos de código

import time, requests

API = "https://unlock-api.com"
KEY = "YOUR_API_KEY"

task = requests.post(f"{API}/createTask", json={
    "clientKey": KEY,
    "task": {
      "type": "TurnstileTaskProxyless",
      "websiteURL": "https://example.com/login",
      "websiteKey": "0x4AAAAAAAC3DHQFLr1GavRN"
    }
}).json()
if task["errorId"]:
    raise SystemExit(task["errorCode"])

for _ in range(60):   # 60 x 5 s = the 5 minute task limit
    time.sleep(5)
    r = requests.post(f"{API}/getTaskResult", json={"clientKey": KEY, "taskId": task["taskId"]}).json()
    if r["errorId"]:
        raise SystemExit(f"{r['errorCode']}: {r.get('errorDescription', '')}")   # failed tasks are refunded
    if r["status"] == "ready":
        print(r["solution"]["token"])
        break
else:
    raise SystemExit("timed out")

Errores que puede devolver este método