funsolver

Документация

Справочник по API и руководство по интеграции

FunCaptcha BDA

Отдаём только готовый BDA (зашифрованный отпечаток браузера для Arkose) и сам отпечаток. Картинки мы не решаем и токен не получаем — BDA вы отправляете в Arkose сами (параметр c в /fc/gt2/public_key/<key>). BDA собирается тем же путём, что в нашем FunCaptchaTask.

Цена за 1000 успешных запросов:$0.45 / 1k

Параметры task

HTTP
POST https://api.funsolver.com/createTask
Content-Type: application/json

{
  "clientKey": "fsk_abc...",
  "task": {
    "type":             "FunCaptchaBDA",
    "websiteURL":       "https://www.roblox.com/login",
    "websitePublicKey": "476068BF-9607-4799-B53D-966BE98E2B81",
    "proxy":            "http://user:pass@host:port"
  }
}
type
stringrequired
"FunCaptchaBDA"
websiteURL
stringrequired
Страница, на которой стоит FunCaptcha.
websitePublicKey
stringrequired
Публичный ключ Arkose (sitekey).
proxy
stringrequired
Прокси, с которого вы будете отправлять BDA. Из него берутся гео и часовой пояс, зашитые в BDA — отправляйте с того же IP.
data
string
Не нужен: blob (data[blob]) передаётся в /fc/gt2 отдельно от BDA — подставьте свой.

Ответ getTaskResult

JSON
{
  "errorId": 0,
  "status": "ready",
  "solution": {
    "type":        "FunCaptchaBDA",
    "bda":         "uOncvI+V3jr77vPqLvVowGjq...",
    "userAgent":   "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:150.0) Gecko/20100101 Firefox/150.0",
    "capiVersion": "4.5.0",
    "headers": {
      "user-agent":        "Mozilla/5.0 (...) Firefox/150.0",
      "accept-language":   "en-US,en",
      "x-ark-esync-value": "1790143200",
      "ark-build-id":      "...",
      "Origin":            "https://www.roblox.com",
      "Referer":           "https://www.roblox.com/"
    },
    "fingerprint": { "os": "...", "navigator": {}, "canvas": {}, "webGL": {}, "fonts": [] },
    "bdaPlain":    [ { "key": "api_type", "value": "js" }, { "key": "enhanced_fp", "value": [] } ]
  },
  "processingTime": 1.2
}
bda
string
Зашифрованный BDA — значение параметра c для /fc/gt2.
userAgent
string
UA, под который собран BDA. Слать строго с ним (и в заголовке, и в userbrowser).
capiVersion
string
Значение capi_version для /fc/gt2.
headers
object
Заголовки, с которыми отправлять запрос в /fc/gt2. Особенно важен x-ark-esync-value — BDA зашифрован под него.
fingerprint
object
Отпечаток браузера, под который собран BDA (навигатор, canvas, WebGL, шрифты, экран и т.д.).
bdaPlain
array
Содержимое BDA в открытом виде — ровно то, что зашифровано в bda.

Отправка BDA в Arkose

Python
sol = result["solution"]
body = {
    "c": sol["bda"],
    "public_key": "476068BF-9607-4799-B53D-966BE98E2B81",
    "site": "https://www.roblox.com",
    "userbrowser": sol["userAgent"],
    "capi_version": sol["capiVersion"],
    "capi_mode": "inline",
    "style_theme": "default",
    "rnd": str(random.random()),
    "data[blob]": blob,          # your blob, if the site requires one
}
r = session.post(
    "https://roblox-api.arkoselabs.com/fc/gt2/public_key/476068BF-9607-4799-B53D-966BE98E2B81",
    data=body,
    headers=sol["headers"],     # same UA / x-ark-esync-value / ark-build-id
    proxies={"https": PROXY},   # same proxy as in the task
)

BDA одноразовый и быстро устаревает (привязан к x-ark-esync-value) — используйте его сразу после получения.

Заметил ошибку в доке? Напиши в саппорт.
Для ИИ-агентов: машиночитаемый справочник — /llms.txt