diff --git a/README.md b/README.md
index 61eecb4..dc553a8 100644
--- a/README.md
+++ b/README.md
@@ -43,6 +43,9 @@ Examples of API requests for different captcha types are available on the [PHP c
- [atbCAPTCHA](#atbcaptcha)
- [DataDome](#datadome)
- [CyberSiARA](#cybersiara)
+ - [Prosopo](#prosopo)
+ - [Temu](#temu)
+ - [Captchafox](#captchafox)
- [VK Captcha](#vk-captcha)
- [VK Image](#vk-image)
- [Other methods](#other-methods)
@@ -448,6 +451,53 @@ $result = $solver->cybersiara([
]);
```
+### Prosopo
+
+[API method description.](https://2captcha.com/2captcha-api#prosopo-procaptcha)
+
+Use this method to bypass Prosopo.
+
+```php
+ $result = $solver->prosopo([
+ 'sitekey' => '5EZVvsHMrKCFKp5NYNoTyDjTjetoVo1Z4UNNbTwJf1GfN6Xm',
+ 'url' => 'https://www.twickets.live/',
+ ]);
+```
+
+
+### Temu
+
+[API method description.](https://2captcha.com/2captcha-api#temucaptcha)
+
+Use this method to bypass Temu.
+
+```php
+ $result = $solver->temu([
+ 'body' => $body,
+ 'part1' => $part1,
+ 'part2' => $part2,
+ 'part3' => $part3,
+ ]);
+```
+
+### Captchafox
+
+[API method description.](https://2captcha.com/2captcha-api#captchafox)
+
+Use this method to bypass Captchafox.
+
+```php
+ $result = $solver->captchafox([
+ 'sitekey' => 'sk_ILKWNruBBVKDOM7dZs59KHnDLEWiH',
+ 'url' => 'https://mysite.com/page/with/captchafox',
+ 'userAgent' => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36',
+ 'proxy' => [
+ 'type' => 'HTTPS',
+ 'uri' => 'login:password@IP_address:PORT',
+ ],
+ ]);
+```
+
### VK Image
[API method description.](https://2captcha.com/2captcha-api#vkcaptcha)
diff --git a/composer.json b/composer.json
index 35c3541..f18db2f 100644
--- a/composer.json
+++ b/composer.json
@@ -26,6 +26,9 @@
"Friendly Captcha",
"atbCAPTCHA",
"DataDome",
+ "Prosopo",
+ "Temu",
+ "Captchafox"
"vkCaptcha",
"vkImage"
],
diff --git a/examples/captchafox.php b/examples/captchafox.php
new file mode 100644
index 0000000..87993ba
--- /dev/null
+++ b/examples/captchafox.php
@@ -0,0 +1,25 @@
+captchafox([
+ 'sitekey' => 'sk_ILKWNruBBVKDOM7dZs59KHnDLEWiH',
+ 'url' => 'https://mysite.com/page/with/captchafox',
+ 'userAgent' => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36',
+ 'proxy' => [
+ 'type' => 'HTTPS',
+ 'uri' => 'login:password@IP_address:PORT',
+ ],
+ ]);
+} catch (\Exception $e) {
+ die($e->getMessage());
+}
+
+die('Captcha solved: ' . $result->code);
diff --git a/examples/prosopo.php b/examples/prosopo.php
new file mode 100644
index 0000000..53a3a60
--- /dev/null
+++ b/examples/prosopo.php
@@ -0,0 +1,23 @@
+prosopo([
+ 'sitekey' => '5EZVvsHMrKCFKp5NYNoTyDjTjetoVo1Z4UNNbTwJf1GfN6Xm',
+ 'url' => 'https://www.twickets.live/',
+ ]);
+
+} catch (\Exception $e) {
+ die($e->getMessage());
+}
+
+die('Captcha solved: ' . $result->code);
+
diff --git a/examples/resources/temu/body.png b/examples/resources/temu/body.png
new file mode 100644
index 0000000..e45ed92
Binary files /dev/null and b/examples/resources/temu/body.png differ
diff --git a/examples/resources/temu/part1.png b/examples/resources/temu/part1.png
new file mode 100644
index 0000000..792f6de
Binary files /dev/null and b/examples/resources/temu/part1.png differ
diff --git a/examples/resources/temu/part2.png b/examples/resources/temu/part2.png
new file mode 100644
index 0000000..de5a603
Binary files /dev/null and b/examples/resources/temu/part2.png differ
diff --git a/examples/resources/temu/part3.png b/examples/resources/temu/part3.png
new file mode 100644
index 0000000..be84dba
Binary files /dev/null and b/examples/resources/temu/part3.png differ
diff --git a/examples/temu.php b/examples/temu.php
new file mode 100644
index 0000000..f1bb121
--- /dev/null
+++ b/examples/temu.php
@@ -0,0 +1,31 @@
+temu([
+ 'body' => $body,
+ 'part1' => $part1,
+ 'part2' => $part2,
+ 'part3' => $part3,
+ ]);
+
+} catch (\Exception $e) {
+ die($e->getMessage());
+}
+
+die('Captcha solved: ' . $result->code);
+
diff --git a/src/TwoCaptcha.php b/src/TwoCaptcha.php
index 3f3104a..6d7f3a6 100644
--- a/src/TwoCaptcha.php
+++ b/src/TwoCaptcha.php
@@ -610,7 +610,7 @@ public function cybersiara($captcha)
}
/**
- * Wrapper for solving vk captcha (image)
+ * Wrapper for solving Prosopo
*
* @param $captcha
* @return \stdClass
@@ -619,6 +619,45 @@ public function cybersiara($captcha)
* @throws TimeoutException
* @throws ValidationException
*/
+ public function prosopo($captcha)
+ {
+ $captcha['method'] = 'prosopo';
+
+ return $this->solve($captcha);
+ }
+
+ /**
+ * Wrapper for solving Temu
+ *
+ * @param $captcha
+ * @return \stdClass
+ * @throws ApiException
+ * @throws NetworkException
+ * @throws TimeoutException
+ * @throws ValidationException
+ */
+ public function temu($captcha)
+ {
+ $captcha['method'] = 'temuimage';
+
+ return $this->solve($captcha);
+ }
+
+ /**
+ * Wrapper for solving Temu
+ *
+ * @param $captcha
+ * @return \stdClass
+ * @throws ApiException
+ * @throws NetworkException
+ * @throws TimeoutException
+ * @throws ValidationException
+ */
+ public function captchafox($captcha)
+ {
+ $captcha['method'] = 'captchafox';
+ }
+
public function vkimage($captcha)
{
if (is_string($captcha)) {
diff --git a/tests/CaptchafoxTest.php b/tests/CaptchafoxTest.php
new file mode 100644
index 0000000..3b012f0
--- /dev/null
+++ b/tests/CaptchafoxTest.php
@@ -0,0 +1,37 @@
+ 'sk_ILKWNruBBVKDOM7dZs59KHnDLEWiH',
+ 'pageurl' => 'https://mysite.com/page/with/captchafox',
+ 'userAgent' => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36',
+ 'proxy' => [
+ 'type' => 'HTTPS',
+ 'uri' => 'username:str0ngP@$$W0rd@1.2.3.4:4321',
+ ]
+ ];
+
+ $sendParams = [
+ 'method' => 'captchafox',
+ 'sitekey' => 'sk_ILKWNruBBVKDOM7dZs59KHnDLEWiH',
+ 'pageurl' => 'https://mysite.com/page/with/captchafox',
+ 'userAgent' => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36',
+ 'proxy' => 'username:str0ngP@$$W0rd@1.2.3.4:4321',
+ 'proxytype' => 'HTTPS',
+ 'soft_id' => '4585',
+ ];
+
+ $this->checkIfCorrectParamsSendAndResultReturned([
+ 'params' => $params,
+ 'sendParams' => $sendParams,
+ 'sendFiles' => [],
+ ]);
+ }
+}
diff --git a/tests/ProsopoTest.php b/tests/ProsopoTest.php
new file mode 100644
index 0000000..5d35304
--- /dev/null
+++ b/tests/ProsopoTest.php
@@ -0,0 +1,35 @@
+ '5EZVvsHMrKCFKp5NYNoTyDjTjetoVo1Z4UNNbTwJf1GfN6Xm',
+ 'pageurl' => 'https://www.twickets.live/',
+ 'proxy' => [
+ 'type' => 'HTTPS',
+ 'uri' => 'username:str0ngP@$$W0rd@1.2.3.4:4321',
+ ]
+ ];
+
+ $sendParams = [
+ 'method' => 'prosopo',
+ 'sitekey' => '5EZVvsHMrKCFKp5NYNoTyDjTjetoVo1Z4UNNbTwJf1GfN6Xm',
+ 'pageurl' => 'https://www.twickets.live/',
+ 'proxy' => 'username:str0ngP@$$W0rd@1.2.3.4:4321',
+ 'proxytype' => 'HTTPS',
+ 'soft_id' => '4585',
+ ];
+
+ $this->checkIfCorrectParamsSendAndResultReturned([
+ 'params' => $params,
+ 'sendParams' => $sendParams,
+ 'sendFiles' => [],
+ ]);
+ }
+}
diff --git a/tests/TemuTest.php b/tests/TemuTest.php
new file mode 100644
index 0000000..2f03116
--- /dev/null
+++ b/tests/TemuTest.php
@@ -0,0 +1,41 @@
+ $body,
+ 'part1' => $part1,
+ 'part2' => $part2,
+ 'part3' => $part3
+ ];
+
+ $sendParams = [
+ 'method' => 'temuimage',
+ 'body' => $body,
+ 'part1' => $part1,
+ 'part2' => $part2,
+ 'part3' => $part3,
+ 'soft_id' => '4585',
+ ];
+
+
+ $this->checkIfCorrectParamsSendAndResultReturned([
+ 'params' => $params,
+ 'sendParams' => $sendParams,
+ 'sendFiles' => [],
+ ]);
+ }
+
+}