UNLOCK API

reCAPTCHA v2 Enterprise solving API

Send a reCAPTCHA v2 Enterprise task to the API and get back the answer your code submits to the page. Page URL, site key and the enterprise payload if the site uses one. You get: Token for g-recaptcha-response.

At a glance

Price per 1,000
$0.50 ($0.0005 per task)
createTask type
RecaptchaV2EnterpriseTaskProxyless, RecaptchaV2EnterpriseTask
in.php method
userrecaptcha, enterprise=1
You send
Page URL, site key and the enterprise payload if the site uses one
You get
Token for g-recaptcha-response

Where to find the values

Enterprise pages load enterprise.js. The site key is in data-sitekey or the k= parameter. If the page sends an s value, pass it as enterprisePayload.

createTask and getTaskResult

Create the task, wait about 5 seconds, then check the result every 5 seconds until the status is ready. If the task fails, the API returns an error and the charge goes back to your balance.

import time, requests

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

task = requests.post(f"{API}/createTask", json={
  "clientKey": KEY,
  "task": {
      "type": "RecaptchaV2EnterpriseTaskProxyless",
      "websiteURL": "https://example.com/login",
      "websiteKey": "6LcR_RsTAAAAAFJR_5ZdbQd0SMxL7yIDmSXH1-lo"
    }
}).json()
if task["errorId"]:
    raise SystemExit(task["errorCode"])

while True:
    time.sleep(5)
    r = requests.post(f"{API}/getTaskResult", json={"clientKey": KEY, "taskId": task["taskId"]}).json()
    if r["errorId"]:
        raise SystemExit(r["errorCode"])   # failed tasks are refunded
    if r["status"] == "ready":
        print(r["solution"]["gRecaptchaResponse"])
        break

in.php and res.php

The same task with the classic form API. Add json=1 to get JSON answers; without it the answers are plain text such as OK|1001.

curl -s "https://unlock-api.com/in.php" -d "key=YOUR_API_KEY&method=userrecaptcha&enterprise=1&googlekey=SITE_KEY&pageurl=https://example.com/login&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"}