UNLOCK API
Координаты клика

Координаты клика

Как отправить задачу Координаты клика в UNLOCK API через createTask или in.php: названия типов задач, все параметры, объект solution, поля прокси и примеры кода на 7 языках.
Цена
$0.60 $0.0006 за задачу
Вы отправляете
Картинка в base64 и на что нажать
Вы получаете
Точки x и y для нажатия

Обзор и цена

Названия типов задачи

У этого типа одно название.
CoordinatesTask

Также принимается: ImageToCoordinatesTask

Объект задачи

type
StringОбязательный
Название типа задачи. Регистр букв не важен. CoordinatesTask
body
StringОбязательный
Картинка в base64 (JPG, PNG или GIF), примерно до 100 KB. Префикс data: допускается.
comment
StringНеобязательный
Инструкция для решателя, например вопрос над картинкой.
minClicks
IntegerНеобязательный
Минимальное число точек для клика.
maxClicks
IntegerНеобязательный
Максимальное число точек для клика.

Поля, которых здесь нет, передаются решателю как есть.

Запрос

POST /createTask
{
  "clientKey": "YOUR_API_KEY",
  "task": {
    "type": "CoordinatesTask",
    "body": "/9j/4AAQSkZJRgABAQ...",
    "comment": "Click the cat"
  }
}

Объект solution

Возвращается в solution, когда status равен ready.
coordinates
Array
Точки для клика, в пикселях от левого верхнего угла картинки.
POST /getTaskResult
{
  "errorId": 0,
  "taskId": 1001,
  "status": "ready",
  "solution": {
    "coordinates": [
      {
        "x": 114,
        "y": 73
      },
      {
        "x": 201,
        "y": 112
      }
    ]
  },
  "cost": "0.0006",
  "createTime": 1791640000,
  "endTime": 1791640014,
  "solveCount": 1
}

Примеры кода

import time, requests

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

task = requests.post(f"{API}/createTask", json={
    "clientKey": KEY,
    "task": {
      "type": "CoordinatesTask",
      "body": "/9j/4AAQSkZJRgABAQ...",
      "comment": "Click the cat"
    }
}).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")

Метод формы in.php

Та же задача через классический запрос с формой. res.php возвращает ответ текстом.
in.php, res.php
curl -s "https://unlock-api.com/in.php" -d "key=YOUR_API_KEY&method=base64&coordinatescaptcha=1&textinstructions=Click+the+cat&body=BASE64_IMAGE&json=1"
# {"status":1,"request":"1001"}

curl -s "https://unlock-api.com/res.php?key=YOUR_API_KEY&action=get&id=1001&json=1"
# {"status":0,"request":"CAPCHA_NOT_READY"}  then  {"status":1,"request":"ANSWER"}

API форм: in.php и res.php