Документация
Справочник по API и руководство по интеграции
ОбзорFunCaptchaFunCaptcha ProxylessFunCaptcha BDACastlereCAPTCHA v2reCAPTCHA v2 EnterprisereCAPTCHA v3reCAPTCHA v3 EnterpriseTurnstilehCaptchaCloudflareImage→TextMath ImageFC ClassificationDataDome
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"
}
}typestringrequired
"RecaptchaV2EnterpriseTask"websiteURLstringrequired
Полный URL страницы с капчей. Токен привязывается к её домену.
websiteKeystringrequired
Site key виджета (атрибут
data-sitekey или параметр k запроса /anchor). Также принимается websitePublicKey.proxystringrequired
Резидентный прокси:
http://user:pass@host:port, socks5://user:pass@host:port, host:port:user:pass. Капча решается с IP прокси.isInvisiblebool
true для невидимой reCAPTCHA.pageActionstring
Значение параметра
sa в запросе /recaptcha/enterprise/anchor, если он есть.enterprisePayloadobject
Доп. параметры виджета. Если в
/recaptcha/enterprise/anchor есть s, передайте {"s": "<значение>"}.apiDomainstring
Домен, с которого сайт грузит капчу:
www.google.com (по умолчанию) или www.recaptcha.net.Как найти параметры
Откройте страницу, DevTools → Network, фильтр anchor. В запросе https://www.google.com/recaptcha/enterprise/anchor?…:
k=...websiteKeysize=invisibleisInvisible: truesa=...pageActions=...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