Skip to content

CaptchaFox

CaptchaFox is a privacy-first CAPTCHA solution designed as a GDPR-compliant alternative to services like reCAPTCHA. It uses risk-based analysis and invisible challenges to verify users with minimal friction. The uCaptcha API solves CaptchaFox challenges and returns a verification token.

TypeProxyDescription
CaptchaFoxTokenNoSolve CaptchaFox challenges
ParameterTypeRequiredDescription
typestringYesMust be CaptchaFoxToken
websiteURLstringYesURL of the page with the CaptchaFox widget
websiteKeystringYesCaptchaFox site key
{
"clientKey": "YOUR_API_KEY",
"task": {
"type": "CaptchaFoxToken",
"websiteURL": "https://example.com/contact",
"websiteKey": "sk_11223344556677889900aabbcc"
}
}
{
"errorId": 0,
"taskId": "abc-123-def"
}
{
"token": "CAPTCHAFOX_1a2b3c4d5e6f...verification_token"
}
FieldTypeDescription
tokenstringThe CaptchaFox verification token to submit with the form

Once you receive the token value from the solution:

  1. Form submission — Set the CaptchaFox token in the hidden verification input field and submit the form.
  2. Server-side validation — Pass the token to the target site’s backend, which will verify it against the CaptchaFox API.
import requests
import time
API_KEY = "YOUR_API_KEY"
# Create task
response = requests.post("https://api.ucaptcha.net/createTask", json={
"clientKey": API_KEY,
"task": {
"type": "CaptchaFoxToken",
"websiteURL": "https://example.com/contact",
"websiteKey": "sk_11223344556677889900aabbcc"
}
})
task_id = response.json()["taskId"]
# Poll for result
while True:
result = requests.post("https://api.ucaptcha.net/getTaskResult", json={
"clientKey": API_KEY,
"taskId": task_id
}).json()
if result["status"] == "ready":
token = result["solution"]["token"]
print("Token:", token)
break
elif result["status"] == "failed":
print("Error:", result.get("errorDescription"))
break
time.sleep(5)
const API_KEY = "YOUR_API_KEY";
const { taskId } = await fetch("https://api.ucaptcha.net/createTask", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
clientKey: API_KEY,
task: {
type: "CaptchaFoxToken",
websiteURL: "https://example.com/contact",
websiteKey: "sk_11223344556677889900aabbcc"
}
})
}).then(r => r.json());
while (true) {
const result = await fetch("https://api.ucaptcha.net/getTaskResult", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ clientKey: API_KEY, taskId })
}).then(r => r.json());
if (result.status === "ready") {
console.log("Token:", result.solution.token);
break;
} else if (result.status === "failed") {
console.error("Error:", result.errorDescription);
break;
}
await new Promise(r => setTimeout(r, 5000));
}
Terminal window
# Create task
curl -X POST https://api.ucaptcha.net/createTask \
-H "Content-Type: application/json" \
-d '{
"clientKey": "YOUR_API_KEY",
"task": {
"type": "CaptchaFoxToken",
"websiteURL": "https://example.com/contact",
"websiteKey": "sk_11223344556677889900aabbcc"
}
}'
# Poll for result (replace TASK_ID with the taskId from above)
curl -X POST https://api.ucaptcha.net/getTaskResult \
-H "Content-Type: application/json" \
-d '{
"clientKey": "YOUR_API_KEY",
"taskId": "TASK_ID"
}'
  • 2Captcha
  • RiskByPass
  • Multibot