자체 방문 통계는 항상 수집됩니다. 사용자가 공개 페이지를 어떻게 이용하는지 파악하는 데 쓰이는 Google Analytics(로그인한 워크스페이스는 제외)는 동의한 경우에만 사용됩니다. 자세한 내용은 개인정보 처리방침을 참고하세요.

Cloudflare Turnstile solver API

POST

API 상태

24시간 상태
정상
24시간 평균 소요 시간
—
  • 양호 / 정상
  • 사용 가능
  • 제한적
  • 대부분 작동 중단
정상

EverySolve의 Cloudflare Turnstile API는 챌린지 워크플로에 필요한 토큰 값을 반환합니다. type을 turnstile로 설정하고 아래 입력값을 담아 POST /api/v1/captcha로 요청을 보내세요.Cloudflare Turnstile은 Turnstile 사이트 키로 설정하는 삽입형 위젯입니다. 관리형(managed), 비대화형(non-interactive), 비표시(invisible) 모드로 동작할 수 있습니다. cf-turnstile-response에 사용할 토큰을 반환합니다. 반면 Cloudflare 챌린지 페이지는 페이지 이동을 차단하고 clearance 쿠키 데이터를 반환합니다.

성공적으로 해결된 CAPTCHA 1,000개당 $1.53(성공한 CAPTCHA 해결 1건당 $0.001528). CAPTCHA 해결에 실패한 경우에는 과금되지 않습니다.

AI 프롬프트

EveryInfra "Cloudflare Turnstile" API를 호출하는 스크립트를 작성해 주세요.

API 명세:
- 요청: Authorization: Bearer <API Key> 헤더와 함께 POST https://api.everyinfra.com/api/v1/captcha. 키는 EVERYINFRA_API_KEY 환경 변수에서 읽고 코드에 직접 넣지 마세요.
- 요청 본문의 type에 turnstile 값을 지정하고, 파라미터는 그 옆 같은 레벨에 넣으세요.
- 필수 파라미터:
  - website_url: 이 챌린지가 표시되는 정확한 페이지입니다. 사이트 홈페이지만이 아니라 관련 경로까지 포함해야 합니다.
  - website_key: 해당 대상 통합에서 그대로 복사한 공개 사이트 키 또는 위젯 키입니다. 비밀 키가 아닙니다.
- 선택 파라미터:
  - action: 이 위젯 인스턴스에서 사용하는 액션 이름입니다. 임의의 일반 액션을 만들지 말고 대상 연동에서 복사하십시오.
  - cdata: 페이지에서 제공하는 경우, 같은 챌린지 인스턴스의 위젯 사용자 지정 데이터 값입니다.
  - page_data: 대상이 노출하는 경우, 이 위젯 인스턴스에 연결된 직렬화된 페이지 데이터입니다.
- 요청 본문 예시:
{
  "type": "turnstile",
  "website_url": "https://demo.turnstile.workers.dev/",
  "website_key": "1x00000000000000000000AA"
}
- 과금: 성공적으로 해결된 CAPTCHA 1,000개당 $1.53(성공한 CAPTCHA 해결 1건당 $0.001528). CAPTCHA 해결에 실패한 경우에는 과금되지 않습니다.
- 422가 반환되면 오류에 포함된 제안과 허용 값을 참고해 파라미터를 수정하세요. 429 또는 503이 반환되면 Retry-After만큼 기다린 후 재시도하세요.

코드를 작성하기 전에 처리할 항목 수와 결과 저장 형식을 먼저 물어본 다음, 계획과 대략적인 비용을 저에게 확인받아 주세요.

요청 파라미터

이름위치타입필수기본값설명
Authorizationheaderstring예-Bearer 뒤에 API 키를 붙여 입력합니다. API 키는 콘솔에서 생성하며, URL이나 코드 저장소에 절대 넣지 마세요.
typebodystring예turnstileCAPTCHA 유형이며 고정값입니다.
website_urlbodystring예-이 챌린지가 표시되는 정확한 페이지입니다. 사이트 홈페이지만이 아니라 관련 경로까지 포함해야 합니다.
website_keybodystring예-해당 대상 통합에서 그대로 복사한 공개 사이트 키 또는 위젯 키입니다. 비밀 키가 아닙니다.
actionbodystring아니요-이 위젯 인스턴스에서 사용하는 액션 이름입니다. 임의의 일반 액션을 만들지 말고 대상 연동에서 복사하십시오.
cdatabodystring아니요-페이지에서 제공하는 경우, 같은 챌린지 인스턴스의 위젯 사용자 지정 데이터 값입니다.
page_databodystring아니요-대상이 노출하는 경우, 이 위젯 인스턴스에 연결된 직렬화된 페이지 데이터입니다.

코드 샘플

bash
curl -X POST 'https://api.everyinfra.com/api/v1/captcha' \
  -H "Authorization: Bearer $EVERYINFRA_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "type": "turnstile",
  "website_url": "https://demo.turnstile.workers.dev/",
  "website_key": "1x00000000000000000000AA"
}'

OpenAPI 정의(JSON)샘플 코드는 EVERYINFRA_API_KEY 환경 변수에서 키를 읽으므로, 복사한 코드에는 API 키가 포함되지 않습니다.

응답 예시

실제 응답

위 코드 샘플의 파라미터로 이 API를 호출해 October 24, 2026 at 22:37(UTC)에 수집한 결과입니다. token과 solution은 해당 호출의 실제 응답입니다. id, billing, quota는 호출할 때마다 달라지므로 구조만 표시합니다.

json
{
  "id": "req_…",
  "type": "turnstile",
  "token": "XXXX.DUMMY.TOKEN.XXXX",
  "solution": {
    "token": "XXXX.DUMMY.TOKEN.XXXX"
  },
  "billing": {
    "charged": …,
    "charged_usd": …,
    "balance_after_usd": …,
    …
  },
  "quota": { … }
}

Cloudflare Turnstile 파라미터를 가져오는 위치

data-sitekey 또는 turnstile.render에서 website_key를 복사하십시오. action, cdata, page_data가 있으면 같은 위젯 인스턴스에서 가져와야 합니다.

페이지에서 이 값을 찾는 코드

turnstile-1.html
<div class="cf-turnstile" data-sitekey="<YOUR-SITE-KEY>" data-theme="light"
     data-size="normal" data-callback="onSuccess"></div>
turnstile-2.js
const widgetId = turnstile.render("#turnstile-container", {
  sitekey: "<YOUR-SITE-KEY>", callback: function (token) { … },
});
turnstile-3.html
<input type="hidden" name="cf-turnstile-response" value="TOKEN_VALUE" />

Cloudflare Turnstile을(를) 식별하는 방법

Cloudflare Turnstile은 Turnstile 사이트 키로 설정하는 삽입형 위젯입니다. 관리형(managed), 비대화형(non-interactive), 비표시(invisible) 모드로 동작할 수 있습니다.

Cloudflare Turnstile은(는) 무엇이 다른가요

cf-turnstile-response에 사용할 토큰을 반환합니다. 반면 Cloudflare 챌린지 페이지는 페이지 이동을 차단하고 clearance 쿠키 데이터를 반환합니다.

Cloudflare Turnstile API 사용 방법

API는 토큰을 반환합니다. 이 토큰을 숨겨진 cf-turnstile-response 필드에 넣으세요. 토큰은 300초 후 만료되며 한 번만 사용할 수 있습니다.

  1. 01GET /api/v1/captcha/types를 조회하고 turnstile 항목을 선택합니다.
  2. 02type: "turnstile"와 필수 파라미터를 POST /api/v1/captcha로 전송합니다.
  3. 03token에서 토큰 값을 읽습니다.
  4. 04반환된 토큰을 숨겨진 cf-turnstile-response 필드에 넣고, 유효 기간인 300초 이내에 제출하세요. 토큰은 한 번만 사용할 수 있습니다.

과금 및 사용 가능 여부 EverySolve는 솔루션이 성공적으로 전달된 경우에만 과금합니다. 실패한 시도에는 최종 비용이 청구되지 않으며, 보류된 금액은 자동으로 반환됩니다. available과 가격 필드는 고정된 페이지 내용으로 간주하지 말고, 요청 시점에 GET /api/v1/captcha/types에서 조회하세요.

Cloudflare Turnstile 통합 관련 자주 묻는 질문

유형을 선택하기 전에 Cloudflare Turnstile을(를) 어떻게 식별할 수 있나요?

Cloudflare Turnstile은 Turnstile 사이트 키로 설정하는 삽입형 위젯입니다. 관리형(managed), 비대화형(non-interactive), 비표시(invisible) 모드로 동작할 수 있습니다. 이러한 신호가 대상 챌린지와 일치하는지 확인한 뒤에만 turnstile 유형을 사용하세요.

Cloudflare Turnstile 요청에는 대상 페이지의 어떤 값을 넣어야 하나요?

data-sitekey 또는 turnstile.render에서 website_key를 복사하십시오. action, cdata, page_data가 있으면 같은 위젯 인스턴스에서 가져와야 합니다. 다음을 제공하세요: website_url 및 website_key. 선택 파라미터는 action, cdata 및 page_data입니다.

Cloudflare Turnstile은(는) 무엇을 반환하며, 무엇과 혼동하지 말아야 하나요?

Cloudflare Turnstile API는 토큰 값을 token에 담아 반환합니다. 솔루션 형식은 token입니다. cf-turnstile-response에 사용할 토큰을 반환합니다. 반면 Cloudflare 챌린지 페이지는 페이지 이동을 차단하고 clearance 쿠키 데이터를 반환합니다.

Cloudflare Turnstile 통합을 설명하는 외부 자료는 무엇인가요?

Cloudflare는 Turnstile 렌더링, 위젯 모드, 콜백, 토큰 처리를 문서로 제공합니다. [Cloudflare Turnstile 참고 자료 열기](https://developers.cloudflare.com/turnstile/). 다만 EverySolve 전용 필드와 실시간 사용 가능 여부는 유형 카탈로그에서 확인해야 합니다.

Cloudflare Turnstile 참고 자료

전체 CAPTCHA 유형

오류 및 과금

401
키가 없거나 유효하지 않습니다.
402
잔액이 부족합니다. 먼저 충전하세요.
422
파라미터 이름 또는 값이 올바르지 않습니다. 오류에 제시된 제안을 참고해 수정하세요. 과금되지 않습니다.
429
분당 요청 속도 제한에 도달했습니다. Retry-After만큼 기다린 뒤 다시 시도하세요.
503
처리를 완료하지 못했습니다. 보류된 금액은 잔액으로 반환됩니다. 결과가 불확실하면 재시도하기 전에 먼저 확인하세요.
200 빈 결과
데이터가 없습니다. 과금되지 않습니다.

오류