# Cloudflare チャレンジページ

> YesCaptcha で Cloudflare の「しばらくお待ちください」チェックページ(Cloudflare チャレンジページ)を通過し、cf_clearance などの Cookie、User-Agent、ページ内容を取得します。CloudFlareTaskS2、CloudFlareTaskS3 のパラメーター、プロキシの要件、返却結果、結果の使い方、よくあるエラーを解説します。

Source: https://docs.yescaptcha.com/ja/tasks/cloudflare-challenge/ · Last verified: 2026-10-19

> This page was machine-translated from the Chinese version. If anything differs, the Chinese version prevails: https://docs.yescaptcha.com/zh/tasks/cloudflare-challenge/

Cloudflare チャレンジページは、サイト全体が Cloudflare にブロックされ、「しばらくお待ちください…」「ブラウザを確認しています」と表示されるチェックページです。YesCaptcha は指定されたプロキシ経由でページを開いてチェックを通過し、`cf_clearance` などの Cookie、使用した User-Agent、リクエストヘッダー、レスポンスヘッダー、通過後のページ HTML を返します。`CloudFlareTaskS2` は 1 タスクあたり 25 ポイント（約 $3.75 / 1k）、`CloudFlareTaskS3` は 1 タスクあたり 20 ポイント（約 $3.00 / 1k） です。2 つのタイプはパラメーター、返却結果、効果が同じで、価格だけが異なります。非同期で結果を返し、1 タスクあたり通常 6〜35 秒かかります(サイトによって大きく異なります)。認識に失敗した場合やタイムアウトした場合は自動で返金されます。

- POST `https://api.yescaptcha.com/createTask` (グローバルエンドポイント)
- POST `https://cn.yescaptcha.com/createTask` (中国エンドポイント)

## 利用場面

-   ページのソースに `__cf_chl_rt_tk` または `cdn-cgi/challenge-platform` が含まれ、タイトルが `Just a moment...` / 「しばらくお待ちください」の場合は、Cloudflare チャレンジページです。チェックページ上で「人間であることを確認します」のチェックボックスをクリックする形式も、このページの対象です。
-   フォームに Cloudflare の認証ウィジェットが埋め込まれているだけの場合は [Turnstile](https://docs.yescaptcha.com/ja/tasks/turnstile.md) です。このページの対象ではありません。
-   requests などのライブラリでリクエストすると 403 と「Just a moment…」が返るのに、ブラウザでは直接開ける場合は、多くの場合 TLS フィンガープリントでブロックされているだけです。ブラウザの TLS フィンガープリントを模倣できるライブラリ(curl\_cffi など)に切り替えればリクエストできます。チャレンジの通過は不要です。

## タイプと価格

| タスクタイプ | 価格 | 返却方式 | 備考 |
| --- | --- | --- | --- |
| `CloudFlareTaskS2` | $3.75 / 1k; 25 ポイント/タスク · ¥25 / 1k | 非同期 | プロキシ持ち込み |
| `CloudFlareTaskS3` | $3.00 / 1k; 20 ポイント/タスク · ¥20 / 1k | 非同期 | プロキシ持ち込み |

米ドル価格は US$1 ≈ ¥6.67 での概算です。タスクはポイントで課金されます。

## リクエストパラメーター

| フィールド | 型 | 必須 | 説明 |
| --- | --- | --- | --- |
| `type` | string | はい | タスクタイプ。値はこのページの「タイプと料金」を参照してください |
| `websiteURL` | string | はい | チャレンジページの背後にあるページの完全な URL。公開された `http://` または `https://` の URL のみ指定できます。プライベート IP アドレスや、`localhost` などのローカル・内部ホスト名は拒否されます |
| `proxy` | string | はい | プロキシを 1 つの文字列で指定します：`http://user:pass@proxy.example.com:8080`（HTTP プロキシ、認証情報は省略可）または `socks5://proxy.example.com:1080`（認証情報なし）。`https://` プロキシおよび認証情報付きの SOCKS5 はサポートされず、ローカルアドレスやプライベートアドレスは拒否されます。対象ページへのすべてのリクエストはこのプロキシ経由で送信されます |
| `userAgent` | string | いいえ | 通常は指定不要です。Linux デスクトップ版 Chrome の User-Agent のみが使用され、それ以外（Windows、macOS、モバイル、他のブラウザ）は無視されます。以降のリクエストでは、必ず結果に含まれる `user_agent` を使用してください |
| `waitLoad` | boolean | いいえ | デフォルトは false。true を指定すると、チェック通過後にページのネットワーク通信が落ち着くまで待ってから結果を返すため、`content` に動的に読み込まれたコンテンツがより多く含まれます。数秒長くかかります |
| `requiredCookies` | array | いいえ | 必ず取得する Cookie 名のリスト（文字列の配列）。例：`["cf_clearance"]`。指定した場合は、すべて取得できたときのみ成功となり、取得できなければ `ERROR_CAPTCHA_UNSOLVABLE` を返して返金されます。省略した場合も `cf_clearance` の取得を試みますが、取得できず他の Cookie だけを取得した場合でも成功として課金されます。`cf_clearance` が必要な場合は明示的に指定してください |
| `blockImage` | boolean | いいえ | true を指定すると、対象ページの画像を読み込みません（Cloudflare のチェック自体に必要なものを除く）。プロキシのトラフィックを節約できます |
| `postData` | object | いいえ | 指定すると、通常の HTML フォームの POST として `websiteURL` に送信されます（`application/x-www-form-urlencoded`）。各キーがフォームのフィールドとなり、値は文字列として送信されます。例：`{"name": "hi"}`。オブジェクトである必要があります |

### プロキシの要件

`proxy` は必須です。対象ページを開くすべてのリクエストがこのプロキシ経由になります。`cf_clearance` は出口 IP に紐づくため、その後に対象サイトへアクセスするときも同じプロキシを使ってください。

| 書式 | 対応状況 |
| --- | --- |
| `http://user:pass@proxy.example.com:8080` | 対応: http プロキシ(ユーザー名・パスワードあり) |
| `http://proxy.example.com:8080` | 対応: http プロキシ(ユーザー名・パスワードなし) |
| `socks5://proxy.example.com:1080` | 対応: socks5 プロキシ(ユーザー名・パスワードなし)。`socks5h://` は `socks5://` として扱われます |
| `socks5://user:pass@proxy.example.com:1080` | 非対応。`ERROR_PROXY_INCORRECT` を返します。ユーザー名・パスワードが必要な場合は http プロキシを使用してください |
| `https://proxy.example.com:443` などのその他のプロトコル、またはポートなし | 非対応。`ERROR_PROXY_INCORRECT` を返します |
| `127.0.0.1`、`192.168.x.x`、`10.x.x.x` などのローカル、内部ネットワーク、予約アドレス、またはそれらに解決されるドメイン | 拒否。`ERROR_PROXY_BANNED` を返します |

> **タスク作成時にチェックされます:** URL やプロキシが不正な場合、`createTask` はすぐにエラーを返し、課金されません。同じプロキシで短時間に何度も接続に失敗すると、しばらくの間そのプロキシでタスクを作成しても `ERROR_PROXY_BANNED` が直接返されます。プロキシを変更するか、しばらくしてからもう一度お試しください。

### User-Agent

通常、`userAgent` は指定しません。チェックの通過には Linux デスクトップ版の Chrome を使用するため、同じ Linux デスクトップ版 Chrome の User-Agent だけが採用され、それ以外(Windows、macOS、モバイル、他のブラウザー)は無視されます。実測では、ブラウザーの実際の環境と User-Agent が一致しない場合、Cloudflare のチェックを通過できませんでした。以降のリクエストでは、必ず結果に含まれる `user_agent` を使用してください。

## リクエスト例

POST https://api.yescaptcha.com/createTask

```json
{
  "clientKey": "YOUR_CLIENT_KEY",
  "task": {
    "type": "CloudFlareTaskS3",
    "websiteURL": "https://example.com/",
    "proxy": "http://user:pass@proxy.example.com:8080",
    "requiredCookies": ["cf_clearance"]
  }
}
```

-   `CloudFlareTaskS2` を使う場合は `type` だけを変更し、他はそのままにします。
-   `requiredCookies` に `["cf_clearance"]` を指定すると、`cf_clearance` を取得できなかった場合にタスクが失敗し、返金されます。指定しない場合は、`cf_clearance` を取得できず他の Cookie だけを取得した場合も成功とみなされ、課金されます。
-   フォームを送信する場合は `postData` を追加します(例: `{"name": "hi"}`)。`websiteURL` に POST フォームとして送信されます。

作成後は 5 秒ごとに `getTaskResult` を呼び出します。流れは他の非同期タスクと同じです。[getTaskResult](https://docs.yescaptcha.com/ja/api/get-task-result.md) を参照してください。

## 返却結果

```json
{
  "errorId": 0,
  "status": "ready",
  "solution": {
    "user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/155.0.0.0 Safari/537.36",
    "cookies": {
      "cf_clearance": "Wq3vXk9...-1760860800-1.2.1.1-..."
    },
    "request_headers": {
      "accept-language": "en-US,en;q=0.9",
      "user-agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/155.0.0.0 Safari/537.36"
    },
    "headers": {
      "content-type": "text/html; charset=UTF-8",
      "server": "cloudflare"
    },
    "content": "<!DOCTYPE html>..."
  }
}
```

上記の Cookie 値とリクエストヘッダーは例です。実際の値は返却結果に従ってください。

| フィールド | 型 | 説明 |
| --- | --- | --- |
| `cookies` | object | チェック通過後のブラウザ内のすべての Cookie（名前から値へのオブジェクト）。通常は `cf_clearance` を含みます。`requiredCookies` を指定した場合は、そのすべてが含まれます。返された `user_agent` および指定したプロキシと併せて使用してください |
| `user_agent` | string | ブラウザがチェック通過時に実際に使用した User-Agent（Linux デスクトップ版 Chrome）。`cf_clearance` はこれに紐づいているため、以降のすべてのリクエストでこの値を使用してください |
| `request_headers` | object | ブラウザが対象ページに対して最後に送信したリクエストヘッダー。以降のリクエストでも同じものを付けて再利用してください |
| `headers` | object | チェック通過後の対象ページのレスポンスヘッダー |
| `content` | string | チェック通過後の対象ページの HTML ソース |

## 結果の使い方

1.  以降のリクエストでは、返された `cookies`、返された `user_agent`、タスク作成時と同じプロキシを**すべて同時に**使用してください。`cf_clearance` は User-Agent と出口 IP に紐づいており、どれか 1 つでも一致しないと、再びチャレンジページが表示されます。
2.  リクエストヘッダーは、できるだけ `request_headers` のとおりに付与し、ブラウザーと同じ TLS フィンガープリントを使用してください(例: curl\_cffi の `impersonate` パラメーター)。
3.  `cf_clearance` には有効期限があります(対象サイトが設定し、最長 1 時間のサイトもあります)。有効期間内は再度チャレンジを通過する必要はありませんが、リクエストの頻度が高すぎると Cloudflare に IP をブロックされる場合があります。
4.  ページ内容だけが必要な場合は、`content` をそのまま使えます。もう一度ページをリクエストする必要はありません。

## よくあるエラー

タスク作成時に返されたエラーは課金されません。作成後に失敗またはタイムアウトしたタスクは自動で返金されます。API が返すのはエラーコードと汎用的な説明のみのため、具体的な原因は次の表で確認してください。

| エラーコード | 返される場面 | 対処 |
| --- | --- | --- |
| `ERROR_REQUIRED_FIELDS` | タスク作成時: `websiteURL` または `proxy` がない | 必須の 2 つのフィールドを追加する |
| `ERROR_ILLEGAL_PARAMETERS` | タスク作成時: `websiteURL` が `http://` / `https://` で始まる公開 URL ではない、`postData` がオブジェクトではない、`requiredCookies` が文字列の配列ではない。結果取得時: プロキシ経由で対象 URL のドメインを解決できない | パラメーターを修正する。URL のスペルと、プロキシからそのサイトにアクセスできるかを確認する |
| `ERROR_PROXY_INCORRECT` | タスク作成時: プロキシの書式が正しくない、ポートがない、`https://` プロキシまたはユーザー名・パスワード付きの socks5 を使用している | 上記「プロキシの要件」の書式に修正する。ユーザー名・パスワードが必要な場合は http プロキシを使用する |
| `ERROR_PROXY_BANNED` | タスク作成時: プロキシがローカル、内部ネットワーク、予約アドレスである、またはこのプロキシが短時間に何度も接続に失敗した。結果取得時: 対象サイトの Cloudflare がこのプロキシの IP を直接ブロックした(「Sorry, you have been blocked」「Access denied」ページ) | プロキシを変更する。IP の品質が高いほど通過しやすい |
| `ERROR_PROXY_CONNECT_REFUSED` | プロキシに接続できない(接続拒否、プロキシのドメインを解決できない)、またはプロキシ経由でページを開く際に接続が拒否・リセットされた | プロキシのアドレスとポートを確認し、プロキシがオンラインで外部からのアクセスを許可しているかを確認する。それでも失敗する場合はプロキシを変更する |
| `ERROR_PROXY_CONNECT_TIMEOUT` | プロキシへの接続、またはプロキシ経由でのページ表示がタイムアウトした | より高速で安定したプロキシに変更する |
| `ERROR_PROXY_NOT_AUTHORISED` | プロキシのユーザー名またはパスワードが正しくない | `proxy` 内のユーザー名とパスワードを確認する。特殊文字は URL エンコードする |
| `ERROR_PROXY_TLS_ERROR` | プロキシ経由でページを開く際に TLS ハンドシェイクでエラーが発生した | プロキシのアドレス、ポート、プロトコルに誤りがないか確認する。それでも失敗する場合はプロキシを変更する |
| `ERROR_CAPTCHA_UNSOLVABLE` | 規定時間内にチェックを通過できなかった、通過後もチェックページのままだった、または `requiredCookies` で指定した Cookie を取得できなかった | まずプロキシを変更して再試行する。特定のサイトについてはサポートにお問い合わせください |
| `ERROR_NO_SLOT_AVAILABLE` | タスク作成時: キューが満杯。結果取得時: キューで長く待機しても開始されず、返金済み | 数秒待ってからタスクを作り直す |
| `ERROR_TASK_TIMEOUT` | タスクが規定時間内に完了しなかった | タスクを作り直す。タイムアウトが続く場合は、多くはプロキシが遅すぎることが原因 |

すべてのエラーコードは[エラーコード](https://docs.yescaptcha.com/ja/api/errors.md)を参照してください。

## 関連

-   [キャプチャの種類を見分ける](https://docs.yescaptcha.com/ja/guides/identify-captcha.md): Cloudflare チャレンジページと Turnstile の違い
-   [Cloudflare Turnstile](https://docs.yescaptcha.com/ja/tasks/turnstile.md)
