# Cloudflare challenge page (5 วินาที)

> ใช้ YesCaptcha ผ่านหน้าตรวจสอบ "Just a moment..." ของ Cloudflare เพื่อรับ Cookie เช่น cf_clearance, User-Agent และเนื้อหาของหน้าเว็บ พารามิเตอร์ของ CloudFlareTaskS2 และ CloudFlareTaskS3 ข้อกำหนดของพร็อกซี ผลลัพธ์ที่ได้ วิธีนำไปใช้ และข้อผิดพลาดที่พบบ่อย

Source: https://docs.yescaptcha.com/th/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 challenge page (5 วินาที) คือหน้าตรวจสอบที่ Cloudflare ดักไว้ทั้งหน้าเว็บ โดยแสดงข้อความ “Just a moment…” หรือ “กำลังตรวจสอบเบราว์เซอร์ของคุณ” YesCaptcha จะเปิดหน้าเว็บผ่านพร็อกซีที่คุณระบุและผ่านการตรวจสอบ จากนั้นคืนค่า Cookie เช่น `cf_clearance`, User-Agent ที่ใช้ในขณะนั้น, request header, response header และ HTML ของหน้าเว็บหลังผ่านการตรวจสอบ `CloudFlareTaskS2` ราคางานละ 25 พอยต์ (≈ $3.75 / 1k) และ `CloudFlareTaskS3` ราคางานละ 20 พอยต์ (≈ $3.00 / 1k) พารามิเตอร์ ผลลัพธ์ และประสิทธิภาพของทั้งสองประเภทเหมือนกัน ต่างกันที่ราคาเท่านั้น คืนผลแบบอะซิงโครนัส งานหนึ่งใช้เวลาประมาณ 6 ถึง 35 วินาที ขึ้นอยู่กับแต่ละเว็บไซต์ หากแก้ไม่สำเร็จหรือหมดเวลา ระบบจะคืนพอยต์อัตโนมัติ

- POST `https://api.yescaptcha.com/createTask` (endpoint ทั่วโลก)
- POST `https://cn.yescaptcha.com/createTask` (endpoint จีน)

## กรณีที่ใช้

-   ซอร์สของหน้ามี `__cf_chl_rt_tk` หรือ `cdn-cgi/challenge-platform` และชื่อหน้าคือ `Just a moment...` แสดงว่าเป็นหน้าตรวจสอบแบบ 5 วินาที หน้าตรวจสอบที่ให้ติ๊กช่อง “ยืนยันว่าคุณเป็นมนุษย์” ก็ใช้หน้านี้เช่นกัน
-   หากเป็นเพียงกล่องยืนยันของ Cloudflare ที่ฝังอยู่ในฟอร์ม นั่นคือ [Turnstile](https://docs.yescaptcha.com/th/tasks/turnstile.md) ไม่ต้องใช้หน้านี้
-   หากใช้ไลบรารีอย่าง requests แล้วได้ 403 และ “Just a moment…” แต่เปิดในเบราว์เซอร์ได้ตามปกติ มักเป็นเพราะถูกบล็อกจาก TLS fingerprint เท่านั้น ให้เปลี่ยนไปใช้ไลบรารีที่เลียนแบบ TLS fingerprint ของเบราว์เซอร์ได้ (เช่น 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 แบบเต็มของหน้าเว็บที่อยู่หลังหน้าตรวจสอบ ต้องเป็น URL สาธารณะที่ขึ้นต้นด้วย `http://` หรือ `https://` เท่านั้น ระบบจะปฏิเสธ IP ภายในเครือข่ายและชื่อโฮสต์ภายในเครื่องหรือภายในเครือข่าย เช่น `localhost` |
| `proxy` | string | ใช่ | พร็อกซีในรูปแบบสตริงเดียว: `http://user:pass@proxy.example.com:8080` (พร็อกซี HTTP ระบุบัญชีและรหัสผ่านหรือไม่ก็ได้) หรือ `socks5://proxy.example.com:1080` (ไม่มีบัญชีและรหัสผ่าน) ไม่รองรับพร็อกซี `https://` และ SOCKS5 ที่มีบัญชีและรหัสผ่าน และจะปฏิเสธแอดเดรสภายในเครื่องหรือภายในเครือข่าย ทุกคำขอที่เปิดหน้าเว็บเป้าหมายจะผ่านพร็อกซีนี้ |
| `userAgent` | string | ไม่ | โดยทั่วไปไม่ต้องส่ง ระบบใช้เฉพาะ User-Agent ของ Chrome บนเดสก์ท็อป Linux เท่านั้น ค่าอื่น (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 | ไม่ | หากระบุ ระบบจะส่งไปยัง `websiteURL` ด้วย POST แบบเดียวกับฟอร์ม HTML ทั่วไป (`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_BANNED` ไม่ใช่ แต่คืนค่า `ERROR_PROXY_INCORRECT` |
| ที่อยู่เครื่องตัวเอง เครือข่ายภายใน หรือที่อยู่สงวน เช่น `127.0.0.1`, `192.168.x.x`, `10.x.x.x` หรือโดเมนที่ resolve ไปยังที่อยู่เหล่านี้ | ปฏิเสธ คืนค่า `ERROR_PROXY_BANNED` |

> **ตรวจสอบตั้งแต่ตอนสร้างงาน:** หาก URL หรือพร็อกซีไม่ถูกต้อง `createTask` จะคืนข้อผิดพลาดทันทีและไม่หักพอยต์ หากพร็อกซีเดียวกันเชื่อมต่อไม่ได้หลายครั้งในเวลาสั้น ๆ การสร้างงานด้วยพร็อกซีนั้นในช่วงต่อมาจะคืนค่า `ERROR_PROXY_BANNED` ทันทีเช่นกัน โปรดเปลี่ยนพร็อกซีหรือลองใหม่ภายหลัง

### User-Agent

โดยทั่วไปไม่ต้องส่ง `userAgent` เราใช้ Chrome เดสก์ท็อปบน Linux ในการผ่านการตรวจสอบ ดังนั้นจะใช้เฉพาะ User-Agent ของ Chrome เดสก์ท็อปบน Linux เท่านั้น ส่วนอื่น ๆ (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 form

หลังสร้างงาน ให้เรียก `getTaskResult` ทุก 5 วินาที ขั้นตอนเหมือนงานแบบอะซิงโครนัสอื่น ๆ ดู [getTaskResult](https://docs.yescaptcha.com/th/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 และ request header ข้างต้นเป็นเพียงตัวอย่าง ให้ใช้ค่าที่ API คืนมาจริง

| ฟิลด์ | ประเภท | คำอธิบาย |
| --- | --- | --- |
| `cookies` | object | Cookie ทั้งหมดในเบราว์เซอร์หลังผ่านการตรวจสอบ (ออบเจ็กต์แบบชื่อเป็นค่า) โดยทั่วไปมี `cf_clearance` หากระบุ `requiredCookies` จะมีทุกรายการในนั้นรวมอยู่ด้วย ใช้ร่วมกับ `user_agent` ที่คืนมาและพร็อกซีที่คุณระบุ |
| `user_agent` | string | User-Agent ที่เบราว์เซอร์ใช้จริงในการผ่านการตรวจสอบ (Chrome เดสก์ท็อปบน Linux) `cf_clearance` ผูกกับค่านี้ คำขอถัดไปทั้งหมดจึงต้องใช้ค่านี้ |
| `request_headers` | object | request header ที่เบราว์เซอร์ส่งในคำขอล่าสุดไปยังหน้าเว็บเป้าหมาย แนะนำให้ใช้ซ้ำในคำขอถัดไป |
| `headers` | object | response header ของหน้าเว็บเป้าหมายหลังผ่านการตรวจสอบ |
| `content` | string | ซอร์ส HTML ของหน้าเว็บเป้าหมายหลังผ่านการตรวจสอบ |

## วิธีใช้ผลลัพธ์

1.  คำขอถัดไปต้องใช้ `cookies` ที่คืนมา, `user_agent` ที่คืนมา **และ**พร็อกซีตัวเดียวกับตอนสร้างงานพร้อมกัน `cf_clearance` ผูกกับ User-Agent และ IP ขาออก หากอย่างใดอย่างหนึ่งไม่ตรงกัน หน้าตรวจสอบ 5 วินาทีจะปรากฏอีกครั้ง
2.  ควรส่ง request header ตาม `request_headers` และใช้ TLS fingerprint ที่ตรงกับเบราว์เซอร์ (เช่น พารามิเตอร์ `impersonate` ของ curl\_cffi)
3.  `cf_clearance` มีอายุการใช้งาน (กำหนดโดยเว็บไซต์เป้าหมาย บางเว็บนานถึง 1 ชั่วโมง) ภายในช่วงนี้ไม่ต้องผ่านการตรวจสอบซ้ำ หากส่งคำขอถี่เกินไป Cloudflare อาจบล็อก IP
4.  หากต้องการเพียงเนื้อหาของหน้าเว็บ ใช้ `content` ได้โดยตรง ไม่ต้องขอหน้าเว็บอีกครั้ง

## ข้อผิดพลาดที่พบบ่อย

ข้อผิดพลาดที่คืนตอนสร้างงานจะไม่หักพอยต์ หากสร้างงานสำเร็จแล้วล้มเหลวหรือหมดเวลา ระบบจะคืนพอยต์อัตโนมัติ API คืนเพียงรหัสข้อผิดพลาดและคำอธิบายทั่วไป สาเหตุที่แท้จริงให้ดูจากตารางด้านล่าง

| รหัสข้อผิดพลาด | คืนค่าเมื่อใด | แก้ไขอย่างไร |
| --- | --- | --- |
| `ERROR_REQUIRED_FIELDS` | ตอนสร้างงาน: ไม่มี `websiteURL` หรือ `proxy` | เพิ่มฟิลด์ที่จำเป็นทั้งสองรายการ |
| `ERROR_ILLEGAL_PARAMETERS` | ตอนสร้างงาน: `websiteURL` ไม่ใช่ URL สาธารณะที่ขึ้นต้นด้วย `http://` / `https://`, `postData` ไม่ใช่ object หรือ `requiredCookies` ไม่ใช่อาร์เรย์ของสตริง ตอนเรียกดูผลลัพธ์: resolve โดเมนของ 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` | เชื่อมต่อพร็อกซีไม่ได้ (ปฏิเสธการเชื่อมต่อ หรือ resolve โดเมนของพร็อกซีไม่ได้) หรือเปิดหน้าเว็บผ่านพร็อกซีแล้วการเชื่อมต่อถูกปฏิเสธหรือถูก reset | ตรวจสอบที่อยู่และพอร์ตของพร็อกซี ยืนยันว่าพร็อกซีออนไลน์และอนุญาตการเข้าถึงจากภายนอก หากยังล้มเหลวให้เปลี่ยนพร็อกซี |
| `ERROR_PROXY_CONNECT_TIMEOUT` | เชื่อมต่อพร็อกซี หรือเปิดหน้าเว็บผ่านพร็อกซี แล้วหมดเวลา | เปลี่ยนไปใช้พร็อกซีที่เร็วและเสถียรกว่า |
| `ERROR_PROXY_NOT_AUTHORISED` | บัญชีหรือรหัสผ่านของพร็อกซีไม่ถูกต้อง | ตรวจสอบบัญชีและรหัสผ่านใน `proxy` อักขระพิเศษต้องทำ URL encode |
| `ERROR_PROXY_TLS_ERROR` | TLS handshake ผิดพลาดตอนเปิดหน้าเว็บผ่านพร็อกซี | ตรวจสอบว่าที่อยู่ พอร์ต และโปรโตคอลของพร็อกซีไม่ได้กรอกผิด หากยังล้มเหลวให้เปลี่ยนพร็อกซี |
| `ERROR_CAPTCHA_UNSOLVABLE` | ไม่ผ่านการตรวจสอบภายในเวลาที่กำหนด ผ่านแล้วแต่ยังค้างอยู่ที่หน้าตรวจสอบ หรือไม่ได้ Cookie ที่ระบุใน `requiredCookies` | เปลี่ยนพร็อกซีแล้วลองใหม่ สำหรับบางเว็บไซต์ติดต่อฝ่ายสนับสนุนได้ |
| `ERROR_NO_SLOT_AVAILABLE` | ตอนสร้างงาน: คิวเต็ม ตอนเรียกดูผลลัพธ์: รอคิวนานเกินไปและยังไม่เริ่ม คืนพอยต์แล้ว | รอสองสามวินาทีแล้วสร้างงานใหม่ |
| `ERROR_TASK_TIMEOUT` | งานไม่เสร็จภายในเวลาที่กำหนด | สร้างงานใหม่ หากหมดเวลาต่อเนื่อง มักเป็นเพราะพร็อกซีช้าเกินไป |

ดูรหัสข้อผิดพลาดทั้งหมดที่ [รหัสข้อผิดพลาด](https://docs.yescaptcha.com/th/api/errors.md)

## ที่เกี่ยวข้อง

-   [วิธีระบุประเภท CAPTCHA](https://docs.yescaptcha.com/th/guides/identify-captcha.md): ความแตกต่างระหว่างหน้าตรวจสอบ 5 วินาทีกับ Turnstile
-   [Cloudflare Turnstile](https://docs.yescaptcha.com/th/tasks/turnstile.md)
