diff --git a/README.md b/README.md
index dc3a07c..ed959c1 100644
--- a/README.md
+++ b/README.md
@@ -103,6 +103,8 @@ When you submit any image-based captcha use can provide additional options to he
Below you can find basic examples for every captcha type. Check out [examples directory] to find more examples with all available options.
### Normal Captcha
+[API method description.](https://2captcha.com/2captcha-api#solving_normal_captcha)
+
To bypass a normal captcha (distorted text on an image) use the following method. This method also can be used to recognize any text on the image.
```python
result = solver.normal('path/to/captcha.jpg', param1=..., ...)
@@ -111,6 +113,9 @@ result = solver.normal('https://site-with-captcha.com/path/to/captcha.jpg', para
```
### Audio Captcha
+
+[API method description.](https://2captcha.com/2captcha-api#audio)
+
To bypass an audio captcha (mp3 formats only) use the following method.
You must provide the language as `lang = 'en'`. Supported languages are "en", "ru", "de", "el", "pt", "fr".
@@ -121,12 +126,18 @@ result = solver.audio('https://site-with-captcha.com/path/to/captcha.mp3', lang
```
### Text Captcha
+
+[API method description.](https://2captcha.com/2captcha-api#solving_text_captcha)
+
This method can be used to bypass a captcha that requires answering a question provided in clear text.
```python
result = solver.text('If tomorrow is Saturday, what day is today?', param1=..., ...)
```
### reCAPTCHA v2
+
+[API method description.](https://2captcha.com/2captcha-api#solving_recaptchav2_new)
+
Use this method to solve reCAPTCHA V2 and obtain a token to bypass the protection.
```python
result = solver.recaptcha(sitekey='6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-',
@@ -135,6 +146,9 @@ result = solver.recaptcha(sitekey='6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-',
```
### reCAPTCHA v3
+
+[API method description.](https://2captcha.com/2captcha-api#solving_recaptchav3)
+
This method provides a reCAPTCHA V3 solver and returns a token.
```python
result = solver.recaptcha(sitekey='6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-',
@@ -144,6 +158,9 @@ result = solver.recaptcha(sitekey='6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-',
```
### FunCaptcha
+
+[API method description.](https://2captcha.com/2captcha-api#solving_funcaptcha_new)
+
FunCaptcha (Arkoselabs) solving method. Returns a token.
```python
result = solver.funcaptcha(sitekey='6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-',
@@ -154,6 +171,9 @@ result = solver.funcaptcha(sitekey='6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-',
### GeeTest
+
+[API method description.](https://2captcha.com/2captcha-api#solving_geetest)
+
Method to solve GeeTest puzzle captcha. Returns a set of tokens as JSON.
```python
result = solver.geetest(gt='f1ab2cdefa3456789012345b6c78d90e',
@@ -165,6 +185,9 @@ result = solver.geetest(gt='f1ab2cdefa3456789012345b6c78d90e',
### GeeTest v4
+
+[API method description.](https://2captcha.com/2captcha-api#geetest-v4)
+
Use this method to solve GeeTest v4. Returns the response in JSON.
```python
result = solver.geetest_v4(captcha_id='e392e1d7fd421dc63325744d5a2b9c73',
@@ -175,6 +198,9 @@ result = solver.geetest_v4(captcha_id='e392e1d7fd421dc63325744d5a2b9c73',
### hCaptcha
+
+[API method description.](https://2captcha.com/2captcha-api#solving_hcaptcha)
+
Use this method to solve the hCaptcha challenge. Returns a token to bypass the captcha.
```python
result = solver.hcaptcha(sitekey='10000000-ffff-ffff-ffff-000000000001',
@@ -185,6 +211,9 @@ result = solver.hcaptcha(sitekey='10000000-ffff-ffff-ffff-000000000001',
### Lemin Cropped Captcha
+
+[API method description.](https://2captcha.com/2captcha-api#lemin)
+
Use this method to solve hCaptcha challenge. Returns JSON with an answer containing the following values: answer, challenge_id.
```python
result = solver.lemin(captcha_id='CROPPED_1abcd2f_a1234b567c890d12ef3a456bc78d901d',
@@ -196,6 +225,9 @@ result = solver.lemin(captcha_id='CROPPED_1abcd2f_a1234b567c890d12ef3a456bc78d90
### Cloudflare Turnstile
+
+[API method description.](https://2captcha.com/2captcha-api#turnstile)
+
Use this method to solve Cloudflare Turnstile. Returns JSON with the token.
```python
result = solver.turnstile(sitekey='0x1AAAAAAAAkg0s2VIOD34y5',
@@ -207,6 +239,9 @@ result = solver.turnstile(sitekey='0x1AAAAAAAAkg0s2VIOD34y5',
```
### Amazon WAF
+
+[API method description.](https://2captcha.com/2captcha-api#amazon-waf)
+
Use this method to solve Amazon WAF Captcha also known as AWS WAF Captcha is a part of Intelligent threat mitigation for Amazon AWS. Returns JSON with the token.
```python
result = solver.amazon_waf(sitekey='0x1AAAAAAAAkg0s2VIOD34y5',
@@ -219,6 +254,9 @@ result = solver.amazon_waf(sitekey='0x1AAAAAAAAkg0s2VIOD34y5',
### KeyCaptcha
+
+[API method description.](https://2captcha.com/2captcha-api#solving_keycaptcha)
+
Token-based method to solve KeyCaptcha.
```python
result = solver.keycaptcha(s_s_c_user_id=10,
@@ -232,6 +270,9 @@ result = solver.keycaptcha(s_s_c_user_id=10,
### atbCAPTCHA
+
+[API method description.](https://2captcha.com/2captcha-api#atb-captcha)
+
Use this method to solve atbCaptcha challenge. Returns a token to bypass the captcha.
```python
result = solver.atb_captcha(app_id='af25e409b33d722a95e56a230ff8771c',
@@ -243,6 +284,9 @@ result = solver.atb_captcha(app_id='af25e409b33d722a95e56a230ff8771c',
### Capy
+
+[API method description.](https://2captcha.com/2captcha-api#solving_capy)
+
Token-based method to bypass Capy puzzle captcha.
```python
result = solver.capy(sitekey='PUZZLE_Abc1dEFghIJKLM2no34P56q7rStu8v',
@@ -251,30 +295,45 @@ result = solver.capy(sitekey='PUZZLE_Abc1dEFghIJKLM2no34P56q7rStu8v',
param1=..., ...)
```
### Grid
+
+[API method description.](https://2captcha.com/2captcha-api#grid)
+
Grid method was originally called the Old reCAPTCHA V2 method. The method can be used to bypass any type of captcha where you can apply a grid on an image and click specific grid boxes. Returns numbers of boxes.
```python
result = solver.grid('path/to/captcha.jpg', param1=..., ...)
```
### Canvas
+
+[API method description.](https://2captcha.com/2captcha-api#canvas)
+
Canvas method can be used when you need to draw a line around an object on an image. Returns a set of points' coordinates to draw a polygon.
```python
result = solver.canvas('path/to/captcha.jpg', param1=..., ...)
```
### ClickCaptcha
+
+[API method description.](https://2captcha.com/2captcha-api#coordinates)
+
ClickCaptcha method returns coordinates of points on the captcha image. Can be used if you need to click on particular points in the image.
```python
result = solver.coordinates('path/to/captcha.jpg', param1=..., ...)
```
### Rotate
+
+[API method description.](https://2captcha.com/2captcha-api#solving_rotatecaptcha)
+
This method can be used to solve a captcha that asks to rotate an object. Mostly used to bypass FunCaptcha. Returns the rotation angle.
```python
result = solver.rotate('path/to/captcha.jpg', param1=..., ...)
```
### MTCaptcha
+
+[API method description.](https://2captcha.com/2captcha-api#mtcaptcha)
+
Use this method to solve MTCaptcha and obtain a token to bypass the protection.
```python
result = solver.mtcaptcha(sitekey='MTPublic-KzqLY1cKH',
@@ -283,6 +342,9 @@ result = solver.mtcaptcha(sitekey='MTPublic-KzqLY1cKH',
```
### Friendly Captcha
+
+[API method description.](https://2captcha.com/2captcha-api#friendly-captcha)
+
Friendly Captcha solving method. Returns a token.
```python
result = solver.friendly_captcha(sitekey='FCMGEMUD2KTDSQ5H',
@@ -291,6 +353,9 @@ result = solver.friendly_captcha(sitekey='FCMGEMUD2KTDSQ5H',
```
### Cutcaptcha
+
+[API method description.](https://2captcha.com/2captcha-api#cutcaptcha)
+
Use this method to solve Cutcaptcha. Returns the response in JSON.
```python
result = solver.cutcaptcha(misery_key='ad52c87af17e2ec09b8d918c9f00416b1cb8c320',
@@ -300,6 +365,9 @@ result = solver.cutcaptcha(misery_key='ad52c87af17e2ec09b8d918c9f00416b1cb8c320'
```
### Tencent
+
+[API method description.](https://2captcha.com/2captcha-api#tencent)
+
Use this method to solve Cutcaptcha. Returns a token.
```python
result = solver.tencent(app_id="197326679",