Documentation
API reference and integration guide
hCaptcha
Supported sites
hCaptcha is reliably solved for Steam (help.steampowered.com, steamcommunity.com) and E*** G**** (target-site.com — invisible enterprise via rqdata). Other domains are not guaranteed yet — support is in progress.How it works
Steam — a normal (checkbox) widget. Pass websiteURL + websitePublicKey; for a clean pass set your own proxy (the token is then minted through your IP). The response contains a ready token to place into the recovery form.
E*** G**** — invisible enterprise. The site generates rqdata in your session; pass it together with target-site's websitePublicKey and the same proxy used to obtain the rqdata (enterprise is bound to the session IP — if the mint IP differs from the rqdata IP, hCaptcha returns a challenge and the token is rejected). We return a token that you submit in your own flow (e.g. in XAL) under the same userAgent as in the response.
What is returned: the solution.token string (h-captcha-response / g-recaptcha-response, usually like P1_…) and solution.userAgent. The token lives ~120s — place/submit it immediately.
task parameters
POST https://api.funsolver.com/createTask
Content-Type: application/json
{
"clientKey": "fsk_abc...",
"task": {
"type": "HCaptchaTask",
"websiteURL": "https://example.com/login",
"websitePublicKey": "a5f74b19-9e45-40e0-b45d-47ff91b7a6c2",
"rqdata": "<enterprise payload, optional>",
"proxy": "http://user:pass@host:port",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) ... Chrome/149.0.0.0 ..."
}
}type"HCaptchaTask" (with your proxy) or "HCaptchaTaskProxyless" (on our IP).websiteURLwebsitePublicKeyrqdataproxyuserAgentgetTaskResult response
{
"errorId": 0,
"status": "ready",
"solution": {
"token": "P1_eyJ...",
"userAgent": "Mozilla/5.0 ..."
},
"processingTime": 4.2
}solution.token is the h-captcha-response / g-recaptcha-response value to put into the form. solution.userAgent is the UA the captcha was solved under: submit the token with the same UA (otherwise hCaptcha flags a UA-mismatch → score=0).
Examples
Steam (normal widget, no rqdata)
POST https://api.funsolver.com/createTask
Content-Type: application/json
{
"clientKey": "fsk_abc...",
"task": {
"type": "HCaptchaTask",
"websiteURL": "https://help.steampowered.com/en/wizard/HelpWithLoginInfo",
"websitePublicKey": "464c5638-2416-4818-8fa8-91e669b4d6a8",
"proxy": "http://user:pass@host:port"
}
}Without proxy use "HCaptchaTaskProxyless" (minted on our IP).
E*** G**** (invisible enterprise, with rqdata)
POST https://api.funsolver.com/createTask
Content-Type: application/json
{
"clientKey": "fsk_abc...",
"task": {
"type": "HCaptchaTask",
"websiteURL": "https://www.target-site.com/id/login",
"websitePublicKey": "91e4137f-95af-4bc9-9d05-6e6fd9c7c9f1",
"rqdata": "<rqdata, generated in your target-site session>",
"proxy": "http://user:pass@host:port",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36"
}
}Important: rqdata and the mint must go through the same IP — pass the same proxy under which target-site issued the rqdata. The response is a token you submit into your own target-site flow (XAL) under the same userAgent.