UNLOCK API
Tracer un contour

Tracer un contour

Comment envoyer une tâche Tracer un contour à 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 entourer
Vous recevez
Points du contour tracé

Présentation et prix

Noms du type de tâche

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

Objet tâche

type
StringObligatoire
Nom du type de tâche. Reconnu quelle que soit la casse. DrawAroundTask
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.

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": "DrawAroundTask",
    "body": "/9j/4AAQSkZJRgABAQ...",
    "comment": "Draw around the dog"
  }
}

Objet solution

Renvoyé dans solution quand status vaut ready.
canvas
Array
Contour tracé autour de l'objet, sous forme de liste de points.
POST /getTaskResult
{
  "errorId": 0,
  "taskId": 1001,
  "status": "ready",
  "solution": {
    "canvas": [
      [
        {
          "x": 10,
          "y": 20
        },
        {
          "x": 60,
          "y": 22
        },
        {
          "x": 58,
          "y": 80
        }
      ]
    ]
  },
  "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": "DrawAroundTask",
      "body": "/9j/4AAQSkZJRgABAQ...",
      "comment": "Draw around the dog"
    }
}).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&canvas=1&textinstructions=Draw+around+the+dog&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