UNLOCK API
Desenhar contorno

Desenhar contorno

Como enviar uma tarefa de Desenhar contorno para a UNLOCK API com createTask ou in.php: nomes do tipo de tarefa, todos os parâmetros, o objeto solution, os campos de proxy e exemplos de código em 7 linguagens.
Preço
$0.60 $0.0006 por tarefa
Você envia
A imagem em base64 e o que circundar
Você recebe
Pontos do contorno desenhado

Visão geral e preço

Nomes do tipo de tarefa

Este tipo tem um único nome.
DrawAroundTask

Objeto da tarefa

type
StringObrigatório
Nome do tipo de tarefa. Reconhecido com letras maiúsculas ou minúsculas. DrawAroundTask
body
StringObrigatório
A imagem em base64 (JPG, PNG ou GIF), com até cerca de 100 KB. Um prefixo data: é permitido.
comment
StringOpcional
Instrução para o resolvedor, por exemplo a pergunta mostrada acima da imagem.

Campos que não aparecem aqui são repassados ao resolvedor como foram enviados.

Requisição

POST /createTask
{
  "clientKey": "YOUR_API_KEY",
  "task": {
    "type": "DrawAroundTask",
    "body": "/9j/4AAQSkZJRgABAQ...",
    "comment": "Draw around the dog"
  }
}

Objeto solution

Retornado em solution quando status é ready.
canvas
Array
Contorno desenhado em volta do objeto, como lista de pontos.
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
}

Exemplos de código

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étodo de formulário in.php

A mesma tarefa com a requisição de formulário clássica. res.php retorna a resposta como texto.
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 de formulário: in.php e res.php