UNLOCK API

FunCaptcha (Arkose Labs) solving API

Send a FunCaptcha (Arkose Labs) task to the API and get back the answer your code submits to the page. Page URL and the public key. You get: Token for the verification field.

At a glance

Price per 1,000
$0.725 ($0.000725 per task)
createTask type
FunCaptchaTaskProxyless, FunCaptchaTask
in.php method
funcaptcha
You send
Page URL and the public key
You get
Token for the verification field

Where to find the values

The public key is in the data-pkey attribute or in the address of the Arkose Labs script. Some sites need the surl subdomain as funcaptchaApiJSSubdomain.

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": "FunCaptchaTaskProxyless",
      "websiteURL": "https://example.com/login",
      "websitePublicKey": "69A21A01-CC7B-B9C6-0F9A-E7FA06677FFC"
    }
}).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"]["token"])
        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=funcaptcha&publickey=PUBLIC_KEY&pageurl=https://example.com/signup&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"}