NEWStandard createTask and in.php APIs. Change the address and you are connected.View API docs
GATESOLVER

API docs

Requests are JSON and there is a single endpoint (https://gatesolver.com). Send the API key you created in your account as clientKey. Create a task (createTask) and get the result a few seconds later (getTaskResult).

Base URL
https://gatesolver.com
Authentication
clientKey in the body
Rate limits
600 per minute per key
Format
JSON (POST)

Get started

  1. Sign up and top up your balance.
  2. Create a key from the API key menu in your account. The key is shown only once, when created.
  3. Create a task with createTask, then call getTaskResult with the taskId you get every few seconds.
  4. When status becomes ready, put the solution into the page.

Clients built for the createTask format work as is once you change the API address. New address: https://gatesolver.com

createTask

POST https://gatesolver.com/createTask

Creates a task and returns a taskId. You are not charged at this point.

FieldFormatRequiredDescription
clientKeystringYesAPI key
taskobjectYesTask details. type and type-specific fields (see the task type table below and each type's page)
callbackUrlstringNoNot supported. Get results with getTaskResult.

Request

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

Response

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

getTaskResult

POST https://gatesolver.com/getTaskResult

Returns the task result. We recommend polling every 3 seconds for token types and every 1 second for image recognition. The price of 1 task is deducted from your balance the moment it is solved.

FieldDescription
statusprocessing (waiting), ready (answer available), failed (failed, not charged)
solutionThe answer. Fields differ by type (gRecaptchaResponse, token, cookie, text, etc.)
costAmount charged for this task (USD)
createTime / endTimeCreated and finished time (milliseconds)
{
  "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

Returns your balance in US dollars.

{ "clientKey": "YOUR_API_KEY" }

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

Task type

Type names are case-insensitive. Fields and examples for each type are on its own page.

typeType1,000 tasks
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

Error codes

On error, errorId is 1 and errorCode and errorDescription are included. Error responses are not charged.

errorCodeMeaning
ERROR_KEY_DENIED_ACCESSclientKey is missing or invalid.
ERROR_ZERO_BALANCEInsufficient balance. Top up and try again.
ERROR_TASK_NOT_SUPPORTEDUnsupported task type.
ERROR_INVALID_TASK_DATAA required field is missing. errorDescription contains the missing field name.
ERROR_TASKID_INVALIDThis taskId was not created with this key or does not exist.
ERROR_CAPTCHA_UNSOLVABLECould not solve it. You were not charged. Please send it again.
ERROR_SERVICE_UNAVAILABLENetwork error. You were not charged. Try again shortly.
ERROR_RATE_LIMITYou exceeded 600 requests per minute. Space out your requests.
ERROR_ACCOUNT_SUSPENDEDThis account is suspended.

in.php compatible

For in.php-style programs, just change the address. Supported methods: userrecaptcha (reCAPTCHA v2), turnstile, geetest, base64 and post (image text).

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

Add json=1 to get replies shaped like {"status":1,"request":"..."}.

Examples

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..."}))