NEWStandardowe API createTask i in.php. Zmień adres i jesteś połączony.Zobacz dokumentację API
GATESOLVER
Zacznij

Dokumentacja API

Żądania są w JSON i trafiają na jeden adres (https://gatesolver.com). Klucz API utworzony w panelu konta wysyłasz jako clientKey. Tworzysz zadanie (createTask), a po kilku sekundach odbierasz wynik (getTaskResult).

Adres bazowy
https://gatesolver.com
Uwierzytelnianie
clientKey w treści żądania
Limit żądań
600 żądań na 1 minutę na klucz
Format
JSON (POST)

Zacznij

  1. Zarejestruj się i doładuj saldo.
  2. Utwórz klucz w menu Klucz API w panelu konta. Klucz jest widoczny tylko raz, przy tworzeniu.
  3. Utwórz zadanie przez createTask i co kilka sekund wywołuj getTaskResult z otrzymanym taskId.
  4. Gdy status zmieni się na ready, wstaw solution na stronę.

Klienci zbudowani dla formatu createTask działają bez zmian po zmianie adresu API. Nowy adres: https://gatesolver.com

createTask

POST https://gatesolver.com/createTask

Tworzy zadanie i zwraca taskId. Na tym etapie nie pobieramy opłaty.

PoleFormatWymaganeOpis
clientKeystringTakKlucz API
taskobjectTakDane zadania: type i pola zależne od typu (tabela type zadań poniżej i strony poszczególnych typów)
callbackUrlstringNieNie. Wyniki odbierasz przez getTaskResult.

Żądanie

{
  "clientKey": "YOUR_API_KEY",
  "task": {
    "type": "ReCaptchaV2TaskProxyLess",
    "websiteURL": "https://www.google.com/recaptcha/api2/demo",
    "websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-"
  }
}

Odpowiedź

{ "errorId": 0, "taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006" }

getTaskResult

POST https://gatesolver.com/getTaskResult

Zwraca wynik zadania. Zalecamy odpytywanie co 3 s dla CAPTCHA tokenowych i co 1 s dla rozpoznawania obrazów. Opłata za 1 zadanie jest pobierana z salda w chwili, gdy pojawi się odpowiedź.

PoleOpis
statusprocessing (w toku), ready (odpowiedź gotowa), failed (niepowodzenie, bez opłaty)
solutionOdpowiedź. Pola zależą od typu (gRecaptchaResponse, token, cookie, text itp.)
costKwota pobrana za to zadanie (USD)
createTime / endTimeCzas utworzenia i zakończenia (milisekundy)
{
  "errorId": 0,
  "taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006",
  "status": "ready",
  "solution": { "gRecaptchaResponse": "03AFcWeA6...", "userAgent": "Mozilla/5.0 ..." },
  "cost": "0.000560"
}

getBalance

POST https://gatesolver.com/getBalance

Zwraca saldo w dolarach.

{ "clientKey": "YOUR_API_KEY" }

{ "errorId": 0, "balance": 42.5 }

Type zadania

Wielkość liter w nazwie type nie ma znaczenia. Pola i przykłady dla każdego typu znajdziesz na jego stronie.

typeTyp1,000 zadań
ReCaptchaV2TaskProxyLessreCAPTCHA v2$0.56
ReCaptchaV2TaskreCAPTCHA v2$0.56
ReCaptchaV2EnterpriseTaskProxyLessreCAPTCHA v2 Enterprise$0.70
ReCaptchaV2EnterpriseTaskreCAPTCHA v2 Enterprise$0.70
ReCaptchaV3TaskProxyLessreCAPTCHA v3$0.70
ReCaptchaV3TaskreCAPTCHA v3$0.70
ReCaptchaV3EnterpriseTaskProxyLessreCAPTCHA v3 Enterprise$2.10
ReCaptchaV3EnterpriseTaskreCAPTCHA v3 Enterprise$2.10
AntiTurnstileTaskProxyLessCloudflare Turnstile$0.84
TurnstileTaskProxylessCloudflare Turnstile$0.84
AntiCloudflareTaskCloudflare Challenge$0.84
AntiAwsWafTaskProxyLessAWS WAF$1.40
AntiAwsWafTaskAWS WAF$1.40
GeeTestTaskProxyLessGeeTest v3 / v4$0.84
GeeTestTaskGeeTest v3 / v4$0.84
MtCaptchaTaskProxyLessMTCaptcha$2.10
MtCaptchaTaskMTCaptcha$2.10
DatadomeSliderTaskDataDome Slider$1.75
ImageToTextTaskImage to Text$0.28
ReCaptchaV2ClassificationreCAPTCHA Image Classification$0.28
AwsWafClassificationAWS WAF Image Classification$0.42
VisionEngineVision Engine$1.05

Kody błędów

W razie błędu errorId ma wartość 1, a w odpowiedzi są też errorCode i errorDescription. Za odpowiedzi z błędem nie pobieramy opłat.

errorCodeZnaczenie
ERROR_KEY_DENIED_ACCESSBrak clientKey lub nieprawidłowy clientKey.
ERROR_ZERO_BALANCEZa mało środków na saldzie. Doładuj saldo i wyślij żądanie ponownie.
ERROR_TASK_NOT_SUPPORTEDNieobsługiwany type zadania.
ERROR_INVALID_TASK_DATABrakuje wymaganego pola. Jego nazwa jest w errorDescription.
ERROR_TASKID_INVALIDTen taskId nie istnieje lub nie został utworzony tym kluczem.
ERROR_CAPTCHA_UNSOLVABLENie udało się rozwiązać. Nie pobrano opłaty. Wyślij żądanie ponownie.
ERROR_SERVICE_UNAVAILABLEBłąd sieci. Nie pobrano opłaty. Spróbuj ponownie za chwilę.
ERROR_RATE_LIMITPrzekroczono 600 żądań w ciągu 1 minuty. Zwiększ odstęp między żądaniami.
ERROR_ACCOUNT_SUSPENDEDTo konto jest zawieszone.

Zgodność z in.php

Dla programów w stylu in.php wystarczy zmienić adres. Obsługiwane metody: userrecaptcha (reCAPTCHA v2), turnstile, geetest, base64 i post (tekst z obrazka).

GET https://gatesolver.com/in.php?key=YOUR_API_KEY&method=userrecaptcha&googlekey=6Le...&pageurl=https://example.com
OK|61138bb6-19fb-11ec-a9c8-0242ac110006

GET https://gatesolver.com/res.php?key=YOUR_API_KEY&action=get&id=61138bb6-19fb-11ec-a9c8-0242ac110006
CAPCHA_NOT_READY
OK|03AFcWeA6...

GET https://gatesolver.com/res.php?key=YOUR_API_KEY&action=getbalance
42.50000

Po dodaniu json=1 odpowiedź ma postać {"status":1,"request":"..."}.

Przykłady

import requests, time

API, KEY = "https://gatesolver.com", "YOUR_API_KEY"

def solve(task, wait=3, timeout=120):
    r = requests.post(f"{API}/createTask", json={"clientKey": KEY, "task": task}, timeout=30).json()
    if r.get("errorId"):
        raise RuntimeError(r["errorCode"])
    end = time.time() + timeout
    while time.time() < end:
        time.sleep(wait)
        res = requests.post(f"{API}/getTaskResult", json={"clientKey": KEY, "taskId": r["taskId"]}, timeout=30).json()
        if res.get("errorId"):
            raise RuntimeError(res["errorCode"])
        if res["status"] == "ready":
            return res["solution"]
    raise TimeoutError("task timed out")

print(solve({"type": "ReCaptchaV2TaskProxyLess", "websiteURL": "https://example.com", "websiteKey": "6Le..."}))