What is hCaptcha?
hCaptcha is a privacy-focused captcha service. It presents a checkbox and may show image classification challenges ('Select all images containing a bicycle'). hCaptcha Enterprise adds additional behavioral analysis and device fingerprinting for higher security sites.
How It Works
Send Task
POST your HCaptchaTaskProxyLess with the target URL and sitekey to our API. We'll queue it instantly.
We Solve
Capzy's proprietary solver returns valid hCaptcha tokens for authorized testing and automation. Standard and Enterprise variants are both supported.
Get Token
Poll getTaskResult — when status is 'ready', the solution contains the token to inject into the target page.
Quick Integration
import requests, time
API = "https://api.capzy.ai"
KEY = "capzy_your_key_here"
# Step 1: Create task
task = requests.post(f"{API}/createTask", json={
"clientKey": KEY,
"task": {
"type": "HCaptchaTaskProxyLess",
"websiteKey": "a5f74b19-9e45-40e0-b45d-47ff91b7a6c2",
"websiteURL": "https://example.com/login"
}
}).json()
task_id = task["taskId"]
print(f"Task created: {task_id}")
# Step 2: Poll for result
while True:
result = requests.post(f"{API}/getTaskResult", json={
"clientKey": KEY,
"taskId": task_id
}).json()
if result["status"] == "ready":
print("Solved!", result["solution"])
break
elif result["status"] == "failed":
print("Failed:", result.get("errorDescription"))
break
time.sleep(1)Using Your Own Proxy
Use HCaptchaTask instead of HCaptchaTaskProxyLess to route the solve through your own proxy. This is useful when the target site checks the IP that solved the captcha matches the IP submitting the form.
import requests, time
API = "https://api.capzy.ai"
KEY = "capzy_your_key_here"
# Step 1: Create task
task = requests.post(f"{API}/createTask", json={
"clientKey": KEY,
"task": {
"type": "HCaptchaTask",
"proxyPort": "8080",
"proxyType": "http",
"proxyLogin": "user",
"websiteKey": "a5f74b19-9e45-40e0-b45d-47ff91b7a6c2",
"websiteURL": "https://example.com/login",
"proxyAddress": "123.45.67.89",
"proxyPassword": "pass"
}
}).json()
task_id = task["taskId"]
print(f"Task created: {task_id}")
# Step 2: Poll for result
while True:
result = requests.post(f"{API}/getTaskResult", json={
"clientKey": KEY,
"taskId": task_id
}).json()
if result["status"] == "ready":
print("Solved!", result["solution"])
break
elif result["status"] == "failed":
print("Failed:", result.get("errorDescription"))
break
time.sleep(1)additional proxy parameters
proxyTypetypestringreqyesProxy protocol: http, https, socks4, or socks5proxyAddresstypestringreqyesProxy IP address or hostnameproxyPorttypenumberreqyesProxy port numberproxyLogintypestringreqnoProxy username (if auth required)proxyPasswordtypestringreqnoProxy password (if auth required)userAgenttypestringreqnoUser-Agent string to use. Must match the UA you use when submitting the tokentask parameters.
typetypestringreqyesHCaptchaTaskProxyLess or HCaptchaTaskwebsiteURLtypestringreqyesThe page URL where hCaptcha is loadedwebsiteKeytypestringreqyesThe sitekey (UUID format). Found in data-sitekey attributeisEnterprisetypebooleanreqnoSet true for hCaptcha Enterprisesolution response.
tokentypestringThe solved hCaptcha token. Submit in h-captcha-response fieldFeatures
ProxyLess Task Type
HCaptchaTaskProxyLessWith Proxy
HCaptchaTaskFrequently Asked Questions
start solving hcaptcha.
$0.10 in free credits — no card. ~250 free solves to test before you spend.