UNLOCK API

POST /createTask

Solve CAPTCHAs with one API call.

reCAPTCHA, Cloudflare Turnstile, GeeTest, FunCaptcha, AWS WAF and image CAPTCHAs. Send a task, poll the result, get a token. Same request format as in.php and createTask, so existing code keeps working.

  • 36 CAPTCHA types supported
  • failed tasks cost $0
  • pay only for solved tasks
  • no subscription
curl https://unlock-api.com/createTask \
  -H "Content-Type: application/json" \
  -d '{
    "clientKey": "YOUR_API_KEY",
    "task": {
      "type": "TurnstileTaskProxyless",
      "websiteURL": "https://example.com",
      "websiteKey": "0x4AAAAAAAC3DHQFLr1GavRN"
    }
  }'
POST /getTaskResult0.0s
"status": "processing"

Types and prices

Price per 1,000 solved tasks. Proxyless and proxy versions cost the same. Unsolved and failed tasks are refunded automatically.

Full price list
TypePer 1,000
reCAPTCHA v2$0.45
reCAPTCHA v2 Enterprise$0.50
reCAPTCHA v3$0.55
Cloudflare Turnstile$0.55
GeeTest v3 / v4$0.70
FunCaptcha (Arkose Labs)$0.725
Amazon AWS WAF$0.70
MTCaptcha$0.725
Friendly Captcha$0.725
Lemin Cropped Captcha$0.725
DataDome$0.725
KeyCaptcha$1.495
Capy Puzzle$1.495
Cloudflare Challenge page$0.725
Cutcaptcha$0.725
CyberSiARA$0.725
atbCAPTCHA$0.725
Tencent Captcha$1.30
Prosopo Procaptcha$0.725
CaptchaFox$0.725
Altcha$1.30
NetEase Yidun$0.90
Yandex SmartCaptcha$1.495
VK Captcha$0.725
Binance Captcha$1.495
Custom task (Imperva, Temu and others)$0.90

Top-ups from $30, in USDT on TRON (TRC20). No subscription, no monthly fee.

Three calls

Every type works the same way. Create a task, poll until it is ready, read the answer.

  1. 1. POST /createTask

    Send the CAPTCHA parameters. You get a task id at once.

    {"clientKey":"…","task":{…}}
    {"errorId":0,"taskId":18342}
  2. 2. POST /getTaskResult

    Poll every 5 seconds until status is ready. Failed tasks return an error and are refunded.

    {"clientKey":"…","taskId":18342}
    {"status":"ready","solution":{…}}
  3. 3. POST /getBalance

    Check the balance before large batches.

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

Keep your code. Change two lines.

Point your solver library or your own client at unlock-api.com and use your key from the account page. Task names, parameters, ids and error names stay the same, so retries and error handling you already wrote keep working.

Works with both formats: in.php and res.php (form fields, plain or JSON replies) and createTask, getTaskResult, getBalance (JSON).

- API_URL = "https://your-current-solver"
- API_KEY = "YOUR_CURRENT_KEY"
+ API_URL = "https://unlock-api.com"
+ API_KEY = "YOUR_UNLOCK_API_KEY"

  # everything else stays the same

Your dashboard

API key, balance, every task with its status and cost, and top-ups in one place.

Example

Rules you can rely on

  • Unsolved means free

    A task that fails or runs past 5 minutes is refunded to your balance automatically, with the error name in the reply.

  • Refused means free

    Requests refused with an error, such as a wrong key, low balance or no capacity, are never charged.

  • Request data deleted right away

    Images, proxies and request details are deleted when a task finishes. Type, status, cost and answer stay in your history.

  • Fixed limits

    1,200 requests per minute per account, result checks included. Tasks time out after 5 minutes.

Refund policy/Terms of service

Questions

Do I need to change my code?

Only the address and the key. The API accepts the same in.php and res.php fields and the same createTask and getTaskResult JSON, and answers in the same format with the same error names.

When am I charged?

When the task is created. If it fails or is not solved within 5 minutes, the full charge goes back to your balance automatically.

How do I add funds?

With USDT on TRON (TRC20). Each top-up gets its own address and an exact amount, and the balance updates after the network confirms the transfer.

How do I sign up?

Click Get an API key. You get an account token: save it, because it is the only way to sign in. Your API key is created at the same time.

Can I get a refund of my balance?

Balance is used for tasks and is not paid back to a wallet. Charges for failed tasks always return to the balance.

Which CAPTCHAs are not supported?

Types that are not on the price list are refused with ERROR_TASK_NOT_SUPPORTED and are not charged.

Get your API key in a few seconds

Sign up with one token, no password. Your API key appears on the account page right away.

Get an API key