Logo of «GitHub»

Arkose Labs CAPTCHA

ArkoseLabs FunCaptcha widget

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"
})