UNLOCK API
Imagem para texto

Imagem para texto

Como enviar uma tarefa de Imagem para texto 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.25 $0.00025 por tarefa
Você envia
A imagem em base64, até 100 KB
Você recebe
O texto da imagem

Visão geral e preço

Nomes do tipo de tarefa

Este tipo tem um único nome.
ImageToTextTask

Objeto da tarefa

type
StringObrigatório
Nome do tipo de tarefa. Reconhecido com letras maiúsculas ou minúsculas. ImageToTextTask
body
StringObrigatório
A imagem em base64 (JPG, PNG ou GIF), com até cerca de 100 KB. Um prefixo data: é permitido.
phrase
BooleanOpcional
true se a resposta tiver duas ou mais palavras.
case
BooleanOpcional
true se maiúsculas e minúsculas importarem.
numeric
IntegerOpcional
0 qualquer caractere, 1 só dígitos, 2 só letras, 3 dígitos ou letras, 4 dígitos e letras.
math
BooleanOpcional
true se a imagem mostrar uma conta a calcular.
minLength
IntegerOpcional
Tamanho mínimo da resposta. 0 significa sem limite.
maxLength
IntegerOpcional
Tamanho máximo da resposta. 0 significa sem limite.
comment
StringOpcional
Instrução para o resolvedor, por exemplo a pergunta mostrada acima da imagem.
languagePool
StringOpcional
Idioma da resposta, por exemplo en ou ru.

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

Requisição

POST /createTask
{
  "clientKey": "YOUR_API_KEY",
  "task": {
    "type": "ImageToTextTask",
    "body": "/9j/4AAQSkZJRgABAQ...",
    "case": true
  }
}

Objeto solution

Retornado em solution quando status é ready.
text
String
A resposta como texto.
POST /getTaskResult
{
  "errorId": 0,
  "taskId": 1001,
  "status": "ready",
  "solution": {
    "text": "w93bx"
  },
  "cost": "0.00025",
  "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": "ImageToTextTask",
      "body": "/9j/4AAQSkZJRgABAQ...",
      "case": true
    }
}).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"]["text"])
        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&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