Arkose Labs CAPTCHA
Token-based method for automated solving of ArkoseLabs CAPTCHA (previously FunCaptcha).
Task types
- FunCaptchaTaskProxyless - we use our own proxies pool to load and solve the captcha
- FunCaptchaTask - we use your proxies
Task specification
Property | Type | Required | Description |
---|---|---|---|
type | String | Yes | Task type: FunCaptchaTaskProxyless FunCaptchaTask |
websiteURL | String | Yes | The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users |
websitePublicKey | String | Yes | ArkoseLabs CAPTCHA public key. The public key can be found in the value of the data-pkey parameter of the div element FunCaptcha, or you can find an element named (name) fc-token and from its value cut out the key that is specified after pk . |
funcaptchaApiJSSubdomain | String | No | Custom subdomain used to load the captcha widget, like: sample-api.arkoselabs.com |
data | String | No | Additional data payload object converted to a string with JSON.stringify . Example: {\"blob\":\"BLOB_DATA_VALUE\"} |
userAgent | String | No | User-Agent of your browser will be used to load the captcha. Use only modern browser's User-Agents |
FunCaptchaTask Task type specification
FunCaptchaTask
extends FunCaptchaTaskProxyless
adding a set of proxy-related parameters listed below
Property | Type | Required | Description |
---|---|---|---|
proxyType | String | Yes | Proxy type: http socks4 socks5 |
proxyAddress | String | Yes | Proxy IP address or hostname |
proxyPort | Integer | Yes | Proxy port |
proxyLogin | String | No | Login for basic authentication on the proxy |
proxyPassword | String | No | Password for basic authentication on the proxy |
Request examples
Method: createTask
API endpoint: https://api.2captcha.com/createTask
FunCaptchaTaskProxyless
{
"clientKey":"YOUR_API_KEY",
"task": {
"type":"FunCaptchaTaskProxyless",
"websiteURL":"https://www.example.com",
"websitePublicKey":"6220FF23-9856-3A6F-9FF1-A14F88123F55",
"funcaptchaApiJSSubdomain":"client-api.arkoselabs.com",
"userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36",
}
}
FunCaptchaTask
{
"clientKey":"YOUR_API_KEY",
"task": {
"type":"FunCaptchaTaskProxyless",
"websiteURL":"https://www.example.com",
"websitePublicKey":"6220FF23-9856-3A6F-9FF1-A14F88123F55",
"funcaptchaApiJSSubdomain":"client-api.arkoselabs.com",
"userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36",
"proxyType":"http",
"proxyAddress":"1.2.3.4",
"proxyPort":"8080",
"proxyLogin":"user23",
"proxyPassword":"p4$w0rd"
}
}
Response example
Method: getTaskResult
API endpoint: https://api.2captcha.com/getTaskResult
{
"errorId": 0,
"status": "ready",
"solution": {
"token": "142000f7f4545ca36.6123911001|r=us-beast-1|meta=3|metabgclr=%23ffffff|metaiconclr=%23757575|guitextcolor=%23000000|pk=6220FF23-9856-3A6F-9FF1-A14F88123F55|dc=1|at=40|ag=101|cdn_url=https%3A%2F%2Fsuncaptcha.com%2Fcdn%2Ffc|lurl=https%3A%2F%2Faudio-us-beast-1.arkoselabs.com|surl=https%3A%2F%2Fsuncaptcha.com|smurl=https%3A%2F%2Fsuncaptcha.com%2Fcdn%2Ffc%2Fassets%2Fstyle-manager"
},
"cost": "0.002",
"ip": "1.2.3.4",
"createTime": 1692863536,
"endTime": 1692863556,
"solveCount": 0
}
Code examples
// https://github.com/2captcha/2captcha-php
require(__DIR__ . '/../src/autoloader.php');
$solver = new \TwoCaptcha\TwoCaptcha('YOUR_API_KEY');
try {
$result = $solver->funcaptcha([
'sitekey' => '6220FF23-9856-3A6F-9FF1-A14F88123F55',
'url' => 'https://www.example.com',
'surl' => 'https://client-api.arkoselabs.com',
]);
} catch (\Exception $e) {
die($e->getMessage());
}
die('Captcha solved: ' . $result->code);
# https://github.com/2captcha/2captcha-python
# https://github.com/2captcha/2captcha-python
import sys
import os
sys.path.append(os.path.dirname(os.path.dirname(os.path.realpath(__file__))))
from twocaptcha import TwoCaptcha
api_key = 'YOUR_API_KEY'
solver = TwoCaptcha(api_key)
try:
result = solver.funcaptcha(sitekey='6220FF23-9856-3A6F-9FF1-A14F88123F55',
url='https://www.example.com',
surl='https://client-api.arkoselabs.com')
except Exception as e:
sys.exit(e)
else:
sys.exit('result: ' + str(result))
// https://github.com/2captcha/2captcha-csharp
using System;
using System.Linq;
using TwoCaptcha.Captcha;
namespace TwoCaptcha.Examples
{
public class FunCaptchaExample
{
public void Main()
{
TwoCaptcha solver = new TwoCaptcha("YOUR_API_KEY");
FunCaptcha captcha = new FunCaptcha();
captcha.SetSiteKey("6220FF23-9856-3A6F-9FF1-A14F88123F55");
captcha.SetUrl("https://www.example.com");
captcha.SetSUrl("https://client-api.arkoselabs.com");
try
{
solver.Solve(captcha).Wait();
Console.WriteLine("Captcha solved: " + captcha.Code);
}
catch (AggregateException e)
{
Console.WriteLine("Error occurred: " + e.InnerExceptions.First().Message);
}
}
}
}
</div>
<div id="java-code-example" data-component="TabPanel">
```java
// https://github.com/2captcha/2captcha-java
package examples;
import com.twocaptcha.TwoCaptcha;
import com.twocaptcha.captcha.FunCaptcha;
public class FunCaptchaExample {
public static void main(String[] args) {
TwoCaptcha solver = new TwoCaptcha("YOUR_API_KEY");
FunCaptcha captcha = new FunCaptcha();
captcha.SetSiteKey("6220FF23-9856-3A6F-9FF1-A14F88123F55");
captcha.SetUrl("https://www.example.com");
captcha.SetSUrl("https://client-api.arkoselabs.com");
try {
solver.solve(captcha);
System.out.println("Captcha solved: " + captcha.getCode());
} catch (Exception e) {
System.out.println("Error occurred: " + e.getMessage());
}
}
}
// https://github.com/2captcha/2captcha-go
package main
import (
"fmt"
"log"
"github.com/2captcha/2captcha-go"
)
func main() {
client := api2captcha.NewClient("API_KEY")
captcha := api2captcha.FunCaptcha{
SiteKey: "6220FF23-9856-3A6F-9FF1-A14F88123F55",
Url: "https://www.example.com",
Surl: "https://client-api.arkoselabs.com",
Data: map[string]string{"anyKey":"anyValue"},
}
code, err := client.Solve(captcha.ToRequest())
if err != nil {
log.Fatal(err);
}
fmt.Println("code "+code)
}
require 'api_2captcha'
client = Api2Captcha.new("YOUR_API_KEY")
result = client.funcaptcha({
publickey: "6220FF23-9856-3A6F-9FF1-A14F88123F55",
pageurl: "https://www.example.com",
surl: "https://client-api.arkoselabs.com"
})