UNLOCK API
Coordonnées de clic

Coordonnées de clic

Comment envoyer une tâche Coordonnées de clic à UNLOCK API avec createTask ou in.php : noms du type de tâche, tous les paramètres, l'objet solution, les champs proxy et des exemples de code dans 7 langages.
Prix
$0.60 $0.0006 par tâche
Vous envoyez
L'image en base64 et ce qu'il faut cliquer
Vous recevez
Les points x et y à cliquer

Présentation et prix

Noms du type de tâche

Ce type n'a qu'un seul nom.
CoordinatesTask

Également accepté: ImageToCoordinatesTask

Objet tâche

type
StringObligatoire
Nom du type de tâche. Reconnu quelle que soit la casse. CoordinatesTask
body
StringObligatoire
L'image en base64 (JPG, PNG ou GIF), jusqu'à environ 100 KB. Un préfixe data: est accepté.
comment
StringFacultatif
Consigne pour le résolveur, par exemple la question affichée au-dessus de l'image.
minClicks
IntegerFacultatif
Nombre minimal de points à cliquer.
maxClicks
IntegerFacultatif
Nombre maximal de points à cliquer.

Les champs qui ne figurent pas ici sont transmis au résolveur tels qu'envoyés.

Requête

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

Objet solution

Renvoyé dans solution quand status vaut ready.
coordinates
Array
Points à cliquer, en pixels depuis le coin supérieur gauche de l'image.
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
}

Exemples de code

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")

Méthode formulaire in.php

La même tâche avec la requête de formulaire classique. res.php renvoie la réponse en texte.
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 formulaire : in.php et res.php