콘텐츠로 이동
서비스 상태대시보드

작업 유형

Cloudflare Turnstile

이 페이지는 중국어 버전을 기계 번역한 것이라 부정확한 내용이 있을 수 있어요. 중국어 버전을 기준으로 해 주세요.

예시 이미지Turnstile은 폼 안에 들어 있어요. 대부분 스스로 확인을 마치고 체크 표시를 보여 주며, 페이지는 다른 곳으로 이동하지 않아요.

Cloudflare Turnstile 작업은 토큰(token)을 반환해요. 이 토큰을 대상 웹사이트에 제출하면 인증을 통과할 수 있어요. TurnstileTaskProxyless는 작업당 25 포인트 (≈ $3.75 / 1k)이고, 비동기로 결과를 반환해요. 먼저 createTask를 호출한 뒤 5초마다 getTaskResult를 폴링하세요. 인식에 실패하거나 시간이 초과되면 포인트가 자동으로 환불돼요.

POSThttps://api.yescaptcha.com/createTask글로벌 엔드포인트
POSThttps://cn.yescaptcha.com/createTask중국 엔드포인트

요청 본문은 JSON이고, clientKey로 인증해요. 작업을 생성한 엔드포인트와 같은 엔드포인트에서 결과를 조회하세요.

웹페이지의 폼 안에 Cloudflare 인증 위젯(“사람인지 확인”)이 포함되어 있고, 페이지가 challenges.cloudflare.com/turnstile 스크립트를 로드하는 경우예요.

페이지 전체가 Cloudflare에 가로막혀 “잠시만 기다리십시오…”, “브라우저를 확인하는 중”이 표시된다면 Turnstile이 아니라 Cloudflare 챌린지 페이지예요. 이 경우에는 Cloudflare 챌린지 페이지를 사용하세요. 구분 방법은 캡차 유형 판별에서 확인할 수 있어요.

작업 유형가격반환 방식설명
TurnstileTaskProxyless$3.75 / 1k; 25 포인트/작업 · ¥25 / 1k비동기
TurnstileTaskProxylessM1$4.50 / 1k; 30 포인트/작업 · ¥30 / 1k비동기
TurnstileTask$3.75 / 1k; 25 포인트/작업 · ¥25 / 1k비동기자체 프록시

미국 달러 가격은 US$1 ≈ ¥6.67 기준의 추정치이며, 작업은 포인트로 차감돼요.

  • TurnstileTaskProxyless와 TurnstileTaskProxylessM1은 파라미터가 같고 경로만 달라서 서로 대체용으로 쓸 수 있어요.
  • TurnstileTask는 직접 준비한 프록시로 캡차를 로드해요. 프록시 필드를 함께 전달해야 해요.
필드유형필수설명
typestring예작업 유형이에요. 이 페이지의 "작업 유형 및 가격"을 참고하세요
websiteURLstring예캡차가 표시되는 페이지의 전체 URL이에요. 캡차 제공업체의 도메인이 아니라 캡차가 보이는 사이트를 입력하세요
websiteKeystring예Turnstile 사이트 키(sitekey)예요. 보통 0x로 시작해요
pageActionstring아니요페이지가 Turnstile에 전달하는 action이에요(turnstile.render의 옵션 또는 위젯 요소의 data-action). 예: login. 대부분의 경우 필요하지 않아요. 작업이 계속 실패할 때만 추가하세요
datastring아니요페이지가 Turnstile에 전달하는 cData예요(turnstile.render의 옵션 또는 위젯 요소의 data-cdata). 예: c0bd4b36-7419-4e18-83c6-378699f2a9a2. 대부분의 경우 필요하지 않아요. 작업이 계속 실패할 때만 추가하세요
proxyTypestring일부 유형프록시 프로토콜이에요: http, https, socks4, socks5 (TurnstileTask에서 필수)
proxyAddressstring일부 유형프록시 IP 주소 또는 호스트 이름이에요. 127.0.0.1이나 192.168.x.x 같은 로컬 또는 사설 주소는 저희 서버가 접근할 수 없어서 사용할 수 없어요 (TurnstileTask에서 필수)
proxyPortinteger일부 유형프록시 포트 (TurnstileTask에서 필수)
proxyLoginstring아니요프록시 사용자 이름(프록시에 인증이 필요한 경우) (TurnstileTask 전용)
proxyPasswordstring아니요프록시 비밀번호(프록시에 인증이 필요한 경우) (TurnstileTask 전용)
userAgentstring아니요브라우저 User-Agent예요. 결과에 userAgent가 있으면 토큰을 제출할 때 그 값을 사용하세요 (TurnstileTask 전용)

websiteKey는 보통 0x로 시작해요. 찾는 방법은 Turnstile 파라미터 찾기를 참고하세요.

통과하지 못할 때: pageAction과 data

섹션 제목: “통과하지 못할 때: pageAction과 data”

대부분은 websiteURL과 websiteKey만 전달하면 충분하고, 이 두 파라미터는 필요하지 않아요. websiteURL과 websiteKey가 모두 맞는데도 작업이 통과하지 못한다면, 웹페이지가 Turnstile을 호출할 때 action과 cData를 전달하는지 확인하세요. turnstile.render의 파라미터이거나 인증 위젯 요소의 data-action, data-cdata예요. 있다면 그대로 함께 전달하세요.

  • pageAction: 웹페이지의 action 값이에요. 예: login
  • data: 웹페이지의 cData 값이에요. 예: c0bd4b36-7419-4e18-83c6-378699f2a9a2
POST https://api.yescaptcha.com/createTask
{
"clientKey": "YOUR_CLIENT_KEY",
"task": {
"type": "TurnstileTaskProxyless",
"websiteURL": "https://example.com/login",
"websiteKey": "0x4AAAAAAA_SITE_KEY",
"pageAction": "login",
"data": "c0bd4b36-7419-4e18-83c6-378699f2a9a2"
}
}
POST https://api.yescaptcha.com/createTask
{
"clientKey": "YOUR_CLIENT_KEY",
"task": {
"type": "TurnstileTaskProxyless",
"websiteURL": "https://example.com/login",
"websiteKey": "0x4AAAAAAA_SITE_KEY"
}
}
curl -s https://api.yescaptcha.com/createTask \
-H 'Content-Type: application/json' \
-d '{
"clientKey": "YOUR_CLIENT_KEY",
"task": {
"type": "TurnstileTaskProxyless",
"websiteURL": "https://example.com/login",
"websiteKey": "0x4AAAAAAA_SITE_KEY"
}
}'
# Returns {"errorId":0,"taskId":"..."}; then poll every 5 seconds:
curl -s https://api.yescaptcha.com/getTaskResult \
-H 'Content-Type: application/json' \
-d '{"clientKey": "YOUR_CLIENT_KEY", "taskId": "TASK_ID"}'

websiteURL과 websiteKey를 대상 웹사이트의 값으로 바꾸세요.

{
"errorId": 0,
"status": "ready",
"solution": {
"token": "0.ufq5RgSVZd11DPSX1brdrxnEs28KcVlKj2ORchqxSy2q9yAW6ciq3hriXDF4x...",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/155.0.0.0 Safari/537.36"
}
}
필드유형설명
tokenstring대상 웹사이트에 제출할 토큰이에요. 1회만 사용할 수 있으니 가능한 한 빨리 사용하세요
userAgentstring토큰을 발급받을 때 사용한 User-Agent예요. 토큰을 제출할 때 이 값을 사용하세요. 보낸 값과 다르면 이 값이 우선해요

token을 웹페이지의 cf-turnstile-response 필드(또는 대상 웹사이트 API가 요구하는 필드)에 넣어 제출하세요. 제출 요청의 User-Agent는 반환된 userAgent를 사용하세요.

처리 중일 때는 {"errorId": 0, "status": "processing"}가 반환돼요. 5초 후에 다시 조회하세요. 오류가 발생하면 errorCode에 따라 처리하세요. 자세한 내용은 오류 코드를 참고하세요.

일회용이에요. 받은 뒤 가능한 한 빨리 제출하세요. Turnstile 토큰은 보통 몇 분 안에 만료되며, 만료 시점은 Cloudflare가 결정해요.

제출했는데도 웹사이트에서 통과되지 않아요

섹션 제목: “제출했는데도 웹사이트에서 통과되지 않아요”

websiteURL이 인증 위젯이 나타나는 페이지인지, websiteKey가 올바른지 확인하고, 제출할 때 반환된 userAgent를 사용하세요. 웹페이지가 action과 cData를 전달한다면 pageAction과 data로 함께 전달하세요. 위의 통과하지 못할 때를 참고하세요. 웹사이트가 IP도 함께 검사한다면 TurnstileTask를 사용하고, 제출할 때도 같은 프록시를 거치세요.