작업 유형
reCAPTCHA v3 Enterprise
RecaptchaV3EnterpriseTaskProxyless프록시 불필요
reCAPTCHA v3에는 위젯이 없습니다. 사이트가 모든 행동을 0.0~1.0 점수로 평가합니다. API는 요청한 pageAction에 대한 토큰을 반환하며, 필요한 점수는 minScore로 지정합니다.
Enterprise 버전: 사이트가 enterprise.js를 불러오고 enterprisePayload로 추가 데이터를 전달할 수 있습니다. 그 값을 그대로 보내세요.
프록시 불필요: 당사 인프라에서 해결합니다. 대상 사이트가 토큰을 IP에 묶지 않는 경우에 적합합니다.
실시간 지표(24시간)
이 유형의 실시간 지표는 출시 후 상태 페이지에 표시됩니다.
작업 파라미터
| 파라미터 | 타입 | 필수 | 작업 파라미터 |
|---|---|---|---|
type | string | 필수 | RecaptchaV3EnterpriseTaskProxyless |
websiteURL | string | 필수 | 캡차가 있는 페이지의 전체 URL. |
websiteKey | string | 필수 | 사이트 키(data-sitekey 또는 anchor 요청의 k 파라미터). |
minScore | number | 선택 | 필요한 점수(0.1~0.9). 점수가 높을수록 오래 걸립니다. |
pageAction | string | 선택 | 페이지가 grecaptcha.execute에 전달하는 액션 이름. |
enterprisePayload | object | 선택 | 추가 Enterprise 파라미터(예: s)를 객체로 전달합니다. |
apiDomain | string | 선택 | 위젯을 불러오는 도메인: google.com 또는 recaptcha.net. |
userAgent | string | 선택 | 해결에 사용할 User-Agent. 토큰을 제출할 때도 같은 값을 사용하세요. |
cookies | string | 선택 | 대상 사이트의 쿠키(key1=value1; key2=value2 형식). |
예제
import time
import requests
API = "https://"
KEY = "YOUR_API_KEY"
# 1. create a task: the price is held, not charged
task = requests.post(f"{API}/createTask", json={
"clientKey": KEY,
"task": {
"type": "RecaptchaV3EnterpriseTaskProxyless",
"websiteURL": "https://example.com/login",
"websiteKey": "6Le-SITE-KEY",
"minScore": 0.7,
"pageAction": "login",
},
}).json()
if task["errorId"]:
raise RuntimeError(task["errorCode"])
# 2. poll the result (or pass "callbackUrl" and get a signed webhook)
while True:
time.sleep(3)
res = requests.post(f"{API}/getTaskResult",
json={"clientKey": KEY, "taskId": task["taskId"]}).json()
if res["errorId"]:
raise RuntimeError(res["errorCode"])
if res["status"] == "ready":
print(res["solution"]["gRecaptchaResponse"])
break