Skip to content

FunCaptcha

A FunCaptcha (Arkose Labs) task returns a token (token) that you submit to the target site to pass the check, with no puzzles to solve. FunCaptchaTaskProxylessM1 costs 110 points (¥0.11) per task and FunCaptchaTask (your own proxy) costs 15 points (¥0.015); both are asynchronous: createTask, then getTaskResult every 5 seconds. Failed and timed-out tasks are refunded automatically.

POSThttps://api.yescaptcha.com/createTaskGlobal endpoint
POSThttps://cn.yescaptcha.com/createTaskChina endpoint

The request body is JSON authenticated with your clientKey. Query results on the same endpoint you created the task on.

The page loads an Arkose Labs check (arkoselabs.com, funcaptcha.com), common on sign-up and login pages. Use this page to get a token; to solve the image puzzles yourself in a browser, use FunCaptcha image recognition.

Task typePriceModeNotes
FunCaptchaTaskProxyless30 points (¥0.03)Asynchronous
FunCaptchaTaskProxylessM1110 points (¥0.11)Asynchronous
FunCaptchaTask15 points (¥0.015)AsynchronousOwn proxy
  • FunCaptchaTask loads the captcha through your own proxy and needs the proxy fields and userAgent.
  • The three types take essentially the same parameters; compare pass rates and choose.
FieldTypeRequiredDescription
typestringYesTask type; see "Task types and pricing" on this page
websiteURLstringYesFull URL of the page that shows the captcha. Use the site you see the captcha on, not the captcha vendor's domain
websitePublicKeystringYesThe FunCaptcha public key, the data-pkey value in the page or the part after pkey= in the request URL, e.g. B7D8911C-5CC8-A9A3-35B0-554ACEE604DA
funcaptchaApiJSSubdomainstringNoThe subdomain that serves FunCaptcha; some sites use a custom one. Take it from the iframe URL, e.g. client-api.arkoselabs.com
datastringNoExtra blob data as a JSON string such as {"blob":"..."}. Pass it as is without URL encoding; omit if the page does not use it
userAgentstringRequired for FunCaptchaTaskBrowser User-Agent; must match the one you use to visit the target site
proxyTypestringRequired for FunCaptchaTaskProxy protocol: http, https, socks4 or socks5
proxyAddressstringRequired for FunCaptchaTaskProxy IP address or hostname. Local or private addresses such as 127.0.0.1 or 192.168.x.x will not work because our servers cannot reach them
proxyPortintegerRequired for FunCaptchaTaskProxy port
proxyLoginstringNoProxy username, if the proxy requires authentication (FunCaptchaTask only)
proxyPasswordstringNoProxy password, if the proxy requires authentication (FunCaptchaTask only)
  • websiteURL: the site where you see the captcha, not funcaptcha.com or arkoselabs.com.
  • websitePublicKey: the page’s data-pkey value, or the pkey value in a request such as …/fc/api/nojs/?pkey=….
  • funcaptchaApiJSSubdomain: some sites load FunCaptcha from a custom subdomain; take it from the iframe URL, for example client-api.arkoselabs.com.
  • data: blob data the site passes to the captcha, as a JSON string like {"blob":"..."}. Pass it exactly as is; don’t encode or decode characters such as %3D and %2B. Omit it if you can’t find one.
POST https://api.yescaptcha.com/createTask
{
"clientKey": "YOUR_CLIENT_KEY",
"task": {
"type": "FunCaptchaTaskProxylessM1",
"websiteURL": "https://example.com/signup",
"websitePublicKey": "B7D8911C-5CC8-A9A3-35B0-554ACEE604DA",
"funcaptchaApiJSSubdomain": "client-api.arkoselabs.com"
}
}
终端窗口
curl -s https://api.yescaptcha.com/createTask \
-H 'Content-Type: application/json' \
-d '{
"clientKey": "YOUR_CLIENT_KEY",
"task": {
"type": "FunCaptchaTaskProxylessM1",
"websiteURL": "https://example.com/signup",
"websitePublicKey": "B7D8911C-5CC8-A9A3-35B0-554ACEE604DA",
"funcaptchaApiJSSubdomain": "client-api.arkoselabs.com"
}
}'
# Returns {"errorId":0,"taskId":"..."}; then poll every 5 seconds:
curl -s https://api.yescaptcha.com/getTaskResult \
-H 'Content-Type: application/json' \
-d '{"clientKey": "YOUR_CLIENT_KEY", "taskId": "TASK_ID"}'

With your own proxy and blob data:

POST https://api.yescaptcha.com/createTask
{
"clientKey": "YOUR_CLIENT_KEY",
"task": {
"type": "FunCaptchaTask",
"websiteURL": "https://example.com/signup",
"websitePublicKey": "B7D8911C-5CC8-A9A3-35B0-554ACEE604DA",
"data": "{\"blob\":\"BLOB_VALUE_FROM_THE_PAGE\"}",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/155.0.0.0 Safari/537.36",
"proxyType": "http",
"proxyAddress": "proxy.example.com",
"proxyPort": 8080,
"proxyLogin": "user",
"proxyPassword": "pass"
}
}
{
"errorId": 0,
"status": "ready",
"solution": {
"token": "36859d1086acb06e7.08293101|r=ap-southeast-1|metabgclr=%23ffffff|..."
}
}
FieldTypeDescription
tokenstringThe token to submit to the target site. Single use; submit it as soon as possible

While in progress you get {"errorId": 0, "status": "processing"}; check again 5 seconds later. Handle errors by errorCode as described in Error codes.

Single use. Submit it as soon as possible.

Check websitePublicKey and funcaptchaApiJSSubdomain. If the site requires blob data, data must be included and must not be re-encoded. FunCaptchaTaskProxyless keeps failing (and refunding) until it is repaired; use the other two types.