Documentação

Protocolo CapSolver-compatible. Nunca envie a API key no browser.

createTask

POST /createTask
{
  "clientKey": "inf_...",
  "task": {
    "type": "ReCaptchaV2TaskProxyLess",
    "websiteURL": "https://example.com",
    "websiteKey": "6Le..."
  },
  "api": 2
}

api é opcional. Sem ele, o roteador escolhe a API habilitada de menor custo.

getTaskResult

POST /getTaskResult
{ "clientKey": "inf_...", "taskId": "uuid" }

2Captcha compat

Os mesmos fluxos existem em /in.php e /res.php.

SDKs

# curl
curl -X POST https://HOST/createTask -d '{"clientKey":"inf_...","task":{"type":"ReCaptchaV2TaskProxyLess","websiteURL":"https://example.com","websiteKey":"6Le..."}}'

# Python
import requests
r = requests.post("https://HOST/createTask", json={"clientKey":"inf_...","task":{"type":"ReCaptchaV2TaskProxyLess","websiteURL":"...","websiteKey":"..."}})
tid = r.json()["taskId"]
print(requests.post("https://HOST/getTaskResult", json={"clientKey":"inf_...","taskId":tid}).json())

# Node
const r = await fetch("https://HOST/createTask", {method:"POST", headers:{"Content-Type":"application/json"}, body: JSON.stringify({clientKey:"inf_...", task:{type:"ReCaptchaV2TaskProxyLess", websiteURL:"...", websiteKey:"..."}})})

# Go
req, _ := http.NewRequest("POST", "https://HOST/createTask", strings.NewReader(body))

# PHP
$ch = curl_init("https://HOST/createTask");
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
GET  /api/v1/balance
POST /api/v1/tasks/hcaptcha
POST /api/v1/tasks/hcaptcha-tse
POST /api/v1/tasks/hcaptcha-gov
GET  /api/v1/tasks/{requestId}
Header: x-api-key