UNLOCK API
Tarefa de imagem complexa

Tarefa de imagem complexa

Como enviar uma tarefa de Tarefa de imagem complexa para a UNLOCK API com createTask ou in.php: nomes do tipo de tarefa, todos os parâmetros, o objeto solution, os campos de proxy e exemplos de código em 7 linguagens.
Preço
$0.60 $0.0006 por tarefa
Você envia
class (recaptcha, hcaptcha, funcaptcha ou recognition), as imagens e o texto da tarefa
Você recebe
Quais imagens ou células correspondem

Visão geral e preço

Nomes do tipo de tarefa

Este tipo tem um único nome.
ComplexImageTask

Objeto da tarefa

type
StringObrigatório
Nome do tipo de tarefa. Reconhecido com letras maiúsculas ou minúsculas. ComplexImageTask
class
StringObrigatório
Qual é o desafio de imagem, por exemplo recaptcha ou hcaptcha.
imagesBase64
ArrayObrigatório
As imagens como lista de strings base64.
metadata
ObjectOpcional
A pergunta e o layout, por exemplo Task e Grid.

Campos que não aparecem aqui são repassados ao resolvedor como foram enviados.

Requisição

POST /createTask
{
  "clientKey": "YOUR_API_KEY",
  "task": {
    "type": "ComplexImageTask",
    "class": "recaptcha",
    "imagesBase64": [
      "/9j/4AAQSkZJRgABAQ..."
    ],
    "metadata": {
      "Task": "Select all images with a bus",
      "Grid": "3x3"
    }
  }
}

Objeto solution

Retornado em solution quando status é ready.
answer
Array
A resposta a enviar.
POST /getTaskResult
{
  "errorId": 0,
  "taskId": 1001,
  "status": "ready",
  "solution": {
    "answer": [
      false,
      true,
      false,
      false,
      true,
      false,
      false,
      false,
      true
    ]
  },
  "cost": "0.0006",
  "createTime": 1791640000,
  "endTime": 1791640014,
  "solveCount": 1
}

Exemplos 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": "ComplexImageTask",
      "class": "recaptcha",
      "imagesBase64": [
        "/9j/4AAQSkZJRgABAQ..."
      ],
      "metadata": {
        "Task": "Select all images with a bus",
        "Grid": "3x3"
      }
    }
}).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"])
        break
else:
    raise SystemExit("timed out")

Método de formulário in.php

Este tipo está disponível apenas com os métodos JSON.