funsolver

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

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

reCAPTCHA v2 Enterprise

Для Enterprise-ключей: сайт грузит enterprise.js, запросы идут на /recaptcha/enterprise/…. Чекбокс или невидимая капча, результат — g-recaptcha-response. Токен живёт ~2 минуты: решайте капчу непосредственно перед отправкой формы.

Цена за 1000 успешных решений:$1.00 / 1k

Параметры task

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

{
  "clientKey": "fsk_abc...",
  "task": {
    "type": "RecaptchaV2EnterpriseTask",
    "websiteURL": "https://example.com/login",
    "websiteKey": "6Lc_aCMTAAAAA...",
    "proxy": "http://user:pass@residential-host:port"
  }
}
type
stringrequired
"RecaptchaV2EnterpriseTask"
websiteURL
stringrequired
Полный URL страницы с капчей. Токен привязывается к её домену.
websiteKey
stringrequired
Site key виджета (атрибут data-sitekey или параметр k запроса /anchor). Также принимается websitePublicKey.
proxy
stringrequired
Резидентный прокси: http://user:pass@host:port, socks5://user:pass@host:port, host:port:user:pass. Капча решается с IP прокси.
isInvisible
bool
true для невидимой reCAPTCHA.
pageAction
string
Значение параметра sa в запросе /recaptcha/enterprise/anchor, если он есть.
enterprisePayload
object
Доп. параметры виджета. Если в /recaptcha/enterprise/anchor есть s, передайте {"s": "<значение>"}.
apiDomain
string
Домен, с которого сайт грузит капчу: www.google.com (по умолчанию) или www.recaptcha.net.

Как найти параметры

Откройте страницу, DevTools → Network, фильтр anchor. В запросе https://www.google.com/recaptcha/enterprise/anchor?…:

k=...websiteKey
size=invisibleisInvisible: true
sa=...pageAction
s=...enterprisePayload.s
хост www.recaptcha.netapiDomain: "www.recaptcha.net"

Ответ getTaskResult

JSON
{
  "errorId": 0,
  "status": "ready",
  "solution": {
    "token":     "03AGdBq25...",
    "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36"
  },
  "processingTime": 8.7
}

solution.token — значение g-recaptcha-response: подставьте его в поле формы (или передайте в callback виджета) и отправьте. solution.userAgent — User-Agent, под которым решена капча: отправляйте форму с этим User-Agent и через тот же прокси.

Ошибки

ERROR_PROXY_REQUIREDНе передан proxy.
ERROR_PROXY_FORMATПрокси в неизвестном формате — проверьте формат.
ERROR_PROXY_UNREACHABLEЧерез прокси не удалось соединиться — проверьте прокси или возьмите другой.
ERROR_PROXY_BLOCKEDGoogle отказал в проверке с IP прокси («automated queries») — смените IP.
ERROR_RECAPTCHA_INVALID_SITEKEYНеверный websiteKey. Для Enterprise-ключа используйте RecaptchaV2EnterpriseTask.
ERROR_RECAPTCHA_INVALID_DOMAINКлюч не разрешён для домена websiteURL — передайте URL страницы, где стоит капча.
ERROR_CAPTCHA_UNSOLVABLEНе удалось решить за отведённое время — повторите задачу.
ERROR_SOLVER_UNAVAILABLEСолверы перегружены — повторите через несколько секунд.

Полный пример (Python)

python
import requests, time

API = "https://api.funsolver.com"
KEY = "fsk_your_api_key_here"

create = requests.post(f"{API}/createTask", json={
    "clientKey": KEY,
    "task": {
        "type": "RecaptchaV2EnterpriseTask",
        "websiteURL": "https://example.com/login",
        "websiteKey": "6Lc_aCMTAAAAA...",
        "proxy": "http://user:pass@residential-host:port",
        # "isInvisible": True,
        # "enterprisePayload": {"s": "..."},
    },
}).json()
task_id = create["taskId"]

while True:
    r = requests.post(f"{API}/getTaskResult", json={"clientKey": KEY, "taskId": task_id}).json()
    if r.get("status") == "ready":
        token, ua = r["solution"]["token"], r["solution"]["userAgent"]
        print("g-recaptcha-response:", token)
        break
    if r.get("errorId"):
        raise RuntimeError(r["errorCode"], r.get("errorDescription"))
    time.sleep(2)
Заметил ошибку в доке? Напиши в саппорт.
Для ИИ-агентов: машиночитаемый справочник — /llms.txt