diff --git a/README.md b/README.md
index cb27eb8..76585f2 100644
--- a/README.md
+++ b/README.md
@@ -34,10 +34,11 @@ The easiest way to quickly integrate the [2Captcha] captcha-solving service into
- [send / get_result](#send--get_result)
- [balance](#balance)
- [report](#report)
- - [Error handling](#error-handling)
- - [Proxies](#proxies)
- - [Async calls](#async-calls)
+ - [Error handling](#error-handling)
+ - [Proxies](#proxies)
+ - [Async calls](#async-calls)
- [Examples](#examples)
+ - [Useful articles](#useful-articles)
## Installation
@@ -83,7 +84,9 @@ solver = TwoCaptcha(**config)
| recaptchaTimeout | 600 | Polling timeout for reCAPTCHA in seconds. Defines how long the module tries to get the answer from the `res.php` API endpoint |
| pollingInterval | 10 | Interval in seconds between requests to the `res.php` API endpoint. Setting values less than 5 seconds is not recommended |
-> **IMPORTANT:** Once `callback` is defined for the `TwoCaptcha` instance, all methods return only the captcha ID and DO NOT poll the API to get the result. The result will be sent to the callback URL.
+> [!IMPORTANT]
+> Once `callback` is defined for the `TwoCaptcha` instance, all methods return only the captcha ID and DO NOT poll the API to get the result. The result will be sent to the callback URL.
+
To get the answer manually use [get_result method](#send--get_result)
## Solve captcha
@@ -355,6 +358,10 @@ result = solver.mtcaptcha(sitekey='MTPublic-KzqLY1cKH',
[API method description.](https://2captcha.com/2captcha-api#friendly-captcha)
Friendly Captcha solving method. Returns a token.
+
+> [!IMPORTANT]
+> To successfully use the received token, the captcha widget must not be loaded on the page. To do this, you need to abort request to `/friendlycaptcha/...module.min.js` on the page. When the captcha widget is already loaded on the page, there is a high probability that the received token will not work.
+
```python
result = solver.friendly_captcha(sitekey='FCMGEMUD2KTDSQ5H',
url='https://friendlycaptcha.com/demo',
@@ -415,20 +422,27 @@ code = solver.get_result(id)
```
### balance
+
+[API method description.](https://2captcha.com/2captcha-api#additional-methods)
+
Use this method to get your account's balance
```python
balance = solver.balance()
```
### report
+
+[API method description.](https://2captcha.com/2captcha-api#complain)
+
Use this method to report good or bad captcha answers.
```python
solver.report(id, True) # captcha solved correctly
solver.report(id, False) # captcha solved incorrectly
```
-### Error handling
-In case of an error, the captcha solver throws an exception. It's important to properly handle these cases. We recommend using `try except` to handle exceptions.
+## Error handling
+In case of an error, the captcha solver throws an exception. It's important to properly handle these cases. We recommend using `try except` to handle exceptions.
+The list of all errors can be found in the [API documentation](https://2captcha.com/2captcha-api#list-of-inphp-errors).
```python
try:
result = solver.text('If tomorrow is Saturday, what day is today?')
@@ -447,7 +461,7 @@ except TimeoutException as e:
```
-### Proxies
+## Proxies
You can pass your proxy as an additional argument for the following methods: recaptcha, funcaptcha, geetest, geetest v4, hcaptcha,
keycaptcha, capy puzzle, lemin, atbcaptcha, turnstile, amazon waf, mtcaptcha, friendly captcha, cutcaptcha.
@@ -463,7 +477,7 @@ proxy={
}
```
-### Async calls
+## Async calls
You can also make async calls with [asyncio], for example:
```python
@@ -485,6 +499,11 @@ captcha_result = asyncio.run(captchaSolver(image))
## Examples
Examples of solving all supported captcha types are located in the [examples] directory.
+## Useful articles
+
+- Amazon captcha solver: Code example for bypassing the [Amazon captcha](https://2captcha.com/blog/amazon-captcha-solving)
+- [Captcha bypass in Selenium](https://2captcha.com/blog/captcha-bypass-in-selenium)
+
[2Captcha]: https://2captcha.com/
[2captcha software catalog]: https://2captcha.com/software