Solving CaptchaFox Challenges
CaptchaFox is a privacy-first captcha alternative using behavioral and proof-of-work signals. The widget renders from a sitekey starting with sk_ and produces a cf-captcha-response token on completion. MeshPrivacy generates valid tokens by executing the challenge server-side.
Service Schema
| Field | Type | Required | Description |
|---|---|---|---|
url | string | Yes | Page URL containing CaptchaFox widget |
sitekey | string | Yes | CaptchaFox site key (starts with sk_) |
proxy_config | string | No | Proxy in http://user:pass@ip:port format |
user_agent | string | No | Custom user agent |
Service ID: captchafox · Status: Stable
Real-time API status: trust.meshprivacy.com
Where to find the sitekey
Inspect the page source for a data-sitekey attribute on the .captchafox element, or check the window.captchafox initialisation script. Sitekeys are public and identify the site to CaptchaFox's servers.
Integration Example
captchafox.js
// Submit CaptchaFox task to MeshPrivacy
const response = await fetch('https://api.meshprivacy.com/v1/tasks/submit', {
method: 'POST',
headers: { 'Content-Type': 'application/json', 'X-API-Key': API_KEY },
body: JSON.stringify({
service: 'captchafox',
url: 'https://target-site.com/', // required
sitekey: 'sk_xxxxxxxxxxxxxxxx', // required - starts with sk_
proxy_config: 'http://user:pass@ip:port', // optional
user_agent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)...' // optional
})
});
const { task_id } = await response.json();
// Poll for result
const result = await fetch(`https://api.meshprivacy.com/v1/tasks/result/${task_id}`, {
headers: { 'X-API-Key': API_KEY }
});
const { token } = await result.json();
// Submit token as cf-captcha-response form valueFAQ
CaptchaFox tokens are typically valid for 2 minutes after generation. Submit promptly after solving.
