UNLOCK API

Image grid solving API

Send a Image grid task to the API and get back the answer your code submits to the page. The grid image as base64 and the instruction, for example the object to select. You get: The numbers of the cells to click.

At a glance

Price per 1,000
$0.36 ($0.00036 per task)
createTask type
GridTask
in.php method
post, recaptcha=1
You send
The grid image as base64 and the instruction, for example the object to select
You get
The numbers of the cells to click

Where to find the values

Send the whole grid as one image and the instruction as comment. rows and columns default to 3.

createTask and getTaskResult

Create the task, wait about 5 seconds, then check the result every 5 seconds until the status is ready. If the task fails, the API returns an error and the charge goes back to your balance.

import time, requests

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

task = requests.post(f"{API}/createTask", json={
  "clientKey": KEY,
  "task": {
      "type": "GridTask",
      "body": "/9j/4AAQSkZJRgABAQ...",
      "comment": "Select all squares with traffic lights",
      "rows": 3,
      "columns": 3
    }
}).json()
if task["errorId"]:
    raise SystemExit(task["errorCode"])

while True:
    time.sleep(5)
    r = requests.post(f"{API}/getTaskResult", json={"clientKey": KEY, "taskId": task["taskId"]}).json()
    if r["errorId"]:
        raise SystemExit(r["errorCode"])   # failed tasks are refunded
    if r["status"] == "ready":
        print(r["solution"])
        break

in.php and res.php

The same task with the classic form API. Add json=1 to get JSON answers; without it the answers are plain text such as OK|1001.

curl -s "https://unlock-api.com/in.php" -d "key=YOUR_API_KEY&method=base64&recaptcha=1&textinstructions=Select+all+traffic+lights&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"}