Looking for international version of our service? Go to 2captcha.com

Логотип «RuCaptcha»Перейти на главную страницу

Arkose Labs CAPTCHA

Arkose Labs FunCaptcha

Основанный на токенах метод автоматического решения капчи ArkoseLabs (ранее FunCaptcha).

Типы задач

  • FunCaptchaTaskProxyless - мы используем собственный пул прокси-серверов для решения капч
  • FunCaptchaTask - мы используем переданный вами прокси

Спецификация для типа задачи FunCaptchaTaskProxyless

Свойство Тип Обязателен Описание
type Строка Да Тип задачи:
FunCaptchaTaskProxyless
FunCaptchaTask
websiteURL Строка Да Полный URL-адрес целевой веб-страницы, на которую загружается капча. Мы не открываем страницу, это не проблема, если страница доступна только для авторизованных пользователей
websitePublicKey Строка Да Публичный ключ ArkoseLabs CAPTCHA. Публичный ключ можно найти в значении параметра data-pkey у div с FunCaptcha или же найти элемент с именем (name) fc-token, а из его значения вырезать ключ, который указан после pk.
funcaptchaApiJSSubdomain Строка Нет Пользовательский поддомен, используемый для загрузки виджета captcha, например: sample-api.arkoselabs.com
data Строка Нет Дополнительный объект полезной нагрузки данных преобразован в строку с помощью JSON.stringify. Пример: {\"blob\":\"BLOB_DATA_VALUE\"}
userAgent Строка Нет User-Agent браузера, который будет использован пользователем при загрузке капчи. Важно использовать значения User-Agent только современных браузеров.

Спецификация для типа задачи FunCaptchaTask

Задача FunCaptchaTask расширяет FunCaptchaTaskProxyless, добавляя набор параметров, связанных с прокси, перечисленных ниже.

Свойство Тип Обязателен Описание
proxyType Строка Да Тип прокси:
http
socks4
socks5
proxyAddress Строка Да IP-адрес прокси-сервера или имя хоста
proxyPort Целое число Да Порт прокси-сервера
proxyLogin Строка Нет Логин используемый для аунтефикации на прокси-сервере
proxyPassword Строка Нет Пароль используемый для аунтефикации на прокси-сервере

Примеры запросов

Метод: createTask
Эндпоинт API: https://api.rucaptcha.com/createTask

FunCaptchaTaskProxyless

json Copy
{
    "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",
    },
    "softId": "3898",
    "callbackUrl": "https://1.2.3.4/webhooks/captcha"
}

FunCaptchaTask

json Copy
{
    "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"
    },
    "softId": "3898",
    "callbackUrl": "https://1.2.3.4/webhooks/captcha"
}

Пример ответа

Метод: getTaskResult
Эндпоинт API: https://api.rucaptcha.com/getTaskResult

json Copy
{
    "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
}

Примеры кода

php Copy
// 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);
python Copy
# 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))
csharp Copy
// 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());
        }
    }
}
go Copy
// 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)
}
ruby Copy
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"
})

Полезные ссылки