hCaptcha Accessibility Verification Interface
Human-in-the-Loop Requirement
This service is for accessibility testing and QA verification only. By using this API, you confirm: "I am NOT using this service for fully automated AI resolution in violation of the target service's 'No AI/Bot' clauses."
hCaptcha provides invisible and interactive verification challenges. The service returns a h-captcha-response token in a hidden textarea upon completion. MeshPrivacy provides accessibility interfaces for QA teams to verify captcha integration in their applications.
Token Details
| Property | Value |
|---|---|
| Token Field | h-captcha-response |
| Token Length | ~2000+ characters |
| Token TTL | Approximately 2 hours |
| Callback | data-callback required |
Real-time API status: trust.meshprivacy.com
Configuration
<!-- hCaptcha invisible mode configuration -->
<div class="h-captcha"
data-sitekey="[sitekey]"
data-size="invisible"
data-callback="onSubmit">
</div>
<script>
function onSubmit(token) {
// Token received - submit form
document.getElementById('h-captcha-response').value = token;
document.forms[0].submit();
}
</script>Challenge Types
Background behavioral verification without visible challenge. Callback triggers automatically when risk is low.
Visual challenge displayed when behavioral signals indicate higher risk. Requires image selection or other interactive verification.
Combined invisible and passive modes with enhanced detection. May fall back to active challenge based on risk scoring.
Service Variants
hCaptcha resolves through two distinct service IDs in MeshPrivacy. Pick the variant that matches your target.
hcaptchaEnterprise
Standard hCaptcha Enterprise solver. Pass your own proxy and user agent.
| Field | Type | Required | Description |
|---|---|---|---|
url | string | Yes | Page URL containing hCaptcha widget |
sitekey | string | Yes | hCaptcha site key (UUID format) |
proxy_config | string | No | Proxy in http://user:pass@ip:port format |
user_agent | string | No | Custom user agent |
// Submit hCaptcha (Enterprise) task — QA/Testing only
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: 'hcaptcha',
url: 'https://target-site.com/', // required
sitekey: 'abc123-def456...', // required - from data-sitekey
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();
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 h-captcha-response field valuehcap_extendedBeta — internal proxy
Beta variant for harder hCaptcha deployments. Uses MeshPrivacy's internal proxy pool — do not pass proxy_config.
| Field | Type | Required | Description |
|---|---|---|---|
url | string | Yes | Page URL containing hCaptcha widget |
sitekey | string | Yes | hCaptcha site key |
// Submit hCaptcha Extended (Beta) — uses internal proxy
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: 'hcap_extended',
url: 'https://target-site.com/', // required
sitekey: 'abc123-def456...' // required
// Note: hcap_extended runs through a managed proxy.
// Do NOT pass proxy_config — it is ignored for this variant.
})
});