diff --git a/README.md b/README.md
index 7fa2058..584f931 100644
--- a/README.md
+++ b/README.md
@@ -35,6 +35,7 @@ Examples of API requests for different captcha types are available on the [Java
- [Yandex](#yandex)
- [Lemin Cropped Captcha](#lemin-cropped-captcha)
- [Cloudflare Turnstile](#cloudflare-turnstile)
+ - [Cloudflare Challenge](#cloudflare-challenge)
- [Amazon WAF](#amazon-waf)
- [Friendly Captcha](#friendly-captcha)
- [MTCaptcha](#mtcaptcha)
@@ -386,6 +387,23 @@ captcha.setSiteKey("0x4AAAAAAAChNiVJM_WtShFf");
captcha.setUrl("https://ace.fusionist.io");
```
+### Cloudflare Challenge
+
+[API method description.](https://2captcha.com/2captcha-api#challenge)
+
+Use this method to solve Cloudflare Challenge and obtain a token to bypass the protection.
+
+```java
+TwoCaptcha solver = new TwoCaptcha(args[0]);
+CloudflareChallenge captcha = new CloudflareChallenge();
+captcha.setSiteKey("0x4AAAAAAAChNiVJM_WtShFf");
+captcha.setUrl("https://ace.fusionist.io");
+captcha.setAction("managed");
+captcha.setData("99df96c88d9ed949");
+captcha.setPagedata("gjEUFRK3K_qx8aLOGg-1763050748-1.3.1.1-Cq...");
+captcha.setUserAgent("Mozilla/5.0 (Macintosh; Intel Mac OS X 29_82_9) Safari/971.69");
+```
+
### Amazon WAF
[API method description.](https://2captcha.com/2captcha-api#amazon-waf)
diff --git a/src/main/java/com/twocaptcha/captcha/CloudflareChallenge.java b/src/main/java/com/twocaptcha/captcha/CloudflareChallenge.java
new file mode 100644
index 0000000..f7f0141
--- /dev/null
+++ b/src/main/java/com/twocaptcha/captcha/CloudflareChallenge.java
@@ -0,0 +1,32 @@
+package com.twocaptcha.captcha;
+
+public class CloudflareChallenge extends Captcha {
+ public CloudflareChallenge() {
+ super();
+ params.put("method", "challenge");
+ }
+
+ public void setSiteKey(String siteKey) {
+ params.put("sitekey", siteKey);
+ }
+
+ public void setUrl(String url) {
+ params.put("pageurl", url);
+ }
+
+ public void setAction(String action) {
+ params.put("action", action);
+ }
+
+ public void setData(String data) {
+ params.put("data", data);
+ }
+
+ public void setPagedata(String pagedata) {
+ params.put("pagedata", pagedata);
+ }
+
+ public void setUserAgent(String userAgent) {
+ params.put("userAgent", userAgent);
+ }
+}