신청 절차
Cloudflare Turnstile 프로토콜 인식 API를 사용하려면 먼저 Ace Data Cloud 콘솔에서 API Token을 받아야 합니다. 이 Token은 나중에 사용할 수 있도록 보관합니다.
로그인 또는 등록이 되어 있지 않으면 자동으로 로그인 페이지로 리디렉션되어 등록 및 로그인을 요청합니다. 완료 후 현재 페이지로 자동으로 돌아옵니다.
하나의 API Token으로 플랫폼의 모든 서비스를 호출할 수 있으며, 각 서비스마다 별도로 신청할 필요가 없습니다. 처음 신청 시 무료 크레딧이 제공되어 무료로 체험할 수 있습니다. 크레딧이 부족할 경우 콘솔에서 일반 잔액을 충전할 수 있습니다.
📘 전체 문서: Cloudflare Turnstile 프로토콜 인식 API →
기본 사용
먼저 기본 사용 방법을 이해해야 합니다. 처리할 Turnstile CAPTCHA가 있는 웹사이트의 URL을 입력하면 처리된 결과를 얻을 수 있습니다. 먼저website_url 필드를 간단히 전달해야 합니다. 우리의 예시 웹사이트는 https://react-turnstile.vercel.app이며, website_url 페이지에서 website_key를 가져와야 합니다. 이 웹페이지를 열고 F12를 눌러 콘솔에 들어가서 Element 페이지에서 cf-turnstile을 전역 검색하면 Turnstile을 포함하는 컨테이너 요소를 찾을 수 있습니다. 여기서 data-sitekey에 해당하는 문자열이 website_key의 값입니다.
설정된 Request Headers는 다음과 같습니다:
accept: 어떤 형식의 응답 결과를 받고 싶은지, 여기서는application/json으로 JSON 형식으로 입력합니다.authorization: API를 호출하는 키로, 신청 후 드롭다운에서 직접 선택할 수 있습니다.
website_url: CAPTCHA를 처리할 웹사이트의 URL입니다.website_key: Cloudflare Turnstile에서의 웹사이트 키 식별자(sitekey)입니다.action: 선택적 매개변수로, 대상 웹사이트가 Turnstile 구성 요소에 사용자 정의action을 설정한 경우에만 전달해야 합니다.cdata: 선택적 매개변수로, 대상 웹사이트가 Turnstile 구성 요소에 사용자 정의cData를 설정한 경우에만 전달해야 합니다.
token: 이번 Cloudflare Turnstile CAPTCHA 작업 처리 후의 검증 결과입니다.started_at,finished_at: 이번 요청의 처리 시작 및 결과 생성 시간으로, Unix 타임스탬프(초, 부동 소수점)입니다.elapsed: 이번 처리의 총 소요 시간(초)입니다.
cf-turnstile-response 매개변수로 함께 목표 웹사이트에 전송하며, token 검증에 해당하는 Python 코드는 다음과 같습니다:
비동기 모드 (async)
기본적으로 API는 동기 차단 방식입니다: 한 번의 요청은 token 처리가 완료될 때까지 기다립니다. 여러 디코더를 회전시키는 경우(multi-solver rotation) “작업을 제출한 후 즉시 task_id를 받고 다른 디코더를 조정한 후 나중에 결과를 읽으러 돌아오고 싶다면” 요청 본문에async: true를 전달할 수 있습니다.
async: true를 전달하면 인터페이스는 즉시 task_id를 반환하며, 차단 대기하지 않습니다:
task_id를 사용하여 POST /captcha/tasks를 조회할 수 있습니다(3~5초마다 조회하는 것이 좋습니다). 이 인터페이스는 작업 처리를 촉발하거나 진행하지 않습니다; 조회하지 않거나, 네트워크가 끊기거나, 클라이언트를 종료하더라도 서버는 계속해서 처리를 진행합니다:
status: processing이 반환되며, 처리 완료 시에는 status: ready와 token이 반환됩니다:
timeout으로 종료되며, 과금되지 않습니다. /captcha/tasks는 작업을 진행하지 않습니다.
설명: Cloudflare Turnstile은 현재 자체 프록시(Bring Your Own Proxy)를 지원하지 않으므로 이 인터페이스는proxy매개변수를 수용하지 않습니다; 전달할 경우400 invalid_proxy가 반환됩니다.
오류 처리
API를 호출할 때 오류가 발생하면 API는 해당 오류 코드와 정보를 반환합니다. 예를 들어:400 token_mismatched:잘못된 요청, 누락되었거나 잘못된 매개변수 때문일 수 있습니다.400 invalid_proxy:잘못된 요청, 이 캡차 유형에 대해 프록시가 지원되지 않습니다.401 invalid_token:권한 없음, 잘못되었거나 누락된 인증 토큰입니다.429 too_many_requests:요청이 너무 많습니다, 비율 제한을 초과했습니다.500 api_error:내부 서버 오류, 서버에서 문제가 발생했습니다.

