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