UNLOCK API
Przegląd

Dokumentacja UNLOCK API

Wyślij CAPTCHA jako zadanie, a potem odbierz odpowiedź. API używa tych samych nazw metod, nazw zadań i kodów błędów co inne API do rozwiązywania CAPTCHA, więc większość istniejącego kodu działa po zmianie hosta i klucza.

Jak działa żądanie

  1. 1createTask

    Utwórz zadanie

    POST /createTask z Twoim kluczem i obiektem zadania. Otrzymujesz taskId. Cena jest od razu pobierana z salda.

  2. 2getTaskResult

    Sprawdź wynik

    Odczekaj około 5 sekund, a potem wysyłaj POST /getTaskResult co 5 sekund, aż status będzie ready.

  3. 3solution

    Użyj odpowiedzi

    Wstaw token lub tekst z solution do formularza strony. Jeśli zadanie się nie powiedzie, opłata wraca na saldo.

Podstawy

Bazowy URL
https://unlock-api.com
Klucz API
32 znaki, na stronie konta. Wysyłaj go jako clientKey (JSON) lub key (in.php, res.php).
Format
Metody JSON: POST z treścią JSON. in.php i res.php: pola formularza GET lub POST; dodaj json=1, aby otrzymać odpowiedzi w JSON.
Limity
1200 żądań na minutę na konto, łącznie ze sprawdzaniem wyników. Po utworzeniu zadania odczekaj około 5 sekund, potem sprawdzaj co 5 sekund.
Limit czasu
Zadanie nierozwiązane w ciągu 5 minut kończy się błędem ERROR_CAPTCHA_UNSOLVABLE, a opłata wraca na saldo.
Rozliczenia
Cena zadania jest pobierana przy jego utworzeniu. Nieudane zadania są zwracane automatycznie.

Szybki start

Rozwiąż reCAPTCHA v2 metodami JSON. Zastąp YOUR_API_KEY swoim kluczem.
import time, requests

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

task = requests.post(f"{API}/createTask", json={
    "clientKey": KEY,
    "task": {
      "type": "RecaptchaV2TaskProxyless",
      "websiteURL": "https://example.com/login",
      "websiteKey": "6LcR_RsTAAAAAFJR_5ZdbQd0SMxL7yIDmSXH1-lo"
    }
}).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"]["gRecaptchaResponse"])
        break
else:
    raise SystemExit("timed out")

Metody

Poradniki

Typy zadań

Każdy typ ma własną stronę ze wszystkimi parametrami, obiektem solution i przykładami.

Zadania z tokenem